Oh, I found the bug ... > static int activate_fd(int irq, int fd, enum um_irq_type type, void *dev_id) > { [...] > + irq_entry->reg[type].irq = irq; > + irq_entry->reg[type].active = true; > + irq_entry->reg[type].events = events; Obviously, here we need irq_entry->reg[type].id = dev_id; :-) johannes