Hi David, [I'm not subscribed to the list. So please CC: me in your reply] ext David Brownell wrote:I was starting to wonder about that too after I had sent the message and it led me straight to the root cause. This also explains why I was unable to reproduce the problem with defconfig: yenta_socket is not included in the default configuration. The problem is caused by this code in handle_IRQ_event(): if (!(action->flags & IRQF_DISABLED)) local_irq_enable_in_hardirq(); do { ret = action->handler(irq, action->dev_id); ... action = action->next; } while (action); For shared interrupts IRQF_DISABLED will only take effect if the first registered handler sets it. The attached changes fix the problem for me. Feel free to update them if they are not up to usual Linux kernel quality standards. I also attached the new config I used for testing: defconfig + the minimum additional stuff to enable the problem. There are of course two other options to fix the problem: - add IRQF_DISBALED to yenta_socket. But this will fix it only for this case... - enable/disable interrupts depending on actions IRQF_DISABLED in the loop in handle_IRQ_event(). But that would mean more CPU cycles are spent in that function... Regards, Stefan --- Stefan Becker E-Mail: Stefan.Becker@nokia.com
| Jeremy Allison | Re: [RFC] Heads up on sys_fallocate() |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Joerg Roedel | [PATCH 03/34] AMD IOMMU: add defines and structures for ACPI scanning code |
| Eric W. Biederman | [PATCH] powerpc pseries eeh: Convert to kthread API |
| David Miller | [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Natalie Protasevich | [BUG] New Kernel Bugs |
git: | |
