aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/cisco/enic/vnic_dev.h
diff options
context:
space:
mode:
authorGovindarajulu Varadarajan <_govind@gmx.com>2015-10-01 14:18:47 +0530
committerDavid S. Miller <davem@davemloft.net>2015-10-05 03:51:35 -0700
commit937317c7c1097aa878a5000e3aab616eb5c590c0 (patch)
tree8360a5079b034204940f3adc686f8a7b543ef34b /drivers/net/ethernet/cisco/enic/vnic_dev.h
parentenic: handle spurious error interrupt (diff)
downloadlinux-dev-937317c7c1097aa878a5000e3aab616eb5c590c0.tar.xz
linux-dev-937317c7c1097aa878a5000e3aab616eb5c590c0.zip
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>
Diffstat (limited to '')
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_dev.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/cisco/enic/vnic_dev.h b/drivers/net/ethernet/cisco/enic/vnic_dev.h
index b013b6a78e87..54156c484424 100644
--- a/drivers/net/ethernet/cisco/enic/vnic_dev.h
+++ b/drivers/net/ethernet/cisco/enic/vnic_dev.h
@@ -155,7 +155,9 @@ int vnic_dev_deinit(struct vnic_dev *vdev);
void vnic_dev_intr_coal_timer_info_default(struct vnic_dev *vdev);
int vnic_dev_intr_coal_timer_info(struct vnic_dev *vdev);
int vnic_dev_hang_reset(struct vnic_dev *vdev, int arg);
+int vnic_dev_soft_reset(struct vnic_dev *vdev, int arg);
int vnic_dev_hang_reset_done(struct vnic_dev *vdev, int *done);
+int vnic_dev_soft_reset_done(struct vnic_dev *vdev, int *done);
void vnic_dev_set_intr_mode(struct vnic_dev *vdev,
enum vnic_dev_intr_mode intr_mode);
enum vnic_dev_intr_mode vnic_dev_get_intr_mode(struct vnic_dev *vdev);