]> www.infradead.org Git - users/jedix/linux-maple.git/commit
xen-netfront: Improve error handling during initialization
authorRoss Lagerwall <ross.lagerwall@citrix.com>
Wed, 8 Feb 2017 10:57:37 +0000 (10:57 +0000)
committerJoao Martins <joao.m.martins@oracle.com>
Thu, 16 Nov 2017 18:03:21 +0000 (18:03 +0000)
commitbdcf3148ff01485c09ebcc5da7f21e8f81cb6088
tree4c20ae6db07bddf5caf6654f9545605747b1f983
parent996e639e1a23f9cb6cf2224987ba842cf3b1f92f
xen-netfront: Improve error handling during initialization

This fixes a crash when running out of grant refs when creating many
queues across many netdevs.

* If creating queues fails (i.e. there are no grant refs available),
call xenbus_dev_fatal() to ensure that the xenbus device is set to the
closed state.
* If no queues are created, don't call xennet_disconnect_backend as
netdev->real_num_tx_queues will not have been set correctly.
* If setup_netfront() fails, ensure that all the queues created are
cleaned up, not just those that have been set up.
* If any queues were set up and an error occurs, call
xennet_destroy_queues() to clean up the napi context.
* If any fatal error occurs, unregister and destroy the netdev to avoid
leaving around a half setup network device.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit e2e004acc7cbe3c531e752a270a74e95cde3ea48)

Conflicts:
drivers/net/xen-netfront.c

We have a additional feature that is probed (feature_staging_gnts), hence
it couldn't directly apply the chunk. But the chunks added/modified are
still the same as the backport.

Orabug: 22817043
Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
drivers/net/xen-netfront.c