Lines Matching refs:airq
36 int register_adapter_interrupt(struct airq_struct *airq) in register_adapter_interrupt() argument
40 if (!airq->handler || airq->isc > MAX_ISC) in register_adapter_interrupt()
42 if (!airq->lsi_ptr) { in register_adapter_interrupt()
43 airq->lsi_ptr = kzalloc(1, GFP_KERNEL); in register_adapter_interrupt()
44 if (!airq->lsi_ptr) in register_adapter_interrupt()
46 airq->flags |= AIRQ_PTR_ALLOCATED; in register_adapter_interrupt()
48 if (!airq->lsi_mask) in register_adapter_interrupt()
49 airq->lsi_mask = 0xff; in register_adapter_interrupt()
50 snprintf(dbf_txt, sizeof(dbf_txt), "rairq:%p", airq); in register_adapter_interrupt()
52 isc_register(airq->isc); in register_adapter_interrupt()
54 hlist_add_head_rcu(&airq->list, &airq_lists[airq->isc]); in register_adapter_interrupt()
64 void unregister_adapter_interrupt(struct airq_struct *airq) in unregister_adapter_interrupt() argument
68 if (hlist_unhashed(&airq->list)) in unregister_adapter_interrupt()
70 snprintf(dbf_txt, sizeof(dbf_txt), "urairq:%p", airq); in unregister_adapter_interrupt()
73 hlist_del_rcu(&airq->list); in unregister_adapter_interrupt()
76 isc_unregister(airq->isc); in unregister_adapter_interrupt()
77 if (airq->flags & AIRQ_PTR_ALLOCATED) { in unregister_adapter_interrupt()
78 kfree(airq->lsi_ptr); in unregister_adapter_interrupt()
79 airq->lsi_ptr = NULL; in unregister_adapter_interrupt()
80 airq->flags &= ~AIRQ_PTR_ALLOCATED; in unregister_adapter_interrupt()
88 struct airq_struct *airq; in do_airq_interrupt() local
96 hlist_for_each_entry_rcu(airq, head, list) in do_airq_interrupt()
97 if ((*airq->lsi_ptr & airq->lsi_mask) != 0) in do_airq_interrupt()
98 airq->handler(airq); in do_airq_interrupt()