On Mon, Jul 13, 2015 at 10:46 PM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: > bcsr_csc_handler() is a cascading interrupt handler. It has a > disable_irq_nosync()/enable_irq() pair around the generic_handle_irq() > call. The value of this disable/enable is zero because its a complete > noop: > > disable_irq_nosync() merily increments the disable count without > actually masking the interrupt. enable_irq() soleley decrements the > disable count without touching the interrupt chip. The interrupt > cannot arrive again because the complete call chain runs with > interrupts disabled. > > Remove it. Is there another patch this one depends on? The DB1300 board doesn't boot (i.e. interrupts from the cpld aren't serviced) with this patch applied: (irq 136 is the first serviced by the bcsr cpld): irq 136: nobody cared (try booting with the "irqpoll" option) CPU: 0 PID: 50 Comm: kworker/u2:2 Not tainted 4.1.0-db1xxx-12807-g1ced2d0-dirty #8 Workqueue: events_unbound async_run_entry_fn Stack : 8090c3ec 8090c3c4 00000000 809d0000 00000000 80153668 80908814 00000032 80a03828 8090c3c4 8093b2fc 8fb736e4 80908814 807e7f3c 00000000 8013f8dc 00000000 00000000 8fb736e4 8fb73704 80908814 8013726c 00000000 00000002 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 6e657665 755f7374 756f626e 0000646e 00000000 00000000 8fc32500 8fc32c00 ... Call Trace: [<8010ee6c>] show_stack+0x64/0x7c [<801571c4>] __report_bad_irq.isra.0+0x40/0x100 [<801574d8>] note_interrupt+0x1e0/0x338 [<80154d3c>] handle_irq_event_percpu+0xe8/0x1a0 [<80154e34>] handle_irq_event+0x40/0x6c [<80157c8c>] handle_level_irq+0xac/0x16c [<801543e8>] generic_handle_irq+0x44/0x5c [<801543e8>] generic_handle_irq+0x44/0x5c [<801543e8>] generic_handle_irq+0x44/0x5c [<8010bd04>] do_IRQ+0x18/0x24 [<8010a018>] ret_from_irq+0x0/0x4 [<801d95fc>] kmem_cache_alloc+0x0/0xf8 [<80216b38>] alloc_buffer_head+0x1c/0x70 [<80216cb0>] alloc_page_buffers+0xbc/0x134 [<80216d4c>] create_empty_buffers+0x24/0x14c [<80216ee0>] create_page_buffers+0x6c/0x94 [<8021896c>] block_read_full_page+0x48/0x4b8 [<8019dac8>] do_read_cache_page+0xac/0x278 [<8019dcb4>] read_cache_page+0x20/0x2c [<803da774>] read_dev_sector+0x34/0xc0 [<803dc7ec>] read_lba.isra.0+0xe8/0x200 [<803dcb80>] is_gpt_valid+0x27c/0x318 [<803dcd40>] efi_partition+0x124/0xb44 [<803db9b4>] check_partition+0x108/0x254 [<803dae84>] rescan_partitions+0x104/0x384 [<8021cc8c>] __blkdev_get+0x318/0x440 [<8021d8d0>] blkdev_get+0x11c/0x330 [<803d8c08>] add_disk+0x380/0x488 [<8048e350>] sd_probe_async+0x100/0x228 [<8013d7ec>] async_run_entry_fn+0x4c/0x118 [<80135080>] process_one_work+0x130/0x40c [<801354c8>] worker_thread+0x16c/0x5a8 [<8013af04>] kthread+0xd4/0xec [<8010a068>] ret_from_kernel_thread+0x14/0x1c handlers: [<804ab75c>] ata_sff_interrupt Disabling IRQ #136 Manuel