diff options
Diffstat (limited to 'drivers/net/ethernet/ibm/ibmvnic.c')
-rw-r--r-- | drivers/net/ethernet/ibm/ibmvnic.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 4f83f97ffe8b..2e5172f61564 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c | |||
@@ -1984,8 +1984,11 @@ static void __ibmvnic_reset(struct work_struct *work) | |||
1984 | rwi = get_next_rwi(adapter); | 1984 | rwi = get_next_rwi(adapter); |
1985 | while (rwi) { | 1985 | while (rwi) { |
1986 | if (adapter->state == VNIC_REMOVING || | 1986 | if (adapter->state == VNIC_REMOVING || |
1987 | adapter->state == VNIC_REMOVED) | 1987 | adapter->state == VNIC_REMOVED) { |
1988 | goto out; | 1988 | kfree(rwi); |
1989 | rc = EBUSY; | ||
1990 | break; | ||
1991 | } | ||
1989 | 1992 | ||
1990 | if (adapter->force_reset_recovery) { | 1993 | if (adapter->force_reset_recovery) { |
1991 | adapter->force_reset_recovery = false; | 1994 | adapter->force_reset_recovery = false; |
@@ -2011,7 +2014,7 @@ static void __ibmvnic_reset(struct work_struct *work) | |||
2011 | netdev_dbg(adapter->netdev, "Reset failed\n"); | 2014 | netdev_dbg(adapter->netdev, "Reset failed\n"); |
2012 | free_all_rwi(adapter); | 2015 | free_all_rwi(adapter); |
2013 | } | 2016 | } |
2014 | out: | 2017 | |
2015 | adapter->resetting = false; | 2018 | adapter->resetting = false; |
2016 | if (we_lock_rtnl) | 2019 | if (we_lock_rtnl) |
2017 | rtnl_unlock(); | 2020 | rtnl_unlock(); |