|
@@ -1344,26 +1344,6 @@ static int set_affinity_irq(struct irq_data *data, const struct cpumask *dest,
|
|
|
return rebind_irq_to_cpu(data->irq, tcpu);
|
|
|
}
|
|
|
|
|
|
-static int retrigger_evtchn(int evtchn)
|
|
|
-{
|
|
|
- int masked;
|
|
|
-
|
|
|
- if (!VALID_EVTCHN(evtchn))
|
|
|
- return 0;
|
|
|
-
|
|
|
- masked = test_and_set_mask(evtchn);
|
|
|
- set_evtchn(evtchn);
|
|
|
- if (!masked)
|
|
|
- unmask_evtchn(evtchn);
|
|
|
-
|
|
|
- return 1;
|
|
|
-}
|
|
|
-
|
|
|
-int resend_irq_on_evtchn(unsigned int irq)
|
|
|
-{
|
|
|
- return retrigger_evtchn(evtchn_from_irq(irq));
|
|
|
-}
|
|
|
-
|
|
|
static void enable_dynirq(struct irq_data *data)
|
|
|
{
|
|
|
int evtchn = evtchn_from_irq(data->irq);
|
|
@@ -1398,7 +1378,18 @@ static void mask_ack_dynirq(struct irq_data *data)
|
|
|
|
|
|
static int retrigger_dynirq(struct irq_data *data)
|
|
|
{
|
|
|
- return retrigger_evtchn(evtchn_from_irq(data->irq));
|
|
|
+ unsigned int evtchn = evtchn_from_irq(data->irq);
|
|
|
+ int masked;
|
|
|
+
|
|
|
+ if (!VALID_EVTCHN(evtchn))
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ masked = test_and_set_mask(evtchn);
|
|
|
+ set_evtchn(evtchn);
|
|
|
+ if (!masked)
|
|
|
+ unmask_evtchn(evtchn);
|
|
|
+
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
static void restore_pirqs(void)
|