On Mon, 2 Mar 2009, Bartlomiej Zolnierkiewicz wrote: > > Hmm, I said nothing about how it is implemented in the IDE code itself. :) Bart, you're missing the point. I'm _also_ not at all interested in how it's implemented in the IDE code. The whole - and only - point is that there are drivers that are _known_ to require non-IRQF_DISABLED semantics. IDE is one such one. > Fixing this is on long-term TODO (there was just a ton of more high-prio > stuff to take care of first). Even if you can fix IDE to do everything using softirq's or other tricks (threads, whatever), nothing really changes. It just means that now there is one less driver that may need the non-IRQF_DISABLED semantics. So I'm perfectly happy with - making IRQF_DISABLED the _default_ (and make the value of the flag be 0, for example, so that people can still _use_ it) - but when we find a driver that depended on irq's being on, have a new flag like IRQF_REENABLE, which has the semantics of the current default of !IRQF_DISABLED but I don't think it's reasonable to just drop the support. IDE requires it, and it's been a known requirement for basically forever. Other drivers with similar issues? Who the heck knows? I do know that the _generic_ SCSI layer used to have some insane reset timeouts inside the interrupt handler, and literally *depended* on timer interrupts happening while inside the SCSI interrupt. I'm hoping that's no longer the case. But this is the kind of thing that has been going on. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html