Lines Matching refs:airq
21 #include <asm/airq.h>
36 * @airq: pointer to adapter interrupt descriptor
40 int register_adapter_interrupt(struct airq_struct *airq)
44 if (!airq->handler || airq->isc > MAX_ISC)
46 if (!airq->lsi_ptr) {
47 airq->lsi_ptr = kzalloc(1, GFP_KERNEL);
48 if (!airq->lsi_ptr)
50 airq->flags |= AIRQ_PTR_ALLOCATED;
52 if (!airq->lsi_mask)
53 airq->lsi_mask = 0xff;
54 snprintf(dbf_txt, sizeof(dbf_txt), "rairq:%p", airq);
56 isc_register(airq->isc);
58 hlist_add_head_rcu(&airq->list, &airq_lists[airq->isc]);
66 * @airq: pointer to adapter interrupt descriptor
68 void unregister_adapter_interrupt(struct airq_struct *airq)
72 if (hlist_unhashed(&airq->list))
74 snprintf(dbf_txt, sizeof(dbf_txt), "urairq:%p", airq);
77 hlist_del_rcu(&airq->list);
80 isc_unregister(airq->isc);
81 if (airq->flags & AIRQ_PTR_ALLOCATED) {
82 kfree(airq->lsi_ptr);
83 airq->lsi_ptr = NULL;
84 airq->flags &= ~AIRQ_PTR_ALLOCATED;
92 struct airq_struct *airq;
100 hlist_for_each_entry_rcu(airq, head, list)
101 if ((*airq->lsi_ptr & airq->lsi_mask) != 0)
102 airq->handler(airq, !tpi_info->directed_irq);