diff options
author | Dhananjay Phadke <dhananjay@netxen.com> | 2009-07-17 11:27:07 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-07-20 11:23:31 -0400 |
commit | b2af9cb06d4de1b507ec0fd779ec2ecedee1480a (patch) | |
tree | 15967d7eaee2636e6c29d15d96dd57e99c0a6ee9 /drivers/net/netxen/netxen_nic.h | |
parent | cf981ffb31e8f41f4899a56560f81322f94f22d1 (diff) |
netxen: fix deadlock on dev close
netxen: fix deadlock on dev close
The tx ring accounting fix in commit cb2107be43d2fc5eadec58b92b
("netxen: fix tx ring accounting") introduced intermittent
deadlock when inteface is going down.
This was possibly combined effect of speculative tx pause,
calling netif_tx_lock instead of queue lock and unclean
synchronization with napi which could end up unmasking
interrupt.
Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netxen/netxen_nic.h')
-rw-r--r-- | drivers/net/netxen/netxen_nic.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h index 9fa71faf4ceb..f86e05047d19 100644 --- a/drivers/net/netxen/netxen_nic.h +++ b/drivers/net/netxen/netxen_nic.h | |||
@@ -774,6 +774,8 @@ struct nx_host_tx_ring { | |||
774 | u32 crb_cmd_consumer; | 774 | u32 crb_cmd_consumer; |
775 | u32 num_desc; | 775 | u32 num_desc; |
776 | 776 | ||
777 | struct netdev_queue *txq; | ||
778 | |||
777 | struct netxen_cmd_buffer *cmd_buf_arr; | 779 | struct netxen_cmd_buffer *cmd_buf_arr; |
778 | struct cmd_desc_type0 *desc_head; | 780 | struct cmd_desc_type0 *desc_head; |
779 | dma_addr_t phys_addr; | 781 | dma_addr_t phys_addr; |