|
@@ -290,7 +290,8 @@ static inline void mask_ack_irq(struct irq_desc *desc, int irq)
|
|
|
desc->chip->mask_ack(irq);
|
|
|
else {
|
|
|
desc->chip->mask(irq);
|
|
|
- desc->chip->ack(irq);
|
|
|
+ if (desc->chip->ack)
|
|
|
+ desc->chip->ack(irq);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -475,7 +476,8 @@ handle_edge_irq(unsigned int irq, struct irq_desc *desc)
|
|
|
kstat_incr_irqs_this_cpu(irq, desc);
|
|
|
|
|
|
/* Start handling the irq */
|
|
|
- desc->chip->ack(irq);
|
|
|
+ if (desc->chip->ack)
|
|
|
+ desc->chip->ack(irq);
|
|
|
desc = irq_remap_to_desc(irq, desc);
|
|
|
|
|
|
/* Mark the IRQ currently in progress.*/
|