Prechádzať zdrojové kódy

Fix cs8900 dev->priv not init issue

Ensure all CS8900 data structures are assigned before accessing device

Signed-off-by: Hui.Tang <zetalabs@gmail.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Hui.Tang 15 rokov pred
rodič
commit
497ab0eec5
1 zmenil súbory, kde vykonal 4 pridanie a 3 odobranie
  1. 4 3
      drivers/net/cs8900.c

+ 4 - 3
drivers/net/cs8900.c

@@ -321,15 +321,16 @@ int cs8900_initialize(u8 dev_num, int base_addr)
 	memset(priv, 0, sizeof(*priv));
 	priv->regs = (struct cs8900_regs *)base_addr;
 
-	/* Load MAC address from EEPROM */
-	cs8900_get_enetaddr(dev);
-
 	dev->iobase = base_addr;
 	dev->priv = priv;
 	dev->init = cs8900_init;
 	dev->halt = cs8900_halt;
 	dev->send = cs8900_send;
 	dev->recv = cs8900_recv;
+
+	/* Load MAC address from EEPROM */
+	cs8900_get_enetaddr(dev);
+
 	sprintf(dev->name, "%s-%hu", CS8900_DRIVERNAME, dev_num);
 
 	eth_register(dev);