mbox series

[net,0/7] virtio_net: Fix problems around XDP tx and napi_tx

Message ID 1547724045-2726-1-git-send-email-makita.toshiaki@lab.ntt.co.jp
Headers show
Series virtio_net: Fix problems around XDP tx and napi_tx | expand

Message

Toshiaki Makita Jan. 17, 2019, 11:20 a.m. UTC
While I'm looking into how to account standard tx counters on XDP tx
processing, I found several bugs around XDP tx and napi_tx.

Patch1: Fix oops on error path. Patch2 depends on this.
Patch2: Fix memory corruption on freeing xdp_frames with napi_tx enabled.
Patch3: Minor fix patch5 depends on.
Patch4: Fix memory corruption on processing xdp_frames when XDP is disabled.
  Also patch5 depends on this.
Patch5: Fix memory corruption on processing xdp_frames while XDP is being
  disabled.
Patch6: Minor fix patch7 depends on.
Patch7: Fix memory corruption on freeing sk_buff or xdp_frames when a normal
  queue is reused for XDP and vise versa.

Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>

Toshiaki Makita (7):
  virtio_net: Don't enable NAPI when interface is down
  virtio_net: Don't call free_old_xmit_skbs for xdp_frames
  virtio_net: Fix not restoring real_num_rx_queues
  virtio_net: Fix out of bounds access of sq
  virtio_net: Don't process redirected XDP frames when XDP is disabled
  virtio_net: Use xdp_return_frame to free xdp_frames on destroying vqs
  virtio_net: Differentiate sk_buff and xdp_frame on freeing

 drivers/net/virtio_net.c | 154 +++++++++++++++++++++++++++++++++--------------
 1 file changed, 109 insertions(+), 45 deletions(-)

Comments

Michael S. Tsirkin Jan. 17, 2019, 2:55 p.m. UTC | #1
On Thu, Jan 17, 2019 at 08:20:38PM +0900, Toshiaki Makita wrote:
> While I'm looking into how to account standard tx counters on XDP tx
> processing, I found several bugs around XDP tx and napi_tx.
> 
> Patch1: Fix oops on error path. Patch2 depends on this.
> Patch2: Fix memory corruption on freeing xdp_frames with napi_tx enabled.
> Patch3: Minor fix patch5 depends on.
> Patch4: Fix memory corruption on processing xdp_frames when XDP is disabled.
>   Also patch5 depends on this.
> Patch5: Fix memory corruption on processing xdp_frames while XDP is being
>   disabled.
> Patch6: Minor fix patch7 depends on.
> Patch7: Fix memory corruption on freeing sk_buff or xdp_frames when a normal
>   queue is reused for XDP and vise versa.
> 
> Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>

Series:

Acked-by: Michael S. Tsirkin <mst@redhat.com>

I guess we need this stuff on stable?
I'm especially happy with Patch7 as it makes my BQL
work a bit easier.

> Toshiaki Makita (7):
>   virtio_net: Don't enable NAPI when interface is down
>   virtio_net: Don't call free_old_xmit_skbs for xdp_frames
>   virtio_net: Fix not restoring real_num_rx_queues
>   virtio_net: Fix out of bounds access of sq
>   virtio_net: Don't process redirected XDP frames when XDP is disabled
>   virtio_net: Use xdp_return_frame to free xdp_frames on destroying vqs
>   virtio_net: Differentiate sk_buff and xdp_frame on freeing
> 
>  drivers/net/virtio_net.c | 154 +++++++++++++++++++++++++++++++++--------------
>  1 file changed, 109 insertions(+), 45 deletions(-)
> 
> -- 
> 1.8.3.1
>
Toshiaki Makita Jan. 18, 2019, 2:01 a.m. UTC | #2
On 2019/01/17 23:55, Michael S. Tsirkin wrote:
> On Thu, Jan 17, 2019 at 08:20:38PM +0900, Toshiaki Makita wrote:
>> While I'm looking into how to account standard tx counters on XDP tx
>> processing, I found several bugs around XDP tx and napi_tx.
>>
>> Patch1: Fix oops on error path. Patch2 depends on this.
>> Patch2: Fix memory corruption on freeing xdp_frames with napi_tx enabled.
>> Patch3: Minor fix patch5 depends on.
>> Patch4: Fix memory corruption on processing xdp_frames when XDP is disabled.
>>   Also patch5 depends on this.
>> Patch5: Fix memory corruption on processing xdp_frames while XDP is being
>>   disabled.
>> Patch6: Minor fix patch7 depends on.
>> Patch7: Fix memory corruption on freeing sk_buff or xdp_frames when a normal
>>   queue is reused for XDP and vise versa.
>>
>> Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
> 
> Series:
> 
> Acked-by: Michael S. Tsirkin <mst@redhat.com>

Thanks for the review.

> 
> I guess we need this stuff on stable?

I think so.

> I'm especially happy with Patch7 as it makes my BQL
> work a bit easier.
> 
>> Toshiaki Makita (7):
>>   virtio_net: Don't enable NAPI when interface is down
>>   virtio_net: Don't call free_old_xmit_skbs for xdp_frames
>>   virtio_net: Fix not restoring real_num_rx_queues
>>   virtio_net: Fix out of bounds access of sq
>>   virtio_net: Don't process redirected XDP frames when XDP is disabled
>>   virtio_net: Use xdp_return_frame to free xdp_frames on destroying vqs
>>   virtio_net: Differentiate sk_buff and xdp_frame on freeing
>>
>>  drivers/net/virtio_net.c | 154 +++++++++++++++++++++++++++++++++--------------
>>  1 file changed, 109 insertions(+), 45 deletions(-)
>>
>> -- 
>> 1.8.3.1
>>
> 
>