Sorry, same problem as before. It looks like the spinlocked write method 
   does not work on the BCM5701 chip :-(
I'm still not entirely convinced of this :-)
Backout all of your changes and try this patch instead:
--- drivers/net/tg3.c.~1~	Wed Aug  7 07:56:39 2002
+++ drivers/net/tg3.c	Wed Aug  7 07:57:08 2002
@@ -173,8 +173,18 @@
 	}
 }
 
+static void tg3_write_mailbox_reg32(struct tg3 *tp, u32 off, u32 val)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&tp->indirect_lock, flags);
+	pci_write_config_dword(tp->pdev, TG3PCI_REG_BASE_ADDR, off);
+	pci_write_config_dword(tp->pdev, TG3PCI_REG_DATA, val);
+	spin_unlock_irqrestore(&tp->indirect_lock, flags);
+}
+
 #define tw32(reg,val)		tg3_write_indirect_reg32(tp,(reg),(val))
-#define tw32_mailbox(reg, val)	writel(((val) & 0xffffffff), tp->regs + (reg))
+#define tw32_mailbox(reg, val)	tg3_write_mailbox_reg32(tp,(reg),(val))
 #define tw16(reg,val)		writew(((val) & 0xffff), tp->regs + (reg))
 #define tw8(reg,val)		writeb(((val) & 0xff), tp->regs + (reg))
 #define tr32(reg)		readl(tp->regs + (reg))
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/