|
@@ -496,18 +496,18 @@ static struct irq_chip balloon3_irq_chip = {
|
|
|
.irq_unmask = balloon3_unmask_irq,
|
|
|
};
|
|
|
|
|
|
-static void balloon3_irq_handler(unsigned int irq, struct irq_desc *desc)
|
|
|
+static void balloon3_irq_handler(unsigned int __irq, struct irq_desc *desc)
|
|
|
{
|
|
|
unsigned long pending = __raw_readl(BALLOON3_INT_CONTROL_REG) &
|
|
|
balloon3_irq_enabled;
|
|
|
do {
|
|
|
- /* clear useless edge notification */
|
|
|
- if (desc->irq_data.chip->irq_ack) {
|
|
|
- struct irq_data *d;
|
|
|
+ struct irq_data *d = irq_desc_get_irq_data(desc);
|
|
|
+ struct irq_chip *chip = irq_data_get_chip(d);
|
|
|
+ unsigned int irq;
|
|
|
|
|
|
- d = irq_get_irq_data(BALLOON3_AUX_NIRQ);
|
|
|
- desc->irq_data.chip->irq_ack(d);
|
|
|
- }
|
|
|
+ /* clear useless edge notification */
|
|
|
+ if (chip->irq_ack)
|
|
|
+ chip->irq_ack(d);
|
|
|
|
|
|
while (pending) {
|
|
|
irq = BALLOON3_IRQ(0) + __ffs(pending);
|