diff mbox

[U-Boot,v6,09/27] net: Remove the bd* parameter from net stack functions

Message ID 1426117465-16072-10-git-send-email-joe.hershberger@ni.com
State Superseded
Delegated to: Simon Glass
Headers show

Commit Message

Joe Hershberger March 11, 2015, 11:44 p.m. UTC
This value is not used by the network stack and is available in the
global data, so stop passing it around.  For the one legacy function
that still expects it (init op on old Ethernet drivers) pass in the
global pointer version directly to avoid changing that interface.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reported-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>

---

Changes in v6:
-Fix compile errors for other boards due to removed parameters

Changes in v5: None
Changes in v4:
-New to v4

Changes in v3: None
Changes in v2: None

 api/api_net.c                             |  2 +-
 arch/arm/lib/board.c                      |  2 +-
 arch/avr32/lib/board.c                    |  2 +-
 arch/m68k/lib/board.c                     |  4 ++--
 arch/nds32/lib/board.c                    |  2 +-
 arch/openrisc/lib/board.c                 |  2 +-
 arch/powerpc/lib/board.c                  |  2 +-
 arch/sh/lib/board.c                       |  2 +-
 arch/sparc/lib/board.c                    |  2 +-
 board/BuS/eb_cpux9k2/cpux9k2.c            |  2 +-
 board/BuS/vl_ma2sc/vl_ma2sc.c             |  2 +-
 board/atmel/at91sam9261ek/at91sam9261ek.c |  2 +-
 board/egnite/ethernut5/ethernut5.c        |  2 +-
 board/ronetix/pm9261/pm9261.c             |  2 +-
 board/ronetix/pm9g45/pm9g45.c             |  2 +-
 common/board_r.c                          |  2 +-
 common/spl/spl_net.c                      |  2 +-
 drivers/net/netconsole.c                  |  4 ++--
 include/net.h                             |  6 +++---
 net/eth.c                                 | 12 +++++++-----
 net/net.c                                 |  7 +++----
 21 files changed, 33 insertions(+), 32 deletions(-)

Comments

Simon Glass March 20, 2015, 11:01 p.m. UTC | #1
Hi Joe,

On 11 March 2015 at 17:44, Joe Hershberger <joe.hershberger@ni.com> wrote:
> This value is not used by the network stack and is available in the
> global data, so stop passing it around.  For the one legacy function
> that still expects it (init op on old Ethernet drivers) pass in the
> global pointer version directly to avoid changing that interface.
>
> Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
> Reported-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Simon Glass <sjg@chromium.org>
>
> ---
>
> Changes in v6:
> -Fix compile errors for other boards due to removed parameters

Unfortunately this causes several build failures:

38: net: Remove the bd* parameter from net stack functions
   powerpc:  +   PLU405 PMC440 sc3 neo acadia csb472 devconcenter
sequoia arches lwmon5 t3corp walnut PMC405DE redwood katmai
gdppc440etx p3p440 sycamore MIP405 zeus rainier_ramboot canyonlands
MIP405T haleakala dlvision csb272 xpedite1000 io yosemite yucca makalu
sequoia_ramboot dlvision-10g pcs440ep CPCI4052 sbc405 iocon ebony
glacier_ramboot VOM405 bamboo luan io64 PIP405 intip glacier
lcd4_lwmon5 bubinga yellowstone icon kilauea rainier

e.g:

$ buildman -b dm-push -s PLU405 -e
...
38: net: Remove the bd* parameter from net stack functions
  powerpc:  +   PLU405
+../drivers/net/4xx_enet.c: In function 'mal_err':
+../drivers/net/4xx_enet.c:1734:2: error: too many arguments to
function 'eth_init'
+../include/net.h:169:5: note: declared here
+make[2]: *** [drivers/net/4xx_enet.o] Error 1
+make[1]: *** [drivers/net] Error 2
+make: *** [sub-make] Error 2
...

Can you please check this and respin?

Regards,
Simon
Joe Hershberger March 22, 2015, 3:42 a.m. UTC | #2
Hi Simon,

On Fri, Mar 20, 2015 at 6:01 PM, Simon Glass <sjg@chromium.org> wrote:
>
> Hi Joe,
>
> On 11 March 2015 at 17:44, Joe Hershberger <joe.hershberger@ni.com> wrote:
> > This value is not used by the network stack and is available in the
> > global data, so stop passing it around.  For the one legacy function
> > that still expects it (init op on old Ethernet drivers) pass in the
> > global pointer version directly to avoid changing that interface.
> >
> > Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
> > Reported-by: Simon Glass <sjg@chromium.org>
> > Reviewed-by: Simon Glass <sjg@chromium.org>
> >
> > ---
> >
> > Changes in v6:
> > -Fix compile errors for other boards due to removed parameters
>
> Unfortunately this causes several build failures:
>
> 38: net: Remove the bd* parameter from net stack functions
>    powerpc:  +   PLU405 PMC440 sc3 neo acadia csb472 devconcenter
> sequoia arches lwmon5 t3corp walnut PMC405DE redwood katmai
> gdppc440etx p3p440 sycamore MIP405 zeus rainier_ramboot canyonlands
> MIP405T haleakala dlvision csb272 xpedite1000 io yosemite yucca makalu
> sequoia_ramboot dlvision-10g pcs440ep CPCI4052 sbc405 iocon ebony
> glacier_ramboot VOM405 bamboo luan io64 PIP405 intip glacier
> lcd4_lwmon5 bubinga yellowstone icon kilauea rainier
>
> e.g:
>
> $ buildman -b dm-push -s PLU405 -e
> ...
> 38: net: Remove the bd* parameter from net stack functions
>   powerpc:  +   PLU405
> +../drivers/net/4xx_enet.c: In function 'mal_err':
> +../drivers/net/4xx_enet.c:1734:2: error: too many arguments to
> function 'eth_init'
> +../include/net.h:169:5: note: declared here
> +make[2]: *** [drivers/net/4xx_enet.o] Error 1
> +make[1]: *** [drivers/net] Error 2
> +make: *** [sub-make] Error 2
> ...
>
> Can you please check this and respin?

Sorry about that. Are you aware of anything other than the 4xx_enet.c
error? I grepped around and didn't find anything else, but I also missed
this one previously using the same method.

Thanks,
-Joe
Simon Glass March 22, 2015, 9:09 p.m. UTC | #3
Hi Joe,

On 21 March 2015 at 21:42, Joe Hershberger <joe.hershberger@gmail.com> wrote:
>
> Hi Simon,
>
>
> On Fri, Mar 20, 2015 at 6:01 PM, Simon Glass <sjg@chromium.org> wrote:
> >
> > Hi Joe,
> >
> > On 11 March 2015 at 17:44, Joe Hershberger <joe.hershberger@ni.com> wrote:
> > > This value is not used by the network stack and is available in the
> > > global data, so stop passing it around.  For the one legacy function
> > > that still expects it (init op on old Ethernet drivers) pass in the
> > > global pointer version directly to avoid changing that interface.
> > >
> > > Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
> > > Reported-by: Simon Glass <sjg@chromium.org>
> > > Reviewed-by: Simon Glass <sjg@chromium.org>
> > >
> > > ---
> > >
> > > Changes in v6:
> > > -Fix compile errors for other boards due to removed parameters
> >
> > Unfortunately this causes several build failures:
> >
> > 38: net: Remove the bd* parameter from net stack functions
> >    powerpc:  +   PLU405 PMC440 sc3 neo acadia csb472 devconcenter
> > sequoia arches lwmon5 t3corp walnut PMC405DE redwood katmai
> > gdppc440etx p3p440 sycamore MIP405 zeus rainier_ramboot canyonlands
> > MIP405T haleakala dlvision csb272 xpedite1000 io yosemite yucca makalu
> > sequoia_ramboot dlvision-10g pcs440ep CPCI4052 sbc405 iocon ebony
> > glacier_ramboot VOM405 bamboo luan io64 PIP405 intip glacier
> > lcd4_lwmon5 bubinga yellowstone icon kilauea rainier
> >
> > e.g:
> >
> > $ buildman -b dm-push -s PLU405 -e
> > ...
> > 38: net: Remove the bd* parameter from net stack functions
> >   powerpc:  +   PLU405
> > +../drivers/net/4xx_enet.c: In function 'mal_err':
> > +../drivers/net/4xx_enet.c:1734:2: error: too many arguments to
> > function 'eth_init'
> > +../include/net.h:169:5: note: declared here
> > +make[2]: *** [drivers/net/4xx_enet.o] Error 1
> > +make[1]: *** [drivers/net] Error 2
> > +make: *** [sub-make] Error 2
> > ...
> >
> > Can you please check this and respin?
>
> Sorry about that. Are you aware of anything other than the 4xx_enet.c error? I grepped around and didn't find anything else, but I also missed this one previously using the same method.

