Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 736532a0 authored by Karicheri, Muralidharan's avatar Karicheri, Muralidharan Committed by David S. Miller
Browse files

net: netcp: move netcp_register_interface() to after attach module



The netcp interface is not fully initialized before attach the module
to the interface. For example, the tx pipe/rx pipe is initialized
in ethss module as part of attach(). So until this is complete, the
interface can't be registered.  So move registration of interface to
net device outside the current loop that attaches the modules to the
interface.

Signed-off-by: default avatarMurali Karicheri <m-karicheri2@ti.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 156e3c21
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -291,13 +291,6 @@ static int netcp_module_probe(struct netcp_device *netcp_device,
			    interface_list) {
		struct netcp_intf_modpriv *intf_modpriv;

		/* If interface not registered then register now */
		if (!netcp_intf->netdev_registered)
			ret = netcp_register_interface(netcp_intf);

		if (ret)
			return -ENODEV;

		intf_modpriv = devm_kzalloc(dev, sizeof(*intf_modpriv),
					    GFP_KERNEL);
		if (!intf_modpriv)
@@ -323,6 +316,18 @@ static int netcp_module_probe(struct netcp_device *netcp_device,
			continue;
		}
	}

	/* Now register the interface with netdev */
	list_for_each_entry(netcp_intf,
			    &netcp_device->interface_head,
			    interface_list) {
		/* If interface not registered then register now */
		if (!netcp_intf->netdev_registered) {
			ret = netcp_register_interface(netcp_intf);
			if (ret)
				return -ENODEV;
		}
	}
	return 0;
}