Maciej W. Rozycki wrote:
No, I don't. But that was why the original code preferred the wired entry approach over ioremap() -- not to map a whole range...
Not the only one: dynamic ioremap() seems to be impossible in interrupt context.
Well, ioremap() may sleep indeed.
So, the only viable option of using sofirq() is mapping all the sparce 2KiB regions at the __init time -- that will waste every half of page though...
How about using a softirq then?
Using softirq for what?
Broken hardware (=one that requires PCI configuration accesses from the IRQ context) is not an excuse to extend the breakage over to software.
That's *at least* impractical argument.
Maciej
WBR, Sergei