Unfortunately I don't have that build anymore. Given the board names
it seems likely.

Regards,
Simon
diff mbox

Patch

diff --git a/api/api_net.c b/api/api_net.c
index 7b3805e..04e4f4a 100644
--- a/api/api_net.c
+++ b/api/api_net.c
@@ -37,7 +37,7 @@  int dev_open_net(void *cookie)
 	if (!dev_valid_net(cookie))
 		return API_ENODEV;
 
-	if (eth_init(gd->bd) < 0)
+	if (eth_init() < 0)
 		return API_EIO;
 
 	return 0;
diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
index f606255..37ea6e9 100644
--- a/arch/arm/lib/board.c
+++ b/arch/arm/lib/board.c
@@ -644,7 +644,7 @@  void board_init_r(gd_t *id, ulong dest_addr)
 #endif
 #if defined(CONFIG_CMD_NET)
 	puts("Net:   ");
-	eth_initialize(gd->bd);
+	eth_initialize();
 #if defined(CONFIG_RESET_PHY_R)
 	debug("Reset Ethernet PHY\n");
 	reset_phy();
diff --git a/arch/avr32/lib/board.c b/arch/avr32/lib/board.c
index 99aa96e..aacfcbf 100644
--- a/arch/avr32/lib/board.c
+++ b/arch/avr32/lib/board.c
@@ -244,7 +244,7 @@  void board_init_r(gd_t *new_gd, ulong dest_addr)
 #endif
 #if defined(CONFIG_CMD_NET)
 	puts("Net:   ");
-	eth_initialize(gd->bd);
+	eth_initialize();
 #endif
 
 #ifdef CONFIG_GENERIC_ATMEL_MCI
diff --git a/arch/m68k/lib/board.c b/arch/m68k/lib/board.c
index 9caff73..c54a3f7 100644
--- a/arch/m68k/lib/board.c
+++ b/arch/m68k/lib/board.c
@@ -566,10 +566,10 @@  void board_init_r (gd_t *id, ulong dest_addr)
 #if defined(CONFIG_CMD_NET)
 	WATCHDOG_RESET();
 #if defined(FEC_ENET)
-	eth_init(bd);
+	eth_init();
 #endif
 	puts ("Net:   ");
-	eth_initialize (bd);
+	eth_initialize();
 #endif
 
 #ifdef CONFIG_POST
diff --git a/arch/nds32/lib/board.c b/arch/nds32/lib/board.c
index 4c06a48..24a09bc 100644
--- a/arch/nds32/lib/board.c
+++ b/arch/nds32/lib/board.c
@@ -383,7 +383,7 @@  void board_init_r(gd_t *id, ulong dest_addr)
 #if defined(CONFIG_CMD_NET)
 	puts("Net:   ");
 
-	eth_initialize(gd->bd);
+	eth_initialize();
 #if defined(CONFIG_RESET_PHY_R)
 	debug("Reset Ethernet PHY\n");
 	reset_phy();
diff --git a/arch/openrisc/lib/board.c b/arch/openrisc/lib/board.c
index 2346685..c26cc8f 100644
--- a/arch/openrisc/lib/board.c
+++ b/arch/openrisc/lib/board.c
@@ -128,7 +128,7 @@  void board_init(void)
 
 #if defined(CONFIG_CMD_NET)
 	puts("NET:   ");
-	eth_initialize(bd);
+	eth_initialize();
 #endif
 
 	/* main_loop */
diff --git a/arch/powerpc/lib/board.c b/arch/powerpc/lib/board.c
index 91645d3..5ea29cc 100644
--- a/arch/powerpc/lib/board.c
+++ b/arch/powerpc/lib/board.c
@@ -890,7 +890,7 @@  void board_init_r(gd_t *id, ulong dest_addr)
 #if defined(CONFIG_CMD_NET)
 	WATCHDOG_RESET();
 	puts("Net:   ");
-	eth_initialize(bd);
+	eth_initialize();
 #endif
 
 #if defined(CONFIG_CMD_NET) && defined(CONFIG_RESET_PHY_R)
diff --git a/arch/sh/lib/board.c b/arch/sh/lib/board.c
index 1eb7afb..6dad3c7 100644
--- a/arch/sh/lib/board.c
+++ b/arch/sh/lib/board.c
@@ -178,7 +178,7 @@  void sh_generic_init(void)
 #endif
 #if defined(CONFIG_CMD_NET)
 	puts("Net:   ");
-	eth_initialize(gd->bd);
+	eth_initialize();
 #endif /* CONFIG_CMD_NET */
 
 	while (1) {
diff --git a/arch/sparc/lib/board.c b/arch/sparc/lib/board.c
index b311a94..d2ac6bc 100644
--- a/arch/sparc/lib/board.c
+++ b/arch/sparc/lib/board.c
@@ -351,7 +351,7 @@  void board_init_f(ulong bootflag)
 #if defined(CONFIG_CMD_NET)
 	WATCHDOG_RESET();
 	puts("Net:   ");
-	eth_initialize(bd);
+	eth_initialize();
 #endif
 
 #if defined(CONFIG_CMD_NET) && defined(CONFIG_RESET_PHY_R)
diff --git a/board/BuS/eb_cpux9k2/cpux9k2.c b/board/BuS/eb_cpux9k2/cpux9k2.c
index 76ad7c4..3880a06 100644
--- a/board/BuS/eb_cpux9k2/cpux9k2.c
+++ b/board/BuS/eb_cpux9k2/cpux9k2.c
@@ -111,7 +111,7 @@  int misc_init_r(void)
 void reset_phy(void)
 {
 	udelay(10000);
-	eth_init(gd->bd);
+	eth_init();
 }
 #endif
 
diff --git a/board/BuS/vl_ma2sc/vl_ma2sc.c b/board/BuS/vl_ma2sc/vl_ma2sc.c
index da39c86..e4e1a85 100644
--- a/board/BuS/vl_ma2sc/vl_ma2sc.c
+++ b/board/BuS/vl_ma2sc/vl_ma2sc.c
@@ -280,7 +280,7 @@  void reset_phy(void)
 	 * Initialize ethernet HW addr prior to starting Linux,
 	 * needed for nfsroot
 	 */
-	eth_init(gd->bd);
+	eth_init();
 #endif
 }
 #endif
diff --git a/board/atmel/at91sam9261ek/at91sam9261ek.c b/board/atmel/at91sam9261ek/at91sam9261ek.c
index a301d72..5250474 100644
--- a/board/atmel/at91sam9261ek/at91sam9261ek.c
+++ b/board/atmel/at91sam9261ek/at91sam9261ek.c
@@ -275,7 +275,7 @@  void reset_phy(void)
 	 * Initialize ethernet HW addr prior to starting Linux,
 	 * needed for nfsroot
 	 */
