xen-netfront: Fix hang on device removal
authorJason Andryuk <jandryuk@gmail.com>
Wed, 28 Feb 2018 12:23:23 +0000 (07:23 -0500)
committerJuergen Gross <jgross@suse.com>
Wed, 28 Feb 2018 19:20:08 +0000 (20:20 +0100)
commitc2d2e6738a209f0f9dffa2dc8e7292fc45360d61
treece54a6673f4658e1323614888b55596e4ec0459a
parent910f8befdf5bccf25287d9f1743e3e546bcb7ce0
xen-netfront: Fix hang on device removal

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>
drivers/net/xen-netfront.c