|
@@ -2000,7 +2000,10 @@ static void __ibmvnic_reset(struct work_struct *work)
|
|
|
while (rwi) {
|
|
while (rwi) {
|
|
|
if (adapter->state == VNIC_REMOVING ||
|
|
if (adapter->state == VNIC_REMOVING ||
|
|
|
adapter->state == VNIC_REMOVED)
|
|
adapter->state == VNIC_REMOVED)
|
|
|
- goto out;
|
|
|
|
|
|
|
+ kfree(rwi);
|
|
|
|
|
+ rc = EBUSY;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
if (adapter->force_reset_recovery) {
|
|
if (adapter->force_reset_recovery) {
|
|
|
adapter->force_reset_recovery = false;
|
|
adapter->force_reset_recovery = false;
|
|
@@ -2026,7 +2029,7 @@ static void __ibmvnic_reset(struct work_struct *work)
|
|
|
netdev_dbg(adapter->netdev, "Reset failed\n");
|
|
netdev_dbg(adapter->netdev, "Reset failed\n");
|
|
|
free_all_rwi(adapter);
|
|
free_all_rwi(adapter);
|
|
|
}
|
|
}
|
|
|
-out:
|
|
|
|
|
|
|
+
|
|
|
adapter->resetting = false;
|
|
adapter->resetting = false;
|
|
|
if (we_lock_rtnl)
|
|
if (we_lock_rtnl)
|
|
|
rtnl_unlock();
|
|
rtnl_unlock();
|