ehea: fix race condition
When ehea_stop is called the function cancel_work_sync(&port->reset_task) is used to ensure that the reset task is not running anymore. We need an additional flag to ensure that it can not be scheduled after this call again for a certain time. Signed-off-by: Jan-Bernd Themann <themann@de.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
committed by
Jeff Garzik
parent
b0afffe89b
commit
2f69ae01c8
@@ -40,7 +40,7 @@
|
||||
#include <asm/io.h>
|
||||
|
||||
#define DRV_NAME "ehea"
|
||||
#define DRV_VERSION "EHEA_0091"
|
||||
#define DRV_VERSION "EHEA_0092"
|
||||
|
||||
/* eHEA capability flags */
|
||||
#define DLPAR_PORT_ADD_REM 1
|
||||
@@ -478,6 +478,7 @@ struct ehea_port {
|
||||
int num_add_tx_qps;
|
||||
int num_mcs;
|
||||
int resets;
|
||||
u64 flags;
|
||||
u64 mac_addr;
|
||||
u32 logical_port_id;
|
||||
u32 port_speed;
|
||||
@@ -501,7 +502,8 @@ struct port_res_cfg {
|
||||
};
|
||||
|
||||
enum ehea_flag_bits {
|
||||
__EHEA_STOP_XFER
|
||||
__EHEA_STOP_XFER,
|
||||
__EHEA_DISABLE_PORT_RESET
|
||||
};
|
||||
|
||||
void ehea_set_ethtool_ops(struct net_device *netdev);
|
||||
|
Reference in New Issue
Block a user