1
linux/drivers/net
Shyam Iyer 5f77898de1 Fix call trace when interrupts are disabled while sleeping function kzalloc is called
request_threaded irq will call kzalloc that can sleep. Initializing the flags variable outside of spin_lock_irqsave/restore in bnad_mbox_irq_alloc will avoid call traces like below.

Jun 27 08:15:24 home-t710 kernel: [11735.634550] Brocade 10G Ethernet driver
Jun 27 08:15:24 home-t710 kernel: [11735.634590] bnad_pci_probe : (0xffff880427f3d000, 0xffffffffa020f3e0) PCI Func : (2)
Jun 27 08:15:24 home-t710 kernel: [11735.637677] bna 0000:82:00.2: PCI INT A -> GSI 66 (level, low) -> IRQ 66
Jun 27 08:15:24 home-t710 kernel: [11735.638290] bar0 mapped to ffffc90014980000, len 262144
Jun 27 08:15:24 home-t710 kernel: [11735.638732] BUG: sleeping function called from invalid context at mm/slub.c:847
Jun 27 08:15:24 home-t710 kernel: [11735.638736] in_atomic(): 0, irqs_disabled(): 1, pid: 11243, name: insmod
Jun 27 08:15:24 home-t710 kernel: [11735.638740] Pid: 11243, comm: insmod Not tainted 3.0.0-rc4+ #6
Jun 27 08:15:24 home-t710 kernel: [11735.638743] Call Trace:
Jun 27 08:15:24 home-t710 kernel: [11735.638755]  [<ffffffff81046427>] __might_sleep+0xeb/0xf0
Jun 27 08:15:24 home-t710 kernel: [11735.638766]  [<ffffffffa01fe469>] ? netif_wake_queue+0x3d/0x3d [bna]
Jun 27 08:15:24 home-t710 kernel: [11735.638773]  [<ffffffff8111201c>] kmem_cache_alloc_trace+0x43/0xd8
Jun 27 08:15:24 home-t710 kernel: [11735.638782]  [<ffffffffa01fe469>] ? netif_wake_queue+0x3d/0x3d [bna]
Jun 27 08:15:24 home-t710 kernel: [11735.638787]  [<ffffffff810ab791>] request_threaded_irq+0xa1/0x113
Jun 27 08:15:24 home-t710 kernel: [11735.638798]  [<ffffffffa020f0c0>] bnad_pci_probe+0x612/0x8e5 [bna]
Jun 27 08:15:24 home-t710 kernel: [11735.638807]  [<ffffffffa01fe469>] ? netif_wake_queue+0x3d/0x3d [bna]
Jun 27 08:15:24 home-t710 kernel: [11735.638816]  [<ffffffff81482ef4>] ? _raw_spin_unlock_irqrestore+0x17/0x19
Jun 27 08:15:24 home-t710 kernel: [11735.638822]  [<ffffffff8124d17a>] local_pci_probe+0x44/0x75
Jun 27 08:15:24 home-t710 kernel: [11735.638826]  [<ffffffff8124dc06>] pci_device_probe+0xd0/0xff
Jun 27 08:15:24 home-t710 kernel: [11735.638832]  [<ffffffff812ef8ab>] driver_probe_device+0x131/0x213
Jun 27 08:15:24 home-t710 kernel: [11735.638836]  [<ffffffff812ef9e7>] __driver_attach+0x5a/0x7e
Jun 27 08:15:24 home-t710 kernel: [11735.638840]  [<ffffffff812ef98d>] ? driver_probe_device+0x213/0x213
Jun 27 08:15:24 home-t710 kernel: [11735.638844]  [<ffffffff812ee933>] bus_for_each_dev+0x53/0x89
Jun 27 08:15:24 home-t710 kernel: [11735.638848]  [<ffffffff812ef48a>] driver_attach+0x1e/0x20
Jun 27 08:15:24 home-t710 kernel: [11735.638852]  [<ffffffff812ef0ae>] bus_add_driver+0xd1/0x224
Jun 27 08:15:24 home-t710 kernel: [11735.638858]  [<ffffffffa01b8000>] ? 0xffffffffa01b7fff
Jun 27 08:15:24 home-t710 kernel: [11735.638862]  [<ffffffff812efe57>] driver_register+0x98/0x105
Jun 27 08:15:24 home-t710 kernel: [11735.638866]  [<ffffffffa01b8000>] ? 0xffffffffa01b7fff
Jun 27 08:15:24 home-t710 kernel: [11735.638871]  [<ffffffff8124e4c9>] __pci_register_driver+0x56/0xc1
Jun 27 08:15:24 home-t710 kernel: [11735.638875]  [<ffffffffa01b8000>] ? 0xffffffffa01b7fff
Jun 27 08:15:24 home-t710 kernel: [11735.638884]  [<ffffffffa01b8040>] bnad_module_init+0x40/0x60 [bna]
Jun 27 08:15:24 home-t710 kernel: [11735.638892]  [<ffffffff81002099>] do_one_initcall+0x7f/0x136
Jun 27 08:15:24 home-t710 kernel: [11735.638899]  [<ffffffff8108608b>] sys_init_module+0x88/0x1d0
Jun 27 08:15:24 home-t710 kernel: [11735.638906]  [<ffffffff81489682>] system_call_fastpath+0x16/0x1b
Jun 27 08:15:24 home-t710 kernel: [11735.639642] bnad_pci_probe : (0xffff880427f3e000, 0xffffffffa020f3e0) PCI Func : (3)
Jun 27 08:15:24 home-t710 kernel: [11735.639665] bna 0000:82:00.3: PCI INT A -> GSI 66 (level, low) -> IRQ 66
Jun 27 08:15:24 home-t710 kernel: [11735.639735] bar0 mapped to ffffc90014400000, len 262144

