summaryrefslogtreecommitdiff
path: root/include/net/netns/sctp.h
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2017-02-02 10:14:52 +0100
committerKalle Valo <kvalo@qca.qualcomm.com>2017-02-07 11:00:25 +0200
commit3a5e969bb2f6692a256352649355d56d018d6b88 (patch)
tree51dc21b1b0ddc1ee2236c819fcd7194dbf70a94f /include/net/netns/sctp.h
parenta34d0a0da1abae46a5f6ebd06fb0ec484ca099d9 (diff)
ath9k: fix race condition in enabling/disabling IRQs
The code currently relies on refcounting to disable IRQs from within the IRQ handler and re-enabling them again after the tasklet has run. However, due to race conditions sometimes the IRQ handler might be called twice, or the tasklet may not run at all (if interrupted in the middle of a reset). This can cause nasty imbalances in the irq-disable refcount which will get the driver permanently stuck until the entire radio has been stopped and started again (ath_reset will not recover from this). Instead of using this fragile logic, change the code to ensure that running the irq handler during tasklet processing is safe, and leave the refcount untouched. Cc: stable@vger.kernel.org Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'include/net/netns/sctp.h')
0 files changed, 0 insertions, 0 deletions
es. [ Reported it originally to the i915 developers on Jan 8, applying the ugly workaround on my own now after triggering the problem for the second time with no feedback. This is likely to be the same bug reported as https://bugs.freedesktop.org/show_bug.cgi?id=98829 https://bugs.freedesktop.org/show_bug.cgi?id=99134 which has a patch for the underlying problem, but it hasn't gotten to me, so I'm applying the workaround. ] Cc: Daniel Vetter <daniel.vetter@intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Imre Deak <imre.deak@intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'net/l3mdev/Makefile')