]> err.no Git - linux-2.6/commitdiff
[PATCH] pcnet32: use MAC address from prom also on powerpc
authorOlaf Hering <olh@suse.de>
Fri, 9 Dec 2005 18:12:10 +0000 (19:12 +0100)
committerJeff Garzik <jgarzik@pobox.com>
Mon, 12 Dec 2005 20:30:38 +0000 (15:30 -0500)
The CSR contains garbage after a coldboot on RS/6000.
One some systems (like my 44p 270) the MAC address is all FF,
on others (like my B50) it is ff:ff:ff:fd:ff:6b.

It can eventually be fixed by loading pcnet32, set the interface
into the UP state, rmmod pcnet32 and load it again. But this worked
only on the 270.

Only netbooting after a cold start provides the correct MAC address
via prom and CSR. This makes it very unreliable.
I dont know why the MAC is stored in two different places. Remove
the special case for powerpc, which was added in early 2.4 development.

Signed-off-by: Olaf Hering <olh@suse.de>
 drivers/net/pcnet32.c |    5 -----
 1 files changed, 5 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/net/pcnet32.c

index be319229f5436be46642fb782ebfc7b056f22675..8f6cf8c896a484bdd837a5ec9c894863297b2d2d 100644 (file)
@@ -1251,12 +1251,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
 
     if (memcmp(promaddr, dev->dev_addr, 6)
        || !is_valid_ether_addr(dev->dev_addr)) {
-#ifndef __powerpc__
        if (is_valid_ether_addr(promaddr)) {
-#else
-       if (!is_valid_ether_addr(dev->dev_addr)
-           && is_valid_ether_addr(promaddr)) {
-#endif
            if (pcnet32_debug & NETIF_MSG_PROBE) {
                printk(" warning: CSR address invalid,\n");
                printk(KERN_INFO "    using instead PROM address of");