Felix Fietkau <nbd@xxxxxxxx> writes: > On 2017-01-25 17:36, Felix Fietkau wrote: >> 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@xxxxxxxxxxxxxxx >> Signed-off-by: Felix Fietkau <nbd@xxxxxxxx> > > Please don't apply this yet, it looks like it might cause some > regressions on other devices. I will investigate. Ok, as patch 3 also had some changes I'll drop these now. So please resend the whole patch series once you know more. -- Kalle Valo