2018-01-05 08:42:38

by Eduardo Otubo

[permalink] [raw]
Subject: [PATCH] xen-netfront: enable device after manual module load

When loading the module after unloading it, the network interface would
not be enabled and thus wouldn't have a backend counterpart and unable
to be used by the guest.

The guest would face errors like:

[root@guest ~]# ethtool -i eth0
Cannot get driver information: No such device

[root@guest ~]# ifconfig eth0
eth0: error fetching interface information: Device not found

This patch initializes the state of the netfront device whenever it is
loaded manually, this state would communicate the netback to create its
device and establish the connection between them.

Signed-off-by: Eduardo Otubo <[email protected]>
---
drivers/net/xen-netfront.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index c5a34671abda..9bd7ddeeb6a5 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -1326,6 +1326,7 @@ static struct net_device *xennet_create_dev(struct xenbus_device *dev)

netif_carrier_off(netdev);

+ xenbus_switch_state(dev, XenbusStateInitialising);
return netdev;

exit:
--
2.14.3


2018-01-08 15:04:07

by Boris Ostrovsky

[permalink] [raw]
Subject: Re: [Xen-devel] [PATCH] xen-netfront: enable device after manual module load

On 01/05/2018 03:42 AM, Eduardo Otubo wrote:
> When loading the module after unloading it, the network interface would
> not be enabled and thus wouldn't have a backend counterpart and unable
> to be used by the guest.
>
> The guest would face errors like:
>
> [root@guest ~]# ethtool -i eth0
> Cannot get driver information: No such device
>
> [root@guest ~]# ifconfig eth0
> eth0: error fetching interface information: Device not found
>
> This patch initializes the state of the netfront device whenever it is
> loaded manually, this state would communicate the netback to create its
> device and establish the connection between them.
>
> Signed-off-by: Eduardo Otubo <[email protected]>

Reviewed-by: Boris Ostrovsky <[email protected]>

Should this go to stable trees as well?

-boris

> ---
> drivers/net/xen-netfront.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
> index c5a34671abda..9bd7ddeeb6a5 100644
> --- a/drivers/net/xen-netfront.c
> +++ b/drivers/net/xen-netfront.c
> @@ -1326,6 +1326,7 @@ static struct net_device *xennet_create_dev(struct xenbus_device *dev)
>
> netif_carrier_off(netdev);
>
> + xenbus_switch_state(dev, XenbusStateInitialising);
> return netdev;
>
> exit:

2018-01-08 19:17:28

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] xen-netfront: enable device after manual module load

From: Eduardo Otubo <[email protected]>
Date: Fri, 5 Jan 2018 09:42:16 +0100

> When loading the module after unloading it, the network interface would
> not be enabled and thus wouldn't have a backend counterpart and unable
> to be used by the guest.
>
> The guest would face errors like:
>
> [root@guest ~]# ethtool -i eth0
> Cannot get driver information: No such device
>
> [root@guest ~]# ifconfig eth0
> eth0: error fetching interface information: Device not found
>
> This patch initializes the state of the netfront device whenever it is
> loaded manually, this state would communicate the netback to create its
> device and establish the connection between them.
>
> Signed-off-by: Eduardo Otubo <[email protected]>

Applied, thank you.