Signed-off-by: Shyam Iyer <shyam_iyer@dell.com>
Acked-by: Rasesh Mody <rmody@brocade.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-07-01 17:49:45 -07:00
..
appletalk
arcnet
arm net: ep93xx_eth: fix DMA API violations 2011-06-11 16:25:16 -07:00
atl1c
atl1e
atlx
benet
bna Fix call trace when interrupts are disabled while sleeping function kzalloc is called 2011-07-01 17:49:45 -07:00
bnx2x net+crypto: Use vmalloc for zlib inflate buffers. 2011-06-29 05:48:41 -07:00
bonding netpoll: copy dev name of slaves to struct netpoll 2011-06-19 16:13:01 -07:00
caif Revert "tty: make receive_buf() return the amout of bytes received" 2011-06-04 06:33:24 +09:00
can net/can: activate bit-timing calculation and netlink based drivers by default 2011-06-29 05:58:42 -07:00
chelsio
cris
cxgb3 cxgb3: skb_record_rx_queue now records the queue index relative to the net_device. 2011-06-24 17:55:22 -07:00
cxgb4
cxgb4vf
e1000
e1000e
ehea
enic
fs_enet fs_enet: fix freescale FCC ethernet dp buffer alignment 2011-06-17 15:20:49 -04:00
hamradio 6pack,mkiss: fix lock inconsistency 2011-07-01 17:30:00 -07:00
ibm_newemac
igb igb: fix i350 SR-IOV failture 2011-06-07 14:22:57 -07:00
igbvf
irda Revert "tty: make receive_buf() return the amout of bytes received" 2011-06-04 06:33:24 +09:00
ixgb
ixgbe
ixgbevf
ixp2000
mlx4
myri10ge
netxen netxen: fix race in skb->len access 2011-06-20 13:04:12 -07:00
octeon
pch_gbe
pcmcia
phy dp83640: drop PHY status frames in the driver. 2011-06-16 23:48:12 -04:00
qlcnic qlcnic: Avoid double free of skb in tx path 2011-06-05 14:18:19 -07:00
qlge qlge:Version change to v1.00.00.29 2011-07-01 17:36:04 -07:00
sfc Merge git://git.infradead.org/mtd-2.6 2011-05-27 20:06:53 -07:00
skfp
stmmac
tile Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2011-05-25 15:35:32 -07:00
tokenring Revert "net: fix section mismatches" 2011-05-31 19:28:32 -07:00
tulip Revert "net: fix section mismatches" 2011-05-31 19:28:32 -07:00
usb usbnet: Remove over-broad module alias from zaurus. 2011-06-29 06:09:17 -07:00
vmxnet3
vxge
wan farsync: add module_put to error path in fst_open() 2011-06-17 15:27:32 -04:00
wimax
wireless Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into for-davem 2011-06-30 11:26:04 -04:00
xen-netback
3c59x.c Revert "net: fix section mismatches" 2011-05-31 19:28:32 -07:00
3c501.c
3c501.h
3c503.c 3c503: fix broken IRQ autoprobing 2011-06-13 18:25:19 -04:00
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c Revert "net: fix section mismatches" 2011-05-31 19:28:32 -07:00
3c515.c
3c523.c
3c523.h
3c527.c
3c527.h
7990.c
7990.h
8139cp.c
8139too.c
8390.c
8390.h
8390p.c
82596.c
a2065.c
a2065.h
ac3200.c
acenic.c
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
b44.c
b44.h
bcm63xx_enet.c
bcm63xx_enet.h
bfin_mac.c netdev: bfin_mac: fix memory leak when freeing dma descriptors 2011-06-17 00:19:09 -04:00
bfin_mac.h
bmac.c
bmac.h
bnx2_fw.h
bnx2.c
bnx2.h
bsd_comp.c
cassini.c
cassini.h
cnic_defs.h
cnic_if.h
cnic.c
cnic.h
cpmac.c
cs89x0.c
cs89x0.h
davinci_cpdma.c
davinci_cpdma.h
davinci_emac.c drivers/net/davinci_emac.c: add missing clk_put 2011-06-01 21:20:14 -07:00
davinci_mdio.c
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c
defxx.h
depca.c Revert "net: fix section mismatches" 2011-05-31 19:28:32 -07:00
depca.h
dl2k.c dl2k: EEPROM CRC calculation wrong endianess on bigendian machine 2011-06-11 16:02:00 -07:00
dl2k.h
dm9000.c net: dm9000: Get the chip in a known good state before enabling interrupts 2011-06-01 21:22:15 -07:00
dm9000.h
dnet.c
dnet.h
dummy.c
e100.c
e2100.c
eepro.c
eexpress.c
eexpress.h
enc28j60_hw.h
enc28j60.c
epic100.c
eql.c
es3210.c
eth16i.c
ethoc.c
ewrk3.c
ewrk3.h
fealnx.c
fec_mpc52xx_phy.c
fec_mpc52xx.c
fec_mpc52xx.h
fec.c
fec.h
forcedeth.c
fsl_pq_mdio.c
fsl_pq_mdio.h
ftmac100.c
ftmac100.h
gianfar_ethtool.c gianfar:localized filer table 2011-06-09 00:12:57 -07:00
gianfar_ptp.c
gianfar_sysfs.c
gianfar.c gianfar:localized filer table 2011-06-09 00:12:57 -07:00
gianfar.h gianfar:localized filer table 2011-06-09 00:12:57 -07:00
greth.c
greth.h
hamachi.c
hp100.c hp100: fix an skb->len race 2011-06-19 16:28:02 -07:00
hp100.h
hp-plus.c
hp.c
hplance.c net/hplance: hplance_init() should be __devinit 2011-06-13 18:32:36 -04:00
hplance.h
hydra.c
ibmlana.c Revert "net: fix section mismatches" 2011-05-31 19:28:32 -07:00
ibmlana.h
ibmveth.c
ibmveth.h
ifb.c
ioc3-eth.c arch, mm: filter disallowed nodes from arch specific show_mem functions 2011-05-25 08:39:03 -07:00
ipg.c
ipg.h
iseries_veth.c
jazzsonic.c
jme.c
jme.h
Kconfig netconsole: fix build when CONFIG_NETCONSOLE_DYNAMIC is turned on 2011-06-21 16:26:27 -07:00
korina.c
ks8842.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2011-06-04 23:16:00 +09:00
ks8851_mll.c
ks8851.c
ks8851.h
ksz884x.c
lance.c
lantiq_etop.c
lasi_82596.c
lib8390.c
lib82596.c
LICENSE.SRC
ll_temac_main.c
ll_temac_mdio.c
ll_temac.h
lne390.c
loopback.c
lp486e.c
mac89x0.c
mac8390.c
macb.c
macb.h
mace.c
mace.h
macmace.c
macsonic.c
macvlan.c
macvtap.c
Makefile
mdio.c
meth.c
meth.h
mii.c
mipsnet.c
mv643xx_eth.c
mvme147.c
myri_sbus.c
myri_sbus.h
natsemi.c
ne2.c
ne2k-pci.c
ne3210.c Revert "net: fix section mismatches" 2011-05-31 19:28:32 -07:00
ne-h8300.c
ne.c
netconsole.c
netx-eth.c
ni52.c
ni52.h
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c
niu.h
ns83820.c
pasemi_mac_ethtool.c
pasemi_mac.c
pasemi_mac.h
pci-skeleton.c
pcnet32.c
plip.c
ppp_async.c ppp: use PPP_TRANS instead of the magic number 0x20 2011-06-16 23:43:55 -04:00
ppp_deflate.c net+crypto: Use vmalloc for zlib inflate buffers. 2011-06-29 05:48:41 -07:00
ppp_generic.c
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c Revert "tty: make receive_buf() return the amout of bytes received" 2011-06-04 06:33:24 +09:00
pppoe.c
pppox.c
pptp.c
ps3_gelic_net.c
ps3_gelic_net.h
ps3_gelic_wireless.c
ps3_gelic_wireless.h
pxa168_eth.c pxa168_eth: fix race in transmit path. 2011-06-20 14:02:07 -07:00
qla3xxx.c
qla3xxx.h
r6040.c
r8169.c r8169: fix wrong register use. 2011-06-24 19:52:13 +02:00
rionet.c rionet: fix NULL pointer dereference in rionet_remove 2011-06-29 05:57:35 -07:00
rrunner.c
rrunner.h
s2io-regs.h
s2io.c
s2io.h
s6gmac.c
sb1000.c
sb1250-mac.c
sc92031.c
seeq8005.c
seeq8005.h
sgiseeq.c
sgiseeq.h
sh_eth.c
sh_eth.h
sis190.c
sis900.c
sis900.h
skge.c
skge.h
sky2.c
sky2.h
slhc.c
slip.c Revert "tty: make receive_buf() return the amout of bytes received" 2011-06-04 06:33:24 +09:00
slip.h
smc91x.c net: fix smc91x.c device tree support 2011-06-05 17:02:51 -07:00
smc91x.h
smc911x.c
smc911x.h
smc9194.c
smc9194.h
smc-mca.c Revert "net: fix section mismatches" 2011-05-31 19:28:32 -07:00
smc-ultra32.c
smc-ultra.c
smsc911x.c
smsc911x.h
smsc9420.c
smsc9420.h
sni_82596.c
sonic.c
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c
spider_net.h
starfire.c
stnic.c
sun3_82586.c
sun3_82586.h
sun3lance.c
sunbmac.c
sunbmac.h
sundance.c
sungem_phy.c
sungem_phy.h
sungem.c
sungem.h
sunhme.c
sunhme.h
sunlance.c
sunqe.c
sunqe.h
sunvnet.c
sunvnet.h
tc35815.c
tehuti.c
tehuti.h
tg3.c tg3: Fix tg3_skb_error_unmap() 2011-06-03 00:01:30 -07:00
tg3.h
tlan.c
tlan.h
tsi108_eth.c
tsi108_eth.h
tun.c tun: teach the tun/tap driver to support netpoll 2011-06-16 23:53:10 -04:00
typhoon.c
typhoon.h
ucc_geth_ethtool.c
ucc_geth.c
ucc_geth.h
veth.c
via-rhine.c
via-velocity.c
via-velocity.h via-velocity: don't annotate MAC registers as packed 2011-05-25 17:55:32 -04:00
virtio_net.c virtio_net: delay TX callbacks 2011-05-30 11:14:16 +09:30
wd.c
xen-netfront.c xen: netfront: hold RTNL when updating features. 2011-05-25 17:55:32 -04:00
xilinx_emaclite.c
xtsonic.c
yellowfin.c
znet.c
zorro8390.c