
On 12/12/22 16:29, Niel Fourie wrote:
[...]
+static int _usb_eth_start(struct ether_priv *priv) +{
unsigned long ts;
unsigned long timeout = USB_CONNECT_TIMEOUT;
struct eth_dev *dev = &priv->ethdev;
if (!dev->gadget)
return -1;
dev->network_started = 0;
Will this work on systems which already have netconsole active ? I think this would break the netconsole connection, since the network would be reinitialized, won't it ?
I would expect this assignment to be in _init and _stop , not in _start callback.
But I wonder whether the current ethernet uclass interface running code does not make the entire network_started mechanism obsolete. See the patch which you referenced previously in related patch:
fa795f45254 ("net: eth-uclass: avoid running start() twice without stop()")
packet_received = 0; packet_sent = 0;
- gadget = dev->gadget;
- usb_gadget_connect(gadget);
usb_gadget_connect(dev->gadget);
if (env_get("cdc_connect_timeout")) timeout = dectoul(env_get("cdc_connect_timeout"), NULL) * CONFIG_SYS_HZ;
[...]
@@ -2493,9 +2509,13 @@ static void _usb_eth_halt(struct ether_priv *priv) #ifndef CONFIG_DM_ETH static int usb_eth_init(struct eth_device *netdev, struct bd_info *bd) {
- int ret; struct ether_priv *priv = (struct ether_priv *)netdev->priv;
Keep the vars sorted as reverse xmas tree please, i.e. int ret goes below the struct .
[...]