Lines Matching refs:airq

40 int register_adapter_interrupt(struct airq_struct *airq)  in register_adapter_interrupt()  argument
44 if (!airq->handler || airq->isc > MAX_ISC) in register_adapter_interrupt()
46 if (!airq->lsi_ptr) { in register_adapter_interrupt()
47 airq->lsi_ptr = kzalloc(1, GFP_KERNEL); in register_adapter_interrupt()
48 if (!airq->lsi_ptr) in register_adapter_interrupt()
50 airq->flags |= AIRQ_PTR_ALLOCATED; in register_adapter_interrupt()
52 if (!airq->lsi_mask) in register_adapter_interrupt()
53 airq->lsi_mask = 0xff; in register_adapter_interrupt()
54 snprintf(dbf_txt, sizeof(dbf_txt), "rairq:%p", airq); in register_adapter_interrupt()
56 isc_register(airq->isc); in register_adapter_interrupt()
58 hlist_add_head_rcu(&airq->list, &airq_lists[airq->isc]); in register_adapter_interrupt()
68 void unregister_adapter_interrupt(struct airq_struct *airq) in unregister_adapter_interrupt() argument
72 if (hlist_unhashed(&airq->list)) in unregister_adapter_interrupt()
74 snprintf(dbf_txt, sizeof(dbf_txt), "urairq:%p", airq); in unregister_adapter_interrupt()
77 hlist_del_rcu(&airq->list); in unregister_adapter_interrupt()
80 isc_unregister(airq->isc); in unregister_adapter_interrupt()
81 if (airq->flags & AIRQ_PTR_ALLOCATED) { in unregister_adapter_interrupt()
82 kfree(airq->lsi_ptr); in unregister_adapter_interrupt()
83 airq->lsi_ptr = NULL; in unregister_adapter_interrupt()
84 airq->flags &= ~AIRQ_PTR_ALLOCATED; in unregister_adapter_interrupt()
92 struct airq_struct *airq; in do_airq_interrupt() local
100 hlist_for_each_entry_rcu(airq, head, list) in do_airq_interrupt()
101 if ((*airq->lsi_ptr & airq->lsi_mask) != 0) in do_airq_interrupt()
102 airq->handler(airq, !tpi_info->directed_irq); in do_airq_interrupt()