Ilya Maximets
bf280c0387
ixgbe: fix double clean of Tx descriptors with xdp
...
Tx code doesn't clear the descriptors' status after cleaning.
So, if the budget is larger than number of used elems in a ring, some
descriptors will be accounted twice and xsk_umem_complete_tx will move
prod_tail far beyond the prod_head breaking the completion queue ring.
Fix that by limiting the number of descriptors to clean by the number
of used descriptors in the Tx ring.
'ixgbe_clean_xdp_tx_irq()' function refactored to look more like
'ixgbe_xsk_clean_tx_ring()' since we're allowed to directly use
'next_to_clean' and 'next_to_use' indexes.
CC: stable@vger.kernel.org
Fixes: 8221c5eba8
("ixgbe: add AF_XDP zero-copy Tx support")
Signed-off-by: Ilya Maximets <i.maximets@samsung.com >
Tested-by: William Tu <u9012063@gmail.com >
Tested-by: Eelco Chaudron <echaudro@redhat.com >
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com >
2019-09-11 09:42:18 -07:00
..
2019-05-21 10:50:46 +02:00
2019-08-01 13:45:48 -04:00
2019-05-21 10:50:46 +02:00
2019-05-30 11:26:32 -07:00
2019-07-31 08:33:30 -07:00
2019-06-19 17:09:07 +02:00
2019-08-06 11:29:16 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:29:52 -07:00
2019-06-26 09:07:39 -07:00
2019-08-30 14:15:31 -07:00
2019-05-21 11:28:45 +02:00
2019-08-01 13:45:48 -04:00
2019-08-31 19:07:11 -07:00
2019-06-19 17:09:55 +02:00
2019-07-31 08:38:36 -07:00
2019-05-30 11:26:37 -07:00
2019-08-31 23:51:19 -07:00
2019-06-05 17:36:38 +02:00
2019-08-28 14:05:48 -07:00
2019-07-05 15:25:04 -07:00
2019-08-18 14:02:06 -07:00
2019-08-14 20:03:42 -07:00
2019-05-30 11:26:32 -07:00
2019-05-21 10:50:46 +02:00
2019-05-30 11:26:37 -07:00
2019-05-31 08:34:32 -07:00
2019-05-30 11:26:32 -07:00
2019-08-06 11:47:19 -07:00
2019-08-11 21:32:33 -07:00
2019-06-14 14:18:53 -06:00
2019-08-31 23:53:17 -07:00
2019-05-21 10:50:46 +02:00
2019-08-21 20:50:26 -07:00
2019-09-11 15:17:00 +01:00
2019-05-24 17:37:52 +02:00
2019-07-07 22:15:12 -07:00
2019-06-19 17:09:55 +02:00
2019-09-10 08:44:49 +01:00
2019-09-11 09:42:18 -07:00
2019-08-28 16:09:02 -07:00
2019-07-31 08:53:26 -07:00
2019-09-11 15:20:04 +01:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:46 +02:00
2019-08-22 15:44:24 -07:00
2019-08-15 12:44:58 -07:00
2019-09-11 09:14:01 +01:00
2019-07-15 11:06:27 -07:00
2019-09-07 18:05:50 +02:00
2019-08-01 13:45:49 -04:00
2019-06-05 17:37:17 +02:00
2019-09-06 15:06:42 +02:00
2019-05-30 11:26:37 -07:00
2019-06-05 17:37:07 +02:00
2019-08-01 13:45:49 -04:00
2019-07-08 16:33:02 -07:00
2019-08-22 16:11:31 -07:00
2019-07-26 14:20:06 -07:00
2019-05-21 11:28:39 +02:00
2019-08-23 15:11:26 -07:00
2019-08-18 14:19:14 -07:00
2019-07-29 10:58:06 -07:00
2019-08-01 13:45:49 -04:00
2019-09-01 12:10:11 -07:00
2019-07-08 12:16:48 -07:00
2019-05-30 11:26:32 -07:00
2019-05-21 10:50:46 +02:00
2019-07-14 12:22:11 -07:00
2019-07-29 15:13:10 -07:00
2019-07-09 14:46:40 -07:00
2019-09-02 11:48:15 -07:00
2019-07-04 12:12:13 -07:00
2019-05-21 10:50:46 +02:00
2019-05-30 11:26:32 -07:00
2019-08-21 13:58:15 -07:00
2019-08-11 21:41:48 -07:00
2019-08-08 22:43:34 -07:00
2019-06-02 18:08:36 -07:00
2019-06-12 09:52:04 -07:00
2019-07-08 16:28:32 -07:00
2019-05-21 10:50:46 +02:00
2019-08-01 13:45:49 -04:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:36:37 +02:00
2019-06-19 17:09:55 +02:00
2019-07-15 11:06:27 -07:00
2019-05-30 11:29:22 -07:00
2019-07-01 19:36:35 -07:00
2019-06-19 17:09:07 +02:00
2019-05-07 12:22:47 -07:00
2019-07-01 19:36:35 -07:00
2019-06-19 17:09:07 +02:00