diff -u6 kernel-source-2.2.20/drivers/net/tulip.c.orig kernel-source-2.2.20/drivers/net/tulip.c --- kernel-source-2.2.20/drivers/net/tulip.c.orig Fri Jul 4 17:58:17 2003 +++ kernel-source-2.2.20/drivers/net/tulip.c Sat Dec 6 23:41:30 2003 @@ -783,15 +783,15 @@ } for (i = 0; i < 6; i ++) { dev->dev_addr[i] = ee_data[i + sa_offset]; sum += ee_data[i + sa_offset]; } } - /* Lite-On boards have the address byte-swapped. */ - if ((dev->dev_addr[0] == 0xA0 || dev->dev_addr[0] == 0xC0) - && dev->dev_addr[1] == 0x00) + /* Lite-On boards have the mac address byte-swapped. */ + if ((dev->dev_addr[0] == 0x00 || dev->dev_addr[0] == 0xA0 || + dev->dev_addr[0] == 0xC0) && dev->dev_addr[1] == 0x00) for (i = 0; i < 6; i+=2) { char tmp = dev->dev_addr[i]; dev->dev_addr[i] = dev->dev_addr[i+1]; dev->dev_addr[i+1] = tmp; } /* On the Zynx 315 Etherarray and other multiport boards only the