if ((tp->tg3_flags & TG3_FLAG_PCIX_TARGET_HWBUG) != 0) { spin_lock_bh(&tp->indirect_lock); pci_write_config_dword(tp->pdev, TG3PCI_REG_BASE_ADDR, off); pci_write_config_dword(tp->pdev, TG3PCI_REG_DATA, val); spin_unlock_bh(&tp->indirect_lock); } else { void __iomem *dest = tp->regs + off; writel(val, dest); readl(dest);    /* always flush PCI write */ } 
tp->write32(tp, off, val); if (!(tp->tg3_flags & TG3_FLAG_PCIX_TARGET_HWBUG) && !(tp->tg3_flags & TG3_FLAG_5701_REG_WRITE_BUG) && !(tp->tg3_flags2 & TG3_FLG2_ICH_WORKAROUND)) tp->read32(tp, off);	/* flush */ 
static void _tw32_flush(struct tg3 *tp, u32 off, u32 val){	if ((tp->tg3_flags & TG3_FLAG_PCIX_TARGET_HWBUG) != 0) {		spin_lock_bh(&tp->indirect_lock);		pci_write_config_dword(tp->pdev, TG3PCI_REG_BASE_ADDR, off);		pci_write_config_dword(tp->pdev, TG3PCI_REG_DATA, val);		spin_unlock_bh(&tp->indirect_lock);	} else {		void __iomem *dest = tp->regs + off;		writel(val, dest);		readl(dest);    /* always flush PCI write */	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/6892914fb7980d844f2bac859f4095df9ebd18da/tg3.c/buggy/drivers/net/tg3.c