Messages in this thread Patch in this message | | | Date | Wed, 07 Aug 2002 07:48:38 -0700 (PDT) | Subject | Re: kernel BUG at tg3.c:1557 | From | "David S. Miller" <> |
| |
From: Roland Kuhn <rkuhn@e18.physik.tu-muenchen.de> Date: Wed, 7 Aug 2002 16:49:24 +0200 (CEST)
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/
| |