android_kernel_xiaomi_sm8350/drivers/net
Roland Dreier 2e61c646ed mlx4_core: Use mmiowb() to avoid firmware commands getting jumbled up
Firmware commands are sent to the HCA by writing multiple words to a
command register block.  Access to this block of registers is
serialized with a mutex.  However, on large SGI systems writes to the
register block may be reordered within the system interconnect and
reach the HCA in a different order than they were issued (even with
the mutex).  Fix this by adding an mmiowb() before dropping the mutex.

This bug was observed with real workloads with the similar FW command
code in the mthca driver, and adding the mmiowb() as in commit
66547550 ("IB/mthca: Use mmiowb() to avoid firmware commands getting
jumbled up") was confirmed to fix the problems, so we should add the
same fix to mlx4.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
2007-10-09 19:59:18 -07:00
..
appletalk
arcnet
arm
atl1 atl1: disable broken 64-bit DMA 2007-09-12 23:54:50 -04:00
bonding [NET]: Share correct feature code between bridging and bonding 2007-08-13 22:52:14 -07:00
chelsio
cris
cxgb3 - cxgb3 engine microcode load 2007-08-31 07:29:08 -04:00
e1000 e1000: Add device IDs of blade version of the 82571 quad port 2007-09-27 23:38:35 -04:00
ehea ehea: fix last_rx update 2007-09-13 00:13:51 -04:00
fec_8xx
fs_enet
hamradio bpqether: fix rcu usage 2007-07-31 15:39:40 -07:00
ibm_emac
irda [IRDA]: Do not do pointless kmalloc return value cast in KingSun driver 2007-08-26 18:35:44 -07:00
ixgb [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
ixp2000
mlx4 mlx4_core: Use mmiowb() to avoid firmware commands getting jumbled up 2007-10-09 19:59:18 -07:00
myri10ge myri10ge: Add support for PCI device id 9 2007-09-19 16:22:09 -04:00
netxen netxen: fix crashes during module unload 2007-08-31 06:52:57 -04:00
pcmcia Revert "drivers/net/pcmcia/3c589_cs: fix port configuration switcheroo" 2007-09-25 00:11:34 -04:00
phy phy: export phy_mii_ioctl 2007-09-20 02:35:50 -04:00
sk98lin sk98lin: resurrect driver 2007-09-15 19:35:14 -04:00
skfp Typo fixes errror -> error 2007-07-31 15:39:42 -07:00
tokenring
tulip DDB5477: remove driver bits of support 2007-07-31 15:39:38 -07:00
usb dm9601: Fix receive MTU 2007-10-02 12:59:10 -04:00
wan [WAN] drivers/net/wan/hdlc_fr.c: kmalloc + memset conversion to kzalloc 2007-08-13 22:52:11 -07:00
wireless [PATCH] bcm43xx: Correct printk with PFX before KERN_ 2007-10-02 17:04:22 -04:00
3c59x.c 3c59x: fix duplex configuration 2007-08-14 01:38:37 -04:00
3c501.c
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c
3c515.c
3c523.c
3c523.h
3c527.c
3c527.h
7990.c
7990.h
8139cp.c [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
8139too.c [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
8390.c
8390.h
82596.c netdev: i82596 Ethernet needs <asm/cacheflush.h> 2007-07-24 16:28:42 -04:00
a2065.c
a2065.h
ac3200.c
acenic_firmware.h
acenic.c drivers/net/acenic.c: fix check-after-use 2007-07-24 16:28:41 -04:00
acenic.h
amd8111e.c
amd8111e.h
apne.c
ariadne.c
ariadne.h
at1700.c
atarilance.c
atp.c
atp.h
au1000_eth.c
au1000_eth.h
ax88796.c ax88796 printk fixes 2007-08-14 01:34:53 -04:00
b44.c [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
b44.h
bfin_mac.c Blackfin Ethernet MAC driver: fix bug Report returned -ENOMEM upwards (in case L1/uncached memory alloc fails) 2007-07-25 14:09:54 +08:00
bfin_mac.h
bmac.c
bmac.h
bnx2_fw2.h
bnx2_fw.h
bnx2.c [BNX2]: Add PHY workaround for 5709 A1. 2007-09-20 12:14:21 -07:00
bnx2.h
bsd_comp.c [NET]: Avoid pointless allocation casts in BSD compression module 2007-08-26 18:35:45 -07:00
cassini.c
cassini.h
cs89x0.c
cs89x0.h
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c defxx: Use __maybe_unused rather than a local hack 2007-07-24 16:28:41 -04:00
defxx.h
depca.c
depca.h
dgrs_asstruct.h
dgrs_bcomm.h
dgrs_es4h.h
dgrs_ether.h
dgrs_firmware.c
dgrs_i82596.h
dgrs_plx9060.h
dgrs.c
dgrs.h
dl2k.c
dl2k.h
dm9000.c DM9000: fix interface hang under load 2007-08-25 02:31:04 -04:00
dm9000.h
dummy.c
e100.c [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
e2100.c
eepro100.c
eepro.c
eexpress.c
eexpress.h
epic100.c
eql.c [EQL]: sparse warning fix 2007-08-26 18:35:38 -07:00
es3210.c
eth16i.c
ewrk3.c
ewrk3.h
fealnx.c
fec.c setup and detect 2nd phy on MCF5275 in FEC driver 2007-07-30 10:52:09 -07:00
fec.h
forcedeth.c fix realtek phy id in forcedeth 2007-08-25 02:30:57 -04:00
gianfar_ethtool.c
gianfar_mii.c gfar: Fix modpost warning 2007-07-30 15:48:16 -04:00
gianfar_mii.h gfar: Fix modpost warning 2007-07-30 15:48:16 -04:00
gianfar_sysfs.c
gianfar.c
gianfar.h
hamachi.c
hp100.c
hp100.h
hp-plus.c
hp.c
hplance.c
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c drivers/net/ibmveth.c: memset fix 2007-08-07 17:36:20 -04:00
ibmveth.h ibmveth: Fix rx pool deactivate oops 2007-08-07 17:34:13 -04:00
ifb.c
ioc3-eth.c IOC3: Program UART predividers. 2007-08-31 06:52:57 -04:00
isa-skeleton.c
iseries_veth.c
jazzsonic.c
Kconfig sk98lin: resurrect driver 2007-09-15 19:35:14 -04:00
lance.c
lasi_82596.c
lguest_net.c lguest: documentation VII: FIXMEs 2007-07-26 11:35:17 -07:00
lib8390.c lib8390: comment on locking by Alan Cox 2007-07-30 15:47:20 -04:00
lib82596.c
LICENSE.SRC
lne390.c
loopback.c [NET] loopback: Panic if registration fails 2007-07-31 02:28:14 -07:00
lp486e.c
mac89x0.c
mac8390.c
macb.c
macb.h
mace.c
mace.h
macmace.c
macsonic.c
macvlan.c
Makefile sk98lin: resurrect driver 2007-09-15 19:35:14 -04:00
meth.c Don't use GFP_DMA for zone allocation. 2007-08-25 02:30:59 -04:00
meth.h
mii.c
mipsnet.c
mipsnet.h
mv643xx_eth.c mv643xx_eth: Do not modify struct netdev tx_queue_len 2007-10-02 12:55:10 -04:00
mv643xx_eth.h mv643xx_eth: Check ETH_INT_CAUSE_STATE bit 2007-09-29 00:46:30 -04:00
mvme147.c
myri_code.h
myri_sbus.c
myri_sbus.h
natsemi.c natsemi: fix netdev error acounting 2007-08-14 01:36:39 -04:00
ne2.c
ne2k-pci.c [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
ne3210.c
ne-h8300.c
ne.c
netconsole.c
netx-eth.c
ni52.c
ni52.h
ni65.c
ni65.h
ni5010.c
ni5010.h
ns83820.c
pasemi_mac.c
pasemi_mac.h
pci-skeleton.c
pcnet32.c [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
plip.c
ppp_async.c
ppp_deflate.c
ppp_generic.c [PPP] generic: Fix receive path data clobbering & non-linear handling 2007-09-16 16:22:13 -07:00
ppp_mppe.c [PPP_MPPE]: Don't put InterimKey on the stack 2007-09-25 23:05:39 -07:00
ppp_mppe.h
ppp_synctty.c
pppoe.c [PPP] pppoe: Fix double-free on skb after transmit failure 2007-09-20 12:14:16 -07:00
pppol2tp.c [PPP] L2TP: Fix skb handling in pppol2tp_xmit 2007-09-20 12:14:18 -07:00
pppox.c [PPPoX/E]: return ENOTTY on unknown ioctl requests 2007-07-31 02:28:22 -07:00
ps3_gelic_net.c PS3: fix the bug that 'ifconfig down' would hang 2007-08-31 06:52:57 -04:00
ps3_gelic_net.h ps3: reduce allocation size of rx skb buffers 2007-07-24 16:28:41 -04:00
qla3xxx.c qla3xxx: bugfix: Fix VLAN rx completion handling. 2007-10-02 12:55:10 -04:00
qla3xxx.h
r8169.c r8169: revert part of 6dccd16b7c 2007-10-05 14:05:48 -04:00
rionet.c
rrunner.c
rrunner.h
s2io-regs.h S2io: Mask spurious interrupts 2007-07-30 15:56:04 -04:00
s2io.c fix s2io regression 2007-08-03 15:10:44 -07:00
s2io.h S2IO: Checking for the return value of pci map function 2007-07-30 15:56:04 -04:00
saa9730.c
saa9730.h
sb1000.c
sb1250-mac.c
sc92031.c [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
seeq8005.c
seeq8005.h
sgiseeq.c sgiseeq: Fix return type of sgiseeq_remove 2007-08-25 02:31:13 -04:00
sgiseeq.h
shaper.c
sis190.c sis190 check for ISA bridge on SiS966 2007-08-07 17:18:32 -04:00
sis900.c
sis900.h
skge.c [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
skge.h
sky2.c sky2: jumbo frame regression fix 2007-10-03 13:39:42 -04:00
sky2.h sky2: be more selective about FIFO watchdog 2007-09-25 00:04:17 -04:00
slhc.c
slip.c [SLIP]: trivial sparse warning fix 2007-08-26 18:35:39 -07:00
slip.h
smc91x.c
smc91x.h net: smc91x: Build fixes for general sh boards. 2007-08-07 17:18:31 -04:00
smc911x.c
smc911x.h
smc9194.c
smc9194.h
smc-mca.c
smc-ultra32.c
smc-ultra.c
sni_82596.c
sonic.c
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c spidernet: fix interrupt reason recognition 2007-09-13 00:16:31 -04:00
spider_net.h
starfire_firmware.h
starfire_firmware.pl
starfire.c
stnic.c
sun3_82586.c
sun3_82586.h
sun3lance.c
sunbmac.c
sunbmac.h
sundance.c [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
sungem_phy.c
sungem_phy.h
sungem.c
sungem.h
sunhme.c
sunhme.h
sunlance.c [SUNLANCE]: Fix sparc32 crashes by using of_*() interfaces. 2007-07-30 18:23:39 -07:00
sunqe.c
sunqe.h
sunvnet.c [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
sunvnet.h
tc35815.c [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
tg3.c [TG3]: Workaround MSI bug on 5714/5780. 2007-09-11 10:28:44 +02:00
tg3.h
tlan.c
tlan.h
tsi108_eth.c
tsi108_eth.h
tun.c
typhoon-firmware.h
typhoon.c
typhoon.h
ucc_geth_ethtool.c ucc_geth: remove get_perm_addr from ucc_geth_ethtool.c 2007-08-03 16:08:15 +08:00
ucc_geth_mii.c ucc_geth: fix section mismatch 2007-08-03 16:07:58 +08:00
ucc_geth_mii.h
ucc_geth.c ucc_geth: fix compilation 2007-09-15 19:32:01 -04:00
ucc_geth.h ucc_geth: add ethtool support 2007-07-24 16:28:38 -04:00
via-rhine.c via-rhine: disable rx_copybreak on archs that don't allow unaligned DMA access 2007-08-14 01:27:10 -04:00
via-velocity.c in-string typos of "error" 2007-07-31 15:39:40 -07:00
via-velocity.h
wd.c
xen-netfront.c xen-netfront: Avoid deref'ing skbafter it is potentially freed. 2007-08-14 01:51:09 -04:00
yellowfin.c
znet.c
zorro8390.c