| From 31e0f845fe857dc49f10ebc9e1bb0d770a9a76db Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 17 May 2021 16:45:16 +0800 |
| Subject: virtio_net: Fix error handling in virtnet_restore() |
| |
| From: Xie Yongji <xieyongji@bytedance.com> |
| |
| [ Upstream commit 3f2869cace829fb4b80fc53b3ddaa7f4ba9acbf1 ] |
| |
| Do some cleanups in virtnet_restore() when virtnet_cpu_notif_add() failed. |
| |
| Signed-off-by: Xie Yongji <xieyongji@bytedance.com> |
| Link: https://lore.kernel.org/r/20210517084516.332-1-xieyongji@bytedance.com |
| Acked-by: Jason Wang <jasowang@redhat.com> |
| Signed-off-by: Michael S. Tsirkin <mst@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/virtio_net.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c |
| index f7ce341bb328..db9a876035ec 100644 |
| --- a/drivers/net/virtio_net.c |
| +++ b/drivers/net/virtio_net.c |
| @@ -3229,8 +3229,11 @@ static __maybe_unused int virtnet_restore(struct virtio_device *vdev) |
| virtnet_set_queues(vi, vi->curr_queue_pairs); |
| |
| err = virtnet_cpu_notif_add(vi); |
| - if (err) |
| + if (err) { |
| + virtnet_freeze_down(vdev); |
| + remove_vq_common(vi); |
| return err; |
| + } |
| |
| return 0; |
| } |
| -- |
| 2.30.2 |
| |