linux/drivers/net
Ian Campbell 31a418986a xen: netback: read hotplug script once at start of day.
When we come to tear things down in netback_remove() and generate the
uevent it is possible that the xenstore directory has already been
removed (details below).

In such cases netback_uevent() won't be able to read the hotplug
script and will write a xenstore error node.

A recent change to the hypervisor exposed this race such that we now
sometimes lose it (where apparently we didn't ever before).

Instead read the hotplug script configuration during setup and use it
for the lifetime of the backend device.

The apparently more obvious fix of moving the transition to
state=Closed in netback_remove() to after the uevent does not work
because it is possible that we are already in state=Closed (in
reaction to the guest having disconnected as it shutdown). Being
already in Closed means the toolstack is at liberty to start tearing
down the xenstore directories. In principal it might be possible to
arrange to unregister the device sooner (e.g on transition to Closing)
such that xenstore would still be there but this state machine is
fragile and prone to anger...

A modern Xen system only relies on the hotplug uevent for driver
domains, when the backend is in the same domain as the toolstack it
will run the necessary setup/teardown directly in the correct sequence
wrt xenstore changes.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-06-01 12:03:04 -07:00
..
appletalk net/appletalk: LTPC needs virt_to_bus 2015-02-20 16:28:46 -05:00
arcnet net: Kill dev_rebuild_header 2015-03-02 16:43:41 -05:00
bonding rtnl/bond: don't send rtnl msg for unregistered iface 2015-05-17 22:43:07 -04:00
caif caif: remove unused struct member 2015-04-01 12:43:09 -04:00
can net: can: xilinx_can: fix extended frame handling 2015-05-01 10:11:46 +02:00
cris
dsa net: dsa: mv88e6xxx: unregister mv88e6352 driver 2015-05-04 00:04:43 -04:00
ethernet sfc: free multiple Rx buffers when required 2015-05-31 17:36:20 -07:00
fddi
hamradio ax25: remove unneeded NULL test in ax_xmit() 2015-03-06 21:50:42 -05:00
hippi
hyperv hv_netvsc: remove unused variable in netvsc_send() 2015-05-05 17:31:09 -04:00
ieee802154 at86rf230: add slp_tr support to start tx 2015-04-30 18:48:11 +02:00
ipvlan Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-04-02 16:16:53 -04:00
irda
phy amd-xgbe-phy: Fix initial mode when autoneg is disabled 2015-05-26 19:47:30 -04:00
plip
ppp pppoe: drop pppoe device in pppoe_unbind_sock_work 2015-05-11 12:58:22 -04:00
slip
team team: Don't segment multiple tagged packets on team device 2015-03-29 13:33:24 -07:00
usb cdc_ncm: Fix tx_bytes statistics 2015-05-22 14:26:31 -04:00
vmxnet3 vmxnet3: spelling fixes 2015-04-01 22:52:29 -04:00
wan cosa: fix error return code 2015-04-07 15:21:55 -04:00
wimax
wireless * fix firmware name and other things to enable 3165 2015-05-22 10:47:02 +03:00
xen-netback xen: netback: read hotplug script once at start of day. 2015-06-01 12:03:04 -07:00
dummy.c
eql.c
ifb.c act_mirred: Fix bogus header when redirecting from VLAN 2015-04-17 13:29:28 -04:00
Kconfig ipvlan: Fix text that talks about ip util support 2015-02-20 16:35:44 -05:00
LICENSE.SRC
loopback.c
macvlan.c macvlan: Propagate promiscuity setting to lower devices. 2015-05-04 00:14:13 -04:00
macvtap.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-04-17 16:31:08 -04:00
Makefile
mdio.c
mii.c
netconsole.c netconsole: Use eth_<foo>_addr instead of memset 2015-03-03 17:01:37 -05:00
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c PNP: net/sb1000: Use module_pnp_driver to register driver 2015-03-18 22:39:17 +01:00
Space.c
sungem_phy.c
tun.c make new_sync_{read,write}() static 2015-04-11 22:29:40 -04:00
veth.c veth: set iflink to the peer veth 2015-04-02 14:05:01 -04:00
virtio_net.c virtio: document queue state logic 2015-04-06 16:44:24 -04:00
vxlan.c vxlan: correct typo in call to unregister_netdevice_queue 2015-05-18 16:57:09 -04:00
xen-netfront.c xen-netfront: properly destroy queues when removing device 2015-05-27 14:02:28 -04:00