alistair23-linux/drivers/net/sfc
Ben Hutchings 747df2258b sfc: Always map MCDI shared memory as uncacheable
We enabled write-combining for memory-mapped registers in commit
65f0b417de, but inhibited it for the
MCDI shared memory where this is not supported.  However,
write-combining mappings also allow read-reordering, which may also
be a problem.

I found that when an SFC9000-family controller is connected to an
Intel 3000 chipset, and write-combining is enabled, the controller
stops responding to PCIe read requests during driver initialisation
while the driver is polling for completion of an MCDI command.  This
results in an NMI and system hang.  Adding read memory barriers
between all reads to the shared memory area appears to reduce but not
eliminate the probability of this.

We have not yet established whether this is a bug in our BIU or in the
PCIe bridge.  For now, work around by mapping the shared memory area
separately.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
2011-05-12 15:16:32 +01:00
..
bitfield.h sfc: Update version, copyright dates, authors 2009-11-29 17:23:58 -08:00
efx.c sfc: Do not use efx_process_channel_now() in online self-test 2011-04-12 16:37:54 +01:00
efx.h sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
enum.h sfc: Update version, copyright dates, authors 2009-11-29 17:23:58 -08:00
ethtool.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2011-03-03 21:27:42 -08:00
falcon.c Fix common misspellings 2011-03-31 11:26:23 -03:00
falcon_boards.c sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
falcon_xmac.c sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
filter.c sfc: Implement hardware acceleration of RFS 2011-02-17 21:00:33 +00:00
filter.h sfc: Generalise filter spec initialisation 2010-12-07 19:11:26 +00:00
io.h sfc: Use rmb() to ensure reads occur in order 2011-04-12 23:52:44 +01:00
Kconfig sfc: Add support for SFC9000 family (2) 2009-11-29 17:23:57 -08:00
mac.h sfc: make functions static 2010-10-21 03:09:43 -07:00
Makefile sfc: Add support for SFE4003 board and TXC43128 PHY 2010-09-22 13:26:45 -07:00
mcdi.c sfc: Always map MCDI shared memory as uncacheable 2011-05-12 15:16:32 +01:00
mcdi.h sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
mcdi_mac.c sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
mcdi_pcol.h Fix common misspellings 2011-03-31 11:26:23 -03:00
mcdi_phy.c Fix common misspellings 2011-03-31 11:26:23 -03:00
mdio_10g.c sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
mdio_10g.h sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
mtd.c sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
net_driver.h sfc: Do not use efx_process_channel_now() in online self-test 2011-04-12 16:37:54 +01:00
nic.c sfc: Do not use efx_process_channel_now() in online self-test 2011-04-12 16:37:54 +01:00
nic.h sfc: Always map MCDI shared memory as uncacheable 2011-05-12 15:16:32 +01:00
phy.h sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
qt202x_phy.c sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
regs.h sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
rx.c sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
selftest.c sfc: Do not use efx_process_channel_now() in online self-test 2011-04-12 16:37:54 +01:00
selftest.h sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
siena.c sfc: Always map MCDI shared memory as uncacheable 2011-05-12 15:16:32 +01:00
spi.h sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
tenxpress.c sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
tx.c sfc: Stop the TX queues during loopback self-tests 2011-04-12 16:20:25 +01:00
txc43128_phy.c sfc: Update copyright dates 2011-02-28 23:57:24 +00:00
workarounds.h sfc: Siena: Disable write-combining when SR-IOV is enabled 2011-03-23 01:35:15 +00:00