-	eth_init(gd->bd);
+	eth_init();
 #endif
 }
 #endif
diff --git a/board/egnite/ethernut5/ethernut5.c b/board/egnite/ethernut5/ethernut5.c
index b45213c..67d3984 100644
--- a/board/egnite/ethernut5/ethernut5.c
+++ b/board/egnite/ethernut5/ethernut5.c
@@ -204,7 +204,7 @@  int board_eth_init(bd_t *bis)
 		miiphy_write(devname, 0, MII_BMCR, BMCR_RESET);
 	}
 	/* Sync environment with network devices, needed for nfsroot. */
-	return eth_init(gd->bd);
+	return eth_init();
 }
 #endif
 
diff --git a/board/ronetix/pm9261/pm9261.c b/board/ronetix/pm9261/pm9261.c
index 1f7679a..b96f745 100644
--- a/board/ronetix/pm9261/pm9261.c
+++ b/board/ronetix/pm9261/pm9261.c
@@ -288,7 +288,7 @@  void reset_phy(void)
 	 * Initialize ethernet HW addr prior to starting Linux,
 	 * needed for nfsroot
 	 */
-	eth_init(gd->bd);
+	eth_init();
 #endif
 }
 #endif
diff --git a/board/ronetix/pm9g45/pm9g45.c b/board/ronetix/pm9g45/pm9g45.c
index 15aa4ac..efc4133 100644
--- a/board/ronetix/pm9g45/pm9g45.c
+++ b/board/ronetix/pm9g45/pm9g45.c
@@ -166,7 +166,7 @@  void reset_phy(void)
 	 * Initialize ethernet HW addr prior to starting Linux,
 	 * needed for nfsroot
 	 */
-	eth_init(gd->bd);
+	eth_init();
 #endif
 }
 #endif
