nfp: fix incorrect pointer deference when offloading IPsec with bonding
authorHuanhuan Wang <huanhuan.wang@corigine.com>
Thu, 20 Apr 2023 14:01:25 +0000 (16:01 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sat, 22 Apr 2023 03:23:49 +0000 (20:23 -0700)
commit63cfd210034c772fad047afa13dd5a4664b0a72e
tree49a090883da95e42a982e03e6fa23a4e25f44786
parent461bb5b97049a149278f2c27a3aa12af16da6a2e
nfp: fix incorrect pointer deference when offloading IPsec with bonding

There are two pointers in struct xfrm_dev_offload, *dev, *real_dev.
The *dev points whether bonding interface or real interface, if
bonding IPsec offload is used, it points bonding interface; if not,
it points real interface. And *real_dev always points real interface.
So nfp should always use real_dev instead of dev.

Prior to this change the system becomes unresponsive when offloading
IPsec for a device which is a lower device to a bonding device.

Fixes: 859a497fe80c ("nfp: implement xfrm callbacks and expose ipsec offload feature to upper layer")
CC: stable@vger.kernel.org
Signed-off-by: Huanhuan Wang <huanhuan.wang@corigine.com>
Acked-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Louis Peens <louis.peens@corigine.com>
Link: https://lore.kernel.org/r/20230420140125.38521-1-louis.peens@corigine.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/netronome/nfp/crypto/ipsec.c