
On Wednesday 11 February 2009, Wolfgang Denk wrote:
+++ b/board/amcc/katmai/katmai.c @@ -451,5 +451,11 @@ int post_hotkeys_pressed(void)
int board_eth_init(bd_t *bis) {
- return pci_eth_init(bis);
- cpu_eth_init(bis);
- pci_eth_init(bis);
- /*
* Return 0 so that cpu_eth_init() won't get executed again
*/
- return 0;
What happens in case of errors? This looks broken to me, or I misinderstand the comment.
This is the code calling board_eth_init() from net/eth.c:
/* Try board-specific initialization first. If it fails or isn't * present, try the cpu-specific initialization */ if (board_eth_init(bis) < 0) cpu_eth_init(bis);
So if we return with an error in board_eth_init(), cpu_eth_init() will get called again. Another way to fix this problem would be this implementation:
board_eth_init() { pci_eth_init(bis);
/* * Return -1 so that cpu_eth_init() will get executed in net/eth.c */ return -1; }
But I like the former implementation better, since the cpu internal ethernet interfaces are added first to the network devices list.
Best regards, Stefan
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de =====================================================================