Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1231599

[PATCH 3/7] net: netcp: move netcp_register_interface() to after attach module

From Murali Karicheri <m-karicheri2@ti.com>
Newsgroups linux.kernel
Subject [PATCH 3/7] net: netcp: move netcp_register_interface() to after attach module
Date 2015-09-23 19:40 +0200
Message-ID <qbWbp-2Bf-29@gated-at.bofh.it> (permalink)
References <qbWbn-2Bf-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


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: Murali Karicheri <m-karicheri2@ti.com>
---
 drivers/net/ethernet/ti/netcp_core.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/ti/netcp_core.c b/drivers/net/ethernet/ti/netcp_core.c
index c0bc4b9..cf693de 100644
--- a/drivers/net/ethernet/ti/netcp_core.c
+++ b/drivers/net/ethernet/ti/netcp_core.c
@@ -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;
 }
 
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/7] net: netcp: a set of bug fixes Murali Karicheri <m-karicheri2@ti.com> - 2015-09-23 19:40 +0200
  [PATCH 3/7] net: netcp: move netcp_register_interface() to after attach module Murali Karicheri <m-karicheri2@ti.com> - 2015-09-23 19:40 +0200
  Re: [PATCH 0/7] net: netcp: a set of bug fixes David Miller <davem@davemloft.net> - 2015-09-23 23:40 +0200
  Re: [PATCH 0/7] net: netcp: a set of bug fixes Murali Karicheri <m-karicheri2@ti.com> - 2015-09-25 15:40 +0200

csiph-web