diff options
Diffstat (limited to 'drivers/net/ethernet/fealnx.c')
-rw-r--r-- | drivers/net/ethernet/fealnx.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/ethernet/fealnx.c b/drivers/net/ethernet/fealnx.c index 25c91b3c5fd3..b3939a5f7b03 100644 --- a/drivers/net/ethernet/fealnx.c +++ b/drivers/net/ethernet/fealnx.c @@ -482,6 +482,7 @@ static int fealnx_init_one(struct pci_dev *pdev, struct net_device *dev; void *ring_space; dma_addr_t ring_dma; + u8 addr[ETH_ALEN]; #ifdef USE_IO_OPS int bar = 0; #else @@ -525,7 +526,8 @@ static int fealnx_init_one(struct pci_dev *pdev, /* read ethernet id */ for (i = 0; i < 6; ++i) - dev->dev_addr[i] = ioread8(ioaddr + PAR0 + i); + addr[i] = ioread8(ioaddr + PAR0 + i); + eth_hw_addr_set(dev, addr); /* Reset the chip to erase previous misconfiguration. */ iowrite32(0x00000001, ioaddr + BCR); @@ -827,7 +829,7 @@ static int netdev_open(struct net_device *dev) return -EAGAIN; for (i = 0; i < 3; i++) - iowrite16(((unsigned short*)dev->dev_addr)[i], + iowrite16(((const unsigned short *)dev->dev_addr)[i], ioaddr + PAR0 + i*2); init_ring(dev); @@ -857,7 +859,7 @@ static int netdev_open(struct net_device *dev) np->bcrvalue |= 0x04; /* big-endian */ #endif -#if defined(__i386__) && !defined(MODULE) +#if defined(__i386__) && !defined(MODULE) && !defined(CONFIG_UML) if (boot_cpu_data.x86 <= 4) np->crvalue = 0xa00; else |