The might_sleep() thing caught ide, which calls request_irq() with a
lock held. It can be argued that this is a bad thing, however I think it
can also validly be argued that requesting an irq should not be a
blocking operation. This might even remove some driver bugs where usage
count is not incremented during init...
It can also be argued, that the very first irq requests cannot be
blocking for io anyways, for good reason :-)
return -EINVAL;
action = (struct irqaction *)
- kmalloc(sizeof(struct irqaction), GFP_KERNEL);
+ kmalloc(sizeof(struct irqaction), GFP_ATOMIC);
if (!action)
return -ENOMEM;