enic: do hang reset only in case of tx timeout
authorGovindarajulu Varadarajan <_govind@gmx.com>
Thu, 1 Oct 2015 08:48:47 +0000 (14:18 +0530)
committerDavid S. Miller <davem@davemloft.net>
Mon, 5 Oct 2015 10:51:35 +0000 (03:51 -0700)
commit937317c7c1097aa878a5000e3aab616eb5c590c0
tree8360a5079b034204940f3adc686f8a7b543ef34b
parentcc809237e1f215141165f221ad729803d88bcbbe
enic: do hang reset only in case of tx timeout

The current code invokes hang reset in case of error interrupt. We should
hang reset only in case of tx timeout. This because of the way hang reset
is implemented in firmware. Hang reset takes more firmware resources than
soft reset. Adaptor does not generate error interrupt in case of tx
timeout.

Hang reset only in case of tx timeout, in .ndo_tx_timeout. Do soft reset
otherwise. Introduce deferred work, enic_tx_hang_reset, to do hang reset.

Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cisco/enic/enic.h
drivers/net/ethernet/cisco/enic/enic_main.c
drivers/net/ethernet/cisco/enic/vnic_dev.c
drivers/net/ethernet/cisco/enic/vnic_dev.h