X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fnet%2Fnatsemi.c;h=14b2d355c15e07d5336445808bc79321e276f6c5;hb=9082eeac5de1335d663016668c9b89c290f5c79b;hp=4aee0481dbe48b09b325699394cfd66607b8ccf5;hpb=794a5924972fc8073616e98a2668da4a5f9aea90;p=u-boot diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c index 4aee0481db..14b2d355c1 100644 --- a/drivers/net/natsemi.c +++ b/drivers/net/natsemi.c @@ -53,6 +53,7 @@ #include #include #include +#include #include #include @@ -320,6 +321,11 @@ natsemi_initialize(bd_t * bis) } dev = (struct eth_device *) malloc(sizeof *dev); + if (!dev) { + printf("natsemi: Can not allocate memory\n"); + break; + } + memset(dev, 0, sizeof(*dev)); sprintf(dev->name, "dp83815#%d", card_number); dev->iobase = bus_to_phys(iobase); @@ -408,7 +414,7 @@ natsemi_initialize(bd_t * bis) The EEPROM code is for common 93c06/46 EEPROMs w/ 6bit addresses. */ /* Delay between EEPROM clock transitions. - No extra delay is needed with 33Mhz PCI, but future 66Mhz + No extra delay is needed with 33MHz PCI, but future 66MHz access may need a delay. */ #define eeprom_delay(ee_addr) INL(dev, ee_addr) @@ -753,7 +759,8 @@ natsemi_send(struct eth_device *dev, volatile void *packet, int length) { u32 i, status = 0; u32 tx_status = 0; - vu_long *res = (vu_long *)&tx_status; + u32 *tx_ptr = &tx_status; + vu_long *res = (vu_long *)tx_ptr; /* Stop the transmitter */ OUTL(dev, TxOff, ChipCmd);