
This fix was submitted to Marcelo several months ago,
but it has not made it into 2.4.21 (it's in 2.4.22-pre8).

Patch submitted by Stefano Fedrigo <aleph@develer.com>


--- linux-2.4.20-20.1.2013.nptl/drivers/net/cs89x0.c	2002-08-03 02:39:44.000000000 +0200
+++ linux-2.4.21-pre8/drivers/net/cs89x0.c	2003-07-28 02:35:38.000000000 +0200
@@ -1629,16 +1629,21 @@
 }
 
 
-static int set_mac_address(struct net_device *dev, void *addr)
+static int set_mac_address(struct net_device *dev, void *p)
 {
 	int i;
+	struct sockaddr *addr = p;
+
 
 	if (netif_running(dev))
 		return -EBUSY;
+
+	memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
+
 	if (net_debug) {
 		printk("%s: Setting MAC address to ", dev->name);
-		for (i = 0; i < 6; i++)
-			printk(" %2.2x", dev->dev_addr[i] = ((unsigned char *)addr)[i]);
+		for (i = 0; i < dev->addr_len; i++)
+			printk(" %2.2x", dev->dev_addr[i]);
 		printk(".\n");
 	}
 	/* set the Ethernet address */