diff --git a/common/board_r.c b/common/board_r.c
index af0f274..b882d9b 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -585,7 +585,7 @@  static int initr_bbmii(void)
 static int initr_net(void)
 {
 	puts("Net:   ");
-	eth_initialize(gd->bd);
+	eth_initialize();
 #if defined(CONFIG_RESET_PHY_R)
 	debug("Reset Ethernet PHY\n");
 	reset_phy();
diff --git a/common/spl/spl_net.c b/common/spl/spl_net.c
index ff53705..af4952f 100644
--- a/common/spl/spl_net.c
+++ b/common/spl/spl_net.c
@@ -21,7 +21,7 @@  void spl_net_load_image(const char *device)
 	env_relocate();
 	setenv("autoload", "yes");
 	load_addr = CONFIG_SYS_TEXT_BASE - sizeof(struct image_header);
-	rv = eth_initialize(gd->bd);
+	rv = eth_initialize();
 	if (rv == 0) {
 		printf("No Ethernet devices found\n");
 		hang();
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 677c89f..87cea7a 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -193,11 +193,11 @@  static void nc_send_packet(const char *buf, int len)
 
 	if (eth->state != ETH_STATE_ACTIVE) {
 		if (eth_is_on_demand_init()) {
-			if (eth_init(gd->bd) < 0)
+			if (eth_init() < 0)
 				return;
 			eth_set_last_protocol(NETCONS);
 		} else
-			eth_init_state_only(gd->bd);
+			eth_init_state_only();
 
 		inited = 1;
 	}
diff --git a/include/net.h b/include/net.h
index cec5612..ae0f31a 100644
--- a/include/net.h
+++ b/include/net.h
@@ -119,7 +119,7 @@  static inline unsigned char *eth_get_ethaddr(void)
 }
 
 /* Set active state */
-static inline __attribute__((always_inline)) int eth_init_state_only(bd_t *bis)
+static inline __attribute__((always_inline)) int eth_init_state_only(void)
 {
 	eth_get_dev()->state = ETH_STATE_ACTIVE;
 
@@ -145,7 +145,7 @@  int eth_write_hwaddr(struct eth_device *dev, const char *base_name,
 
 int usb_eth_initialize(bd_t *bi);
 
-int eth_initialize(bd_t *bis);	/* Initialize network subsystem */
+int eth_initialize(void);		/* Initialize network subsystem */
 void eth_try_another(int first_restart);	/* Change the device */
 void eth_set_current(void);		/* set nterface to ethcur var */
 
@@ -166,7 +166,7 @@  int eth_setenv_enetaddr(char *name, const uchar *enetaddr);
 int eth_getenv_enetaddr_by_index(const char *base_name, int index,
 				 uchar *enetaddr);
 
-int eth_init(bd_t *bis);			/* Initialize the device */
+int eth_init(void);			/* Initialize the device */
 int eth_send(void *packet, int length);	   /* Send a packet */
 
 #ifdef CONFIG_API
diff --git a/net/eth.c b/net/eth.c
index b86994e..66ecb79 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -12,6 +12,8 @@ 
 #include <phy.h>
 #include <asm/errno.h>
 
+DECLARE_GLOBAL_DATA_PTR;
+
 void eth_parse_enetaddr(const char *addr, uchar *enetaddr)
 {
 	char *end;
@@ -250,7 +252,7 @@  int eth_unregister(struct eth_device *dev)
 	return 0;
 }
 
-int eth_initialize(bd_t *bis)
+int eth_initialize(void)
 {
 	int num_devices = 0;
 	eth_devices = NULL;
@@ -272,10 +274,10 @@  int eth_initialize(bd_t *bis)
 	 * If not, call a CPU-specific one
 	 */
 	if (board_eth_init != __def_eth_init) {
-		if (board_eth_init(bis) < 0)
+		if (board_eth_init(gd->bd) < 0)
 			printf("Board Net Initialization Failed\n");
 	} else if (cpu_eth_init != __def_eth_init) {
-		if (cpu_eth_init(bis) < 0)
+		if (cpu_eth_init(gd->bd) < 0)
 			printf("CPU Net Initialization Failed\n");
 	} else
 		printf("Net Initialization Skipped\n");
@@ -362,7 +364,7 @@  u32 ether_crc(size_t len, unsigned char const *p)
 #endif
 
 
-int eth_init(bd_t *bis)
+int eth_init(void)
 {
 	struct eth_device *old_current, *dev;
 
@@ -387,7 +389,7 @@  int eth_init(bd_t *bis)
 	do {
 		debug("Trying %s\n", eth_current->name);
 
-		if (eth_current->init(eth_current, bis) >= 0) {
+		if (eth_current->init(eth_current, gd->bd) >= 0) {
 			eth_current->state = ETH_STATE_ACTIVE;
 
 			return 0;
diff --git a/net/net.c b/net/net.c
index 4b3c90e..e5ab07c 100644
--- a/net/net.c
+++ b/net/net.c
@@ -324,7 +324,6 @@  void net_init(void)
 
 int NetLoop(enum proto_t protocol)
 {
-	bd_t *bd = gd->bd;
 	int ret = -1;
 
 	NetRestarted = 0;
@@ -337,12 +336,12 @@  int NetLoop(enum proto_t protocol)
 	if (eth_is_on_demand_init() || protocol != NETCONS) {
 		eth_halt();
 		eth_set_current();
-		if (eth_init(bd) < 0) {
+		if (eth_init() < 0) {
 			eth_halt();
 			return -1;
 		}
 	} else
-		eth_init_state_only(bd);
+		eth_init_state_only();
 
 restart:
 #ifdef CONFIG_USB_KEYBOARD
@@ -618,7 +617,7 @@  void NetStartAgain(void)
 #if !defined(CONFIG_NET_DO_NOT_TRY_ANOTHER)
 	eth_try_another(!NetRestarted);
 #endif
-	eth_init(gd->bd);
+	eth_init();
 	if (NetRestartWrap) {
 		NetRestartWrap = 0;
 		if (NetDevExists) {