diff options
Diffstat (limited to 'drivers/net/xen-netback/xenbus.c')
| -rw-r--r-- | drivers/net/xen-netback/xenbus.c | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c index a5439c130130..d24b7a7993aa 100644 --- a/drivers/net/xen-netback/xenbus.c +++ b/drivers/net/xen-netback/xenbus.c @@ -824,11 +824,15 @@ static void connect(struct backend_info *be)  	xenvif_carrier_on(be->vif);  	unregister_hotplug_status_watch(be); -	err = xenbus_watch_pathfmt(dev, &be->hotplug_status_watch, NULL, -				   hotplug_status_changed, -				   "%s/%s", dev->nodename, "hotplug-status"); -	if (!err) +	if (xenbus_exists(XBT_NIL, dev->nodename, "hotplug-status")) { +		err = xenbus_watch_pathfmt(dev, &be->hotplug_status_watch, +					   NULL, hotplug_status_changed, +					   "%s/%s", dev->nodename, +					   "hotplug-status"); +		if (err) +			goto err;  		be->have_hotplug_status_watch = 1; +	}  	netif_tx_wake_all_queues(be->vif->dev); | 
