ibmvnic: Do not process device remove during device reset
The ibmvnic driver does not check the device state when the device is removed. If the device is removed while a device reset is being processed, the remove may free structures needed by the reset, causing an oops. Fix this by checking the device state before processing device remove. Signed-off-by: Juliet Kim <julietk@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
ece0d7bd74
commit
7d7195a026
@@ -941,7 +941,8 @@ enum vnic_state {VNIC_PROBING = 1,
|
||||
VNIC_CLOSING,
|
||||
VNIC_CLOSED,
|
||||
VNIC_REMOVING,
|
||||
VNIC_REMOVED};
|
||||
VNIC_REMOVED,
|
||||
VNIC_RESETTING};
|
||||
|
||||
enum ibmvnic_reset_reason {VNIC_RESET_FAILOVER = 1,
|
||||
VNIC_RESET_MOBILITY,
|
||||
@@ -1090,4 +1091,7 @@ struct ibmvnic_adapter {
|
||||
|
||||
struct ibmvnic_tunables desired;
|
||||
struct ibmvnic_tunables fallback;
|
||||
|
||||
/* Used for serializatin of state field */
|
||||
spinlock_t state_lock;
|
||||
};
|
||||
|
Reference in New Issue
Block a user