btrfs: fix race between quota disable and quota assign ioctls
[platform/kernel/linux-rpi.git] / drivers / mfd / ezx-pcap.c
index 70fa18b..b14d3f9 100644 (file)
@@ -193,13 +193,11 @@ static void pcap_isr_work(struct work_struct *work)
                ezx_pcap_write(pcap, PCAP_REG_MSR, isr | msr);
                ezx_pcap_write(pcap, PCAP_REG_ISR, isr);
 
-               local_irq_disable();
                service = isr & ~msr;
                for (irq = pcap->irq_base; service; service >>= 1, irq++) {
                        if (service & 1)
-                               generic_handle_irq(irq);
+                               generic_handle_irq_safe(irq);
                }
-               local_irq_enable();
                ezx_pcap_write(pcap, PCAP_REG_MSR, pcap->msr);
        } while (gpio_get_value(pdata->gpio));
 }