]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
xen-netfront: Fix hang on device removal
authorJason Andryuk <jandryuk@gmail.com>
Wed, 28 Feb 2018 12:23:23 +0000 (07:23 -0500)
committerSasha Levin <alexander.levin@microsoft.com>
Wed, 23 May 2018 01:36:32 +0000 (21:36 -0400)
commit291208f503c049ec062dfbb06f6e2ff332ba0f09
tree5dc99da9913fce7f298194be6f4f51cec0110f5f
parent51286a48b60aa3e9cd6b4f0a4a948cbb07e8c480
xen-netfront: Fix hang on device removal

[ Upstream commit c2d2e6738a209f0f9dffa2dc8e7292fc45360d61 ]

A toolstack may delete the vif frontend and backend xenstore entries
while xen-netfront is in the removal code path.  In that case, the
checks for xenbus_read_driver_state would return XenbusStateUnknown, and
xennet_remove would hang indefinitely.  This hang prevents system
shutdown.

xennet_remove must be able to handle XenbusStateUnknown, and
netback_changed must also wake up the wake_queue for that state as well.

Fixes: 5b5971df3bc2 ("xen-netfront: remove warning when unloading module")
Signed-off-by: Jason Andryuk <jandryuk@gmail.com>
Cc: Eduardo Otubo <otubo@redhat.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
drivers/net/xen-netfront.c