Lines Matching full:iop

21  * @iop:      The parent iopoll structure
27 void irq_poll_sched(struct irq_poll *iop) in irq_poll_sched() argument
31 if (test_bit(IRQ_POLL_F_DISABLE, &iop->state)) in irq_poll_sched()
33 if (test_and_set_bit(IRQ_POLL_F_SCHED, &iop->state)) in irq_poll_sched()
37 list_add_tail(&iop->list, this_cpu_ptr(&blk_cpu_iopoll)); in irq_poll_sched()
44 * __irq_poll_complete - Mark this @iop as un-polled again
45 * @iop: The parent iopoll structure
51 static void __irq_poll_complete(struct irq_poll *iop) in __irq_poll_complete() argument
53 list_del(&iop->list); in __irq_poll_complete()
55 clear_bit_unlock(IRQ_POLL_F_SCHED, &iop->state); in __irq_poll_complete()
59 * irq_poll_complete - Mark this @iop as un-polled again
60 * @iop: The parent iopoll structure
68 void irq_poll_complete(struct irq_poll *iop) in irq_poll_complete() argument
73 __irq_poll_complete(iop); in irq_poll_complete()
87 struct irq_poll *iop; in irq_poll_softirq() local
105 iop = list_entry(list->next, struct irq_poll, list); in irq_poll_softirq()
107 weight = iop->weight; in irq_poll_softirq()
109 if (test_bit(IRQ_POLL_F_SCHED, &iop->state)) in irq_poll_softirq()
110 work = iop->poll(iop, weight); in irq_poll_softirq()
125 if (test_bit(IRQ_POLL_F_DISABLE, &iop->state)) in irq_poll_softirq()
126 __irq_poll_complete(iop); in irq_poll_softirq()
128 list_move_tail(&iop->list, list); in irq_poll_softirq()
139 * irq_poll_disable - Disable iopoll on this @iop
140 * @iop: The parent iopoll structure
145 void irq_poll_disable(struct irq_poll *iop) in irq_poll_disable() argument
147 set_bit(IRQ_POLL_F_DISABLE, &iop->state); in irq_poll_disable()
148 while (test_and_set_bit(IRQ_POLL_F_SCHED, &iop->state)) in irq_poll_disable()
150 clear_bit(IRQ_POLL_F_DISABLE, &iop->state); in irq_poll_disable()
155 * irq_poll_enable - Enable iopoll on this @iop
156 * @iop: The parent iopoll structure
159 * Enable iopoll on this @iop. Note that the handler run will not be
162 void irq_poll_enable(struct irq_poll *iop) in irq_poll_enable() argument
164 BUG_ON(!test_bit(IRQ_POLL_F_SCHED, &iop->state)); in irq_poll_enable()
166 clear_bit_unlock(IRQ_POLL_F_SCHED, &iop->state); in irq_poll_enable()
171 * irq_poll_init - Initialize this @iop
172 * @iop: The parent iopoll structure
179 void irq_poll_init(struct irq_poll *iop, int weight, irq_poll_fn *poll_fn) in irq_poll_init() argument
181 memset(iop, 0, sizeof(*iop)); in irq_poll_init()
182 INIT_LIST_HEAD(&iop->list); in irq_poll_init()
183 iop->weight = weight; in irq_poll_init()
184 iop->poll = poll_fn; in irq_poll_init()