linux/drivers/net
Emmanuel Grumbach 25a172655f iwlwifi: don't handle masked interrupt
This can lead to a panic if the driver isn't ready to
handle them. Since our interrupt line is shared, we can get
an interrupt at any time (and CONFIG_DEBUG_SHIRQ checks
that even when the interrupt is being freed).

If the op_mode has gone away, we musn't call it. To avoid
this the transport disables the interrupts when the hw is
stopped and the op_mode is leaving.
If there is an event that would cause an interrupt the INTA
register is updated regardless of the enablement of the
interrupts: even if the interrupts are disabled, the INTA
will be changed, but the device won't issue an interrupt.
But the ISR can be called at any time, so we ought ignore
the value in the INTA otherwise we can call the op_mode
after it was freed.

I found this bug when the op_mode_start failed, and called
iwl_trans_stop_hw(trans, true). Then I played with the
RFKILL button, and removed the module.
While removing the module, the IRQ is freed, and the ISR is
called (CONFIG_DEBUG_SHIRQ enabled). Panic.

Cc: stable@vger.kernel.org
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2012-12-10 22:40:09 +01:00
..
appletalk net: Use PTR_RET rather than if(IS_ERR(.. [1] 2012-08-06 13:30:02 -07:00
arcnet
bonding bonding: set qdisc_tx_busylock to avoid LOCKDEP splat 2012-10-04 15:53:48 -04:00
caif caif: fix NULL pointer check 2012-07-24 13:54:16 -07:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-10-06 03:11:59 +09:00
cris cris: fix eth_v10.c build error 2012-08-03 20:32:31 -07:00
dsa
ethernet net/ethernet/jme: disable ASPM 2012-10-11 15:18:49 -04:00
fddi fddi: 64 bit bug in smt_add_para() 2012-09-01 22:44:13 -04:00
hamradio sections: fix section conflicts in drivers/net/hamradio 2012-10-06 03:04:43 +09:00
hippi
hyperv hyperv: Add buffer for extended info after the RNDIS response message. 2012-10-02 14:39:31 -04:00
ieee802154 workqueue: avoid using deprecated functions 2012-10-02 16:01:31 -07:00
irda drivers/net/irda/sh_sir.c: fix error return code 2012-10-07 14:37:11 -04:00
phy netdev/phy: Prototype of_mdio_find_bus() 2012-10-09 13:54:59 -04:00
plip
ppp Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-09-28 14:40:49 -04:00
slip
team team: set qdisc_tx_busylock to avoid LOCKDEP splat 2012-10-04 15:53:48 -04:00
usb mcs7830: Fix link state detection 2012-10-12 13:56:52 -04:00
vmxnet3 vmxnet3: Fix race between dev_open() and register_netdev() 2012-08-15 15:10:42 -07:00
wan farsync: fix support for over 30 cards 2012-10-09 13:54:59 -04:00
wimax wimax/i2400m: use is_zero_ether_addr() instead of memcmp() 2012-08-24 13:30:26 -04:00
wireless iwlwifi: don't handle masked interrupt 2012-12-10 22:40:09 +01:00
xen-netback xen: netback: handle compound page fragments on transmit. 2012-10-10 22:50:45 -04:00
dummy.c net: fix race condition in several drivers when reading stats 2012-07-22 12:12:32 -07:00
eql.c
ifb.c
Kconfig vxlan: Depend on CONFIG_INET 2012-10-02 14:37:31 -04:00
LICENSE.SRC
loopback.c net: loopback: set default mtu to 64K 2012-09-24 16:23:53 -04:00
macvlan.c netlink: add attributes to fdb interface 2012-10-01 18:39:44 -04:00
macvtap.c macvtap: rcu_dereference outside read-lock section 2012-08-12 13:40:48 -07:00
Makefile vxlan: virtual extensible lan 2012-10-01 18:39:45 -04:00
mdio.c
mii.c
netconsole.c netconsole: remove a redundant netconsole_target_put() 2012-08-20 02:59:49 -07:00
rionet.c rapidio/rionet: rework to support multiple RIO master ports 2012-10-06 03:05:23 +09:00
sb1000.c
Space.c
sungem_phy.c
tun.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2012-10-02 11:11:09 -07:00
veth.c veth: Allow to create peer link with given ifindex 2012-08-09 16:18:07 -07:00
virtio_net.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-10-02 13:38:27 -07:00
vxlan.c vxlan: fix oops when give unknown ifindex 2012-10-10 22:41:22 -04:00
xen-netfront.c Features: 2012-10-07 07:13:01 +09:00