On Mon, 16 Feb 2015, Rafał Miłecki wrote: > As the result forwardtrace looks like this: > 1) ioremap_nocache > 2) __ioremap_mode > 3) __ioremap > 4) get_vm_area > 5) __get_vm_area_node > And then we can hit BUG_ON(in_interrupt()); > > Can you see any solution for this? Currently there isn't any mainline > code triggering this problem, but it would be nice to have everything > working anyway. That looks to me like a case that shouldn't really be handled at the hardirq level. Just use a softirq or a threaded IRQ. There's prior art in phylib I believe, where merely ACKing an IRQ may require pushing data through over I2C -- slooow and possibly bit-banged! HTH, Maciej