Skip to content

Commit 327fe04

Browse files
anjalisinghai1Jeff Kirsher
authored andcommitted
i40e: Bypass timeout recovery level 0 so as to not cause MDD
When a Tx hang happens, usually the Tx queue disable fails. At this point if we try to recover by a VSI reinit the HW gets unhappy and we get a Malicious Driver Detect (MDD) event. HW expects a PF reset if a queue disable fails, if we don't do a PF reset and restart the queue we get an MDD. This patch makes sure we do a PF reset on Tx hang and that way we avoid any MDD because of Tx queue disable failure. Change-ID: I665ab6223577c788da857ee2132e733dc9a451e4 Signed-off-by: Anjali Singhai Jain <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
1 parent 264ccc9 commit 327fe04

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

drivers/net/ethernet/intel/i40e/i40e_main.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ static void i40e_tx_timeout(struct net_device *netdev)
278278
pf->tx_timeout_count++;
279279

280280
if (time_after(jiffies, (pf->tx_timeout_last_recovery + HZ*20)))
281-
pf->tx_timeout_recovery_level = 0;
281+
pf->tx_timeout_recovery_level = 1;
282282
pf->tx_timeout_last_recovery = jiffies;
283283
netdev_info(netdev, "tx_timeout recovery level %d\n",
284284
pf->tx_timeout_recovery_level);
@@ -6826,6 +6826,8 @@ static int i40e_sw_init(struct i40e_pf *pf)
68266826
pf->irq_pile->num_entries = pf->hw.func_caps.num_msix_vectors;
68276827
pf->irq_pile->search_hint = 0;
68286828

6829+
pf->tx_timeout_recovery_level = 1;
6830+
68296831
mutex_init(&pf->switch_mutex);
68306832

68316833
sw_init_done:

0 commit comments

Comments
 (0)