linux/drivers/net/ethernet
Yevgeny Petrilin 730c41d5ba mlx4: Replacing pool_lock with mutex
Under the spinlock we call request_irq(), which allocates memory with GFP_KERNEL,
This causes the following trace when DEBUG_SPINLOCK is enabled, it can cause
the following trace:

 BUG: spinlock wrong CPU on CPU#2, ethtool/2595
 lock: ffff8801f9cbc2b0, .magic: dead4ead, .owner: ethtool/2595, .owner_cpu: 0
 Pid: 2595, comm: ethtool Not tainted 3.0.18 #2
 Call Trace:
 spin_bug+0xa2/0xf0
 do_raw_spin_unlock+0x71/0xa0
 _raw_spin_unlock+0xe/0x10
 mlx4_assign_eq+0x12b/0x190 [mlx4_core]
 mlx4_en_activate_cq+0x252/0x2d0 [mlx4_en]
 ? mlx4_en_activate_rx_rings+0x227/0x370 [mlx4_en]
 mlx4_en_start_port+0x189/0xb90 [mlx4_en]
 mlx4_en_set_ringparam+0x29a/0x340 [mlx4_en]
 dev_ethtool+0x816/0xb10
 ? dev_get_by_name_rcu+0xa4/0xe0
 dev_ioctl+0x2b5/0x470
 handle_mm_fault+0x1cd/0x2d0
 sock_do_ioctl+0x5d/0x70
 sock_ioctl+0x79/0x2f0
 do_vfs_ioctl+0x8c/0x340
 sys_ioctl+0xa1/0xb0
 system_call_fastpath+0x16/0x1b

Replacing with mutex, which is enough in this case.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-02-21 15:27:23 -05:00
..
3com 3c59x: shorten timer period for slave devices 2012-02-14 16:28:23 -05:00
8390 ax88796: use an unique MDIO bus name. 2012-01-10 16:35:00 -08:00
adaptec net: make vlan ndo_vlan_rx_[add/kill]_vid return error value 2011-12-08 19:52:37 -05:00
adi bfin_mac: use an unique MDIO bus name. 2012-01-10 16:35:00 -08:00
aeroflex net/ethernet: convert drivers/net/ethernet/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
alteon
amd au1000-eth: use an unique MDIO bus name. 2012-01-10 16:35:00 -08:00
apple
atheros atl1c: dont use highprio tx queue 2012-02-19 18:57:50 -05:00
broadcom b44: remove __exit from b44_pci_exit() 2012-02-19 18:57:51 -05:00
brocade bna: fix error handling of bnad_get_flash_partition_by_offset() 2012-02-09 15:43:30 -05:00
cadence macb: use an unique MDIO bus name. 2012-01-10 16:35:00 -08:00
calxeda xgmac: cleanups 2012-01-05 13:23:00 -05:00
chelsio Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
cirrus
cisco enic: fix compile when CONFIG_PCI_IOV is not enabled 2012-01-20 13:39:20 -05:00
davicom Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-02 13:49:21 -05:00
dec net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
dlink module_param: make bool parameters really bool (net & drivers/net) 2011-12-19 22:27:29 -05:00
emulex ethtool: Null-terminate filename passed to ethtool_ops::flash_device 2012-02-01 14:47:17 -05:00
faraday net: ftgmac100/ftmac100: add missing interrupt.h include 2012-01-18 21:01:11 -05:00
freescale fec: fix PHY name to match fixed MDIO bus name 2012-02-13 16:04:09 -05:00
fujitsu
hp
i825xx
ibm ehea: make some functions and variables static 2012-01-17 10:04:43 -05:00
icplus icplus: mdio_write(), remove unnecessary for loop 2011-12-01 12:54:46 -05:00
intel ixgbe: ethtool: stats user buffer overrun 2012-02-09 01:27:47 -08:00
marvell Revert "skge: check for PCI dma mapping errors" 2012-02-07 12:51:10 -05:00
mellanox mlx4: Replacing pool_lock with mutex 2012-02-21 15:27:23 -05:00
micrel net/ethernet: ks8851_mll: signedness bug in ks8851_probe() 2012-02-19 18:57:51 -05:00
microchip
myricom myri10ge: Fix typo of 'VMware' in comment. 2011-12-19 15:44:43 -05:00
natsemi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2012-01-06 18:28:12 -08:00
neterion net: make vlan ndo_vlan_rx_[add/kill]_vid return error value 2011-12-08 19:52:37 -05:00
nuvoton net/ethernet: convert drivers/net/ethernet/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
nvidia forcedeath: Fix bql support for forcedeath 2011-12-02 12:39:12 -05:00
octeon octeon: fix PHY name to match MDIO bus name 2012-02-13 16:04:09 -05:00
oki-semi pch_gbe: Do not abort probe on bad MAC 2012-01-18 16:41:36 -05:00
packetengines
pasemi pasemi_mac: Fix building as module 2011-12-06 00:48:59 -05:00
qlogic net: make vlan ndo_vlan_rx_[add/kill]_vid return error value 2011-12-08 19:52:37 -05:00
racal
rdc r6040: fix typo in use of MCR0 register bits 2012-01-07 12:09:36 -08:00
realtek 8139cp: fix missing napi_gro_flush. 2012-01-08 19:20:33 -08:00
renesas net: sh_eth: fix skb_over_panic happen 2012-02-07 13:37:30 -05:00
seeq net/ethernet: convert drivers/net/ethernet/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
sfc sfc: Remove now-unused filter function 2012-01-04 14:10:23 -05:00
sgi net: meth: Add set_rx_mode hook to fix ICMPv6 neighbor discovery 2011-12-27 13:17:34 -05:00
silan
sis Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
smsc smsc911x: use an unique MDIO bus name. 2012-01-10 16:35:01 -08:00
stmicro stmmac: update the driver version to Feb 2012 (v2) 2012-02-15 14:52:10 -05:00
sun sunhme/PCI: use list_for_each_entry() for bus->devices traversal 2011-12-19 16:13:36 -05:00
tehuti net: make vlan ndo_vlan_rx_[add/kill]_vid return error value 2011-12-08 19:52:37 -05:00
ti cpmac: fix PHY name to match MDIO bus name 2012-02-13 16:04:08 -05:00
tile netdev: make net_device_ops const 2012-01-09 14:05:23 -08:00
toshiba net: enable TC35815 for MIPS again 2012-02-07 13:40:44 -05:00
tundra drivers/net/ethernet/tundra/tsi108_eth.c: add missing iounmap 2012-01-12 20:05:28 -08:00
via via-velocity: S3 resume fix. 2012-02-05 17:47:09 -05:00
xilinx net: ethernet: xilinx: Don't use NO_IRQ in xilinx 2011-12-21 15:42:50 -05:00
xircom
xscale ixp4xx-eth: fix PHY name to match MDIO bus name 2012-02-13 16:04:09 -05:00
dnet.c dnet: use an unique MDIO bus name. 2012-01-10 16:35:00 -08:00
dnet.h
ethoc.c net/ethernet: convert drivers/net/ethernet/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
fealnx.c
jme.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-02 13:49:21 -05:00
jme.h jme: PHY configuration for compatible issue 2011-11-27 19:21:09 -05:00
Kconfig net: add calxeda xgmac ethernet driver 2011-11-29 01:15:24 -05:00
korina.c net/ethernet: convert drivers/net/ethernet/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
lantiq_etop.c lantiq_etop: use an unique MDIO bus name. 2012-01-10 16:35:00 -08:00
Makefile Driver specific changes 2012-01-09 14:39:22 -08:00
mipsnet.c
netx-eth.c
s6gmac.c s6gmac: use an unique MDIO bus name. 2012-01-10 16:35:01 -08:00