The best place to call reactivate_fd from seems to be end_SIGIO_irq,
which is called immediately after the pertinent handler.
* The ->end() handler has to deal with interrupts which got
* disabled while the handler was running.
I went through all the interrupt handlers in arch/um/drivers and it
seems that most of the read handlers reactivate_fd() before returning
while the write handlers don't [i.e. they (re)activate only on an
The problematic cases are:
1) uml_net - which calls reactivate_fd before netif_rx
2) pipe_interrupt - which doesn't call it at all, but [I guess] wouldnt
need to because it'd be reaped by port_wait.
3) ubd_interrupt - which calls it after do_ubdrequest()
4) chan and winch not reactivating on -EIO
(The advantage being that reactivate_fd is a _user function which
normal modules shouldn't(?) know about)