diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index b59837e80750bb351ee4be0d7b11c04c47b29b62..8b5d50927ebfe068b450d765fccc795679cd5b26 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -1153,8 +1153,10 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
 
 	/* Some bootloader/BIOSes do not initialize
 	 * MAC address, warn about that */
-	if (!(adrp[0] || adrp[1] || adrp[2]))
-		printk(KERN_WARNING DRV_NAME ": MAC address not initialized\n");
+	if (!(adrp[0] || adrp[1] || adrp[2])) {
+		printk(KERN_WARNING DRV_NAME ": MAC address not initialized, generating random\n");
+		random_ether_addr(dev->dev_addr);
+	}
 
 	/* Link new device into r6040_root_dev */
 	lp->pdev = pdev;