diff options
author | Steffen Klassert <steffen.klassert@secunet.com> | 2017-09-04 04:59:55 -0400 |
---|---|---|
committer | Steffen Klassert <steffen.klassert@secunet.com> | 2017-09-11 04:36:51 -0400 |
commit | 67a63387b1417b5954eedb15f638f1f0bee3da49 (patch) | |
tree | 0e8e662a925704338f1ba7dc2e90d3d1c1fb81ba | |
parent | c5d4d7d83165ae863954b113c7f403d8b58febed (diff) |
xfrm: Fix negative device refcount on offload failure.
Reset the offload device at the xfrm_state if the device was
not able to offload the state. Otherwise we drop the device
refcount twice.
Fixes: d77e38e612a0 ("xfrm: Add an IPsec hardware offloading API")
Reported-by: Shannon Nelson <shannon.nelson@oracle.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
-rw-r--r-- | net/xfrm/xfrm_device.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_device.c b/net/xfrm/xfrm_device.c index acf00104ef31..30e5746085b8 100644 --- a/net/xfrm/xfrm_device.c +++ b/net/xfrm/xfrm_device.c | |||
@@ -91,6 +91,7 @@ int xfrm_dev_state_add(struct net *net, struct xfrm_state *x, | |||
91 | } | 91 | } |
92 | 92 | ||
93 | if (!dev->xfrmdev_ops || !dev->xfrmdev_ops->xdo_dev_state_add) { | 93 | if (!dev->xfrmdev_ops || !dev->xfrmdev_ops->xdo_dev_state_add) { |
94 | xso->dev = NULL; | ||
94 | dev_put(dev); | 95 | dev_put(dev); |
95 | return 0; | 96 | return 0; |
96 | } | 97 | } |