mirror of https://gitee.com/openkylin/linux.git
xen-netfront: avoid crashing on resume after a failure in talk_to_netback()
Unavoidable crashes in netfront_resume() and netback_changed() after a previous fail in talk_to_netback() (e.g. when we fail to read MAC from xenstore) were discovered. The failure path in talk_to_netback() does unregister/free for netdev but we don't reset drvdata and we try accessing it after resume. Fix the bug by removing the whole xen device completely with device_unregister(), this guarantees we won't have any calls into netfront after a failure. Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
cb395b2010
commit
d86b5672b1
|
@ -1934,8 +1934,7 @@ static int talk_to_netback(struct xenbus_device *dev,
|
|||
xennet_disconnect_backend(info);
|
||||
xennet_destroy_queues(info);
|
||||
out:
|
||||
unregister_netdev(info->netdev);
|
||||
xennet_free_netdev(info->netdev);
|
||||
device_unregister(&dev->dev);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue