On 1/18/2018 5:41 AM, Aviad Yehezkel wrote:
If add state fails in case of device offload, netdev refcount
will be negative since gc task is attempting to dev_free this state.
This is fixed by putting NULL in state dev field.

Signed-off-by: Aviad Yehezkel <avia...@mellanox.com>
Signed-off-by: Boris Pismeny <bor...@mellanox.com>

Thanks - I was wondering about that a couple of days ago and hadn't gotten back to it.

Signed-off-by: Shannon Nelson <shannon.nel...@oracle.com>

---
  net/xfrm/xfrm_device.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/net/xfrm/xfrm_device.c b/net/xfrm/xfrm_device.c
index fb3f920..cd2b7d3 100644
--- a/net/xfrm/xfrm_device.c
+++ b/net/xfrm/xfrm_device.c
@@ -109,6 +109,7 @@ int xfrm_dev_state_add(struct net *net, struct xfrm_state 
*x,
err = dev->xfrmdev_ops->xdo_dev_state_add(x);
        if (err) {
+               xso->dev = NULL;
                dev_put(dev);
                return err;
        }

Reply via email to