Messages in this thread | | | Subject | Re: [PATCH] virtio_net: enable tx after resuming from suspend | From | ake <> | Date | Thu, 11 Oct 2018 19:22:47 +0900 |
| |
On 2018年10月11日 18:44, Jason Wang wrote: > > > On 2018年10月11日 15:51, Ake Koomsin wrote: >> commit 713a98d90c5e ("virtio-net: serialize tx routine during reset") >> disabled the virtio tx before going to suspend to avoid a use after free. >> However, after resuming, it causes the virtio_net device to lose its >> network connectivity. >> >> To solve the issue, we need to enable tx after resuming. >> >> Fixes commit 713a98d90c5e ("virtio-net: serialize tx routine during >> reset") >> Signed-off-by: Ake Koomsin <ake@igel.co.jp> >> --- >> drivers/net/virtio_net.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c >> index dab504ec5e50..3453d80f5f81 100644 >> --- a/drivers/net/virtio_net.c >> +++ b/drivers/net/virtio_net.c >> @@ -2256,6 +2256,7 @@ static int virtnet_restore_up(struct >> virtio_device *vdev) >> } >> netif_device_attach(vi->dev); >> + netif_start_queue(vi->dev); > > I believe this is duplicated with netif_tx_wake_all_queues() in > netif_device_attach() above?
Thank you for your review.
If both netif_tx_wake_all_queues() and netif_start_queue() result in clearing __QUEUE_STATE_DRV_XOFF, then is it possible that some conditions in netif_device_attach() is not satisfied? Without netif_start_queue(), the virtio_net device does not resume properly after waking up.
Is it better to report this as a bug first? If I am to do more investigation, what areas should I look into?
Best Regards Ake Koomsin
| |