[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <45494515.8050304@sgi.com>
Date: Wed, 01 Nov 2006 19:08:37 -0600
From: John Partridge <johnip@....com>
To: David Miller <davem@...emloft.net>
CC: rdreier@...co.com, matthew@....cx, jmodem@...minableFirebug.com,
mst@...lanox.co.il, linux-kernel@...r.kernel.org,
linux-ia64@...r.kernel.org, jeff@...zik.org,
openib-general@...nib.org, linux-pci@...ey.karlin.mff.cuni.cz
Subject: Re: Ordering between PCI config space writes and MMIO reads?
David Miller wrote:
> From: John Partridge <johnip@....com>
> Date: Wed, 01 Nov 2006 10:27:19 -0600
>
>
>>Sorry, but I find this change a bit puzzling. The problem is
>>particular to the PPB on the HCA and not Altix. I can't see anywhere
>>that a PCI Config Write is required to block until completion, it is
>>the driver and the HCA ,not the Altix hardware that requires the
>>Config Write to have completed before we leave mthca_reset()
>>Changing pci_write_config_xxx() will change the behavior for ALL
>>drivers and the possibility of breaking something else. The fix was
>>very low risk in mthca_reset(), changing the PCI code to fix this is
>>much more onerous.
>
>
> The issue is that something as simple as:
>
> val = pci_read_config(REG);
> val |= bit;
> pci_write_config(REG, val);
> newval = pci_read_config(REG);
> BUG_ON(!(newval & bit));
>
> is not guarenteed by PCI (aparently).
>
> I see no valid reason why every PCI device driver should
> be troubled with this lunacy and the ordering should thus
> be ensured by the PCI layer.
>
> It just so happens to take care of the original driver
> issue too :-)
Yeah, Matthew has convinced me of that now.
Thanks
--
John Partridge
Silicon Graphics Inc
Tel: 651-683-3428
Vnet: 233-3428
E-Mail: johnip@....com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists