handle.c (1277a5325adfc53caac7dd3dac5d3d2fd2a125b4) handle.c (009b4c3b8ad584b3462734127a5bec680d5d6af4)
1/*
2 * linux/kernel/irq/handle.c
3 *
4 * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar
5 * Copyright (C) 2005-2006, Thomas Gleixner, Russell King
6 *
7 * This file contains the core interrupt handling code.
8 *

--- 109 unchanged lines hidden (view full) ---

118}
119
120irqreturn_t handle_irq_event(struct irq_desc *desc)
121{
122 struct irqaction *action = desc->action;
123 irqreturn_t ret;
124
125 desc->status &= ~IRQ_PENDING;
1/*
2 * linux/kernel/irq/handle.c
3 *
4 * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar
5 * Copyright (C) 2005-2006, Thomas Gleixner, Russell King
6 *
7 * This file contains the core interrupt handling code.
8 *

--- 109 unchanged lines hidden (view full) ---

118}
119
120irqreturn_t handle_irq_event(struct irq_desc *desc)
121{
122 struct irqaction *action = desc->action;
123 irqreturn_t ret;
124
125 desc->status &= ~IRQ_PENDING;
126 desc->status |= IRQ_INPROGRESS;
126 irq_compat_set_progress(desc);
127 desc->istate |= IRQS_INPROGRESS;
127 raw_spin_unlock(&desc->lock);
128
129 ret = handle_irq_event_percpu(desc, action);
130
131 raw_spin_lock(&desc->lock);
128 raw_spin_unlock(&desc->lock);
129
130 ret = handle_irq_event_percpu(desc, action);
131
132 raw_spin_lock(&desc->lock);
132 desc->status &= ~IRQ_INPROGRESS;
133 desc->istate &= ~IRQS_INPROGRESS;
134 irq_compat_clr_progress(desc);
133 return ret;
134}
135
136/**
137 * handle_IRQ_event - irq action chain handler
138 * @irq: the interrupt number
139 * @action: the interrupt action chain for this irq
140 *
141 * Handles the action chain of an irq event
142 */
143irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action)
144{
145 return handle_irq_event_percpu(irq_to_desc(irq), action);
146}
135 return ret;
136}
137
138/**
139 * handle_IRQ_event - irq action chain handler
140 * @irq: the interrupt number
141 * @action: the interrupt action chain for this irq
142 *
143 * Handles the action chain of an irq event
144 */
145irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action)
146{
147 return handle_irq_event_percpu(irq_to_desc(irq), action);
148}