static irqreturn_t hvc_handle_interrupt(int irq, void *dev_instance) { /* if hvc_poll request a repoll, then kick the hvcd thread */ if (hvc_poll(dev_instance)) hvc_kick(); return IRQ_HANDLED; }
static irqreturn_t hvc_handle_interrupt(int irq, void *dev_instance) { /* if hvc_poll request a repoll, then kick the hvcd thread */ if (hvc_poll(dev_instance)) hvc_kick(); /* * We're safe to always return IRQ_HANDLED as the hvcd thread will * iterate through each hvc_struct. */ return IRQ_HANDLED; }
int khvcd(void *unused) { int i; daemonize(); reparent_to_init(); strcpy(current->comm, "khvcd"); sigfillset(¤t->blocked); for (;;) { for (i = 0; i < MAX_NR_HVC_CONSOLES; ++i) hvc_poll(i); set_current_state(TASK_INTERRUPTIBLE); schedule_timeout(TIMEOUT); } }