diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2014-03-14 20:59:10 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-03-14 22:52:47 -0400 |
commit | 390f86dfbd3e7c4579aaa88281149e1cbac88a2d (patch) | |
tree | d38247ec849e6897bab3d9cac4fe8abeecd5ec4a /drivers/net/ethernet/intel/i40e/i40e_txrx.c | |
parent | b3529744b412e9870c9e10fef874e3bee2af1afa (diff) |
i40e: Don't receive packets when the napi budget == 0
Processing any incoming packets with a with a napi budget of 0
is incorrect driver behavior.
This matters as netpoll will shortly call drivers with a budget of 0
to avoid receive packet processing happening in hard irq context.
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/intel/i40e/i40e_txrx.c')
-rw-r--r-- | drivers/net/ethernet/intel/i40e/i40e_txrx.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c index daa3b295ff3d..88666adb0743 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c +++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c | |||
@@ -1302,6 +1302,9 @@ static int i40e_clean_rx_irq(struct i40e_ring *rx_ring, int budget) | |||
1302 | u8 rx_ptype; | 1302 | u8 rx_ptype; |
1303 | u64 qword; | 1303 | u64 qword; |
1304 | 1304 | ||
1305 | if (budget <= 0) | ||
1306 | return 0; | ||
1307 | |||
1305 | rx_desc = I40E_RX_DESC(rx_ring, i); | 1308 | rx_desc = I40E_RX_DESC(rx_ring, i); |
1306 | qword = le64_to_cpu(rx_desc->wb.qword1.status_error_len); | 1309 | qword = le64_to_cpu(rx_desc->wb.qword1.status_error_len); |
1307 | rx_status = (qword & I40E_RXD_QW1_STATUS_MASK) >> | 1310 | rx_status = (qword & I40E_RXD_QW1_STATUS_MASK) >> |