diff options
| -rw-r--r-- | drivers/xen/events/events_base.c | 33 | ||||
| -rw-r--r-- | include/xen/events.h | 1 |
2 files changed, 12 insertions, 22 deletions
diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c index f4a9e3311297..dca101ab1747 100644 --- a/drivers/xen/events/events_base.c +++ b/drivers/xen/events/events_base.c | |||
| @@ -1344,26 +1344,6 @@ static int set_affinity_irq(struct irq_data *data, const struct cpumask *dest, | |||
| 1344 | return rebind_irq_to_cpu(data->irq, tcpu); | 1344 | return rebind_irq_to_cpu(data->irq, tcpu); |
| 1345 | } | 1345 | } |
| 1346 | 1346 | ||
| 1347 | static int retrigger_evtchn(int evtchn) | ||
| 1348 | { | ||
| 1349 | int masked; | ||
| 1350 | |||
| 1351 | if (!VALID_EVTCHN(evtchn)) | ||
| 1352 | return 0; | ||
| 1353 | |||
| 1354 | masked = test_and_set_mask(evtchn); | ||
| 1355 | set_evtchn(evtchn); | ||
| 1356 | if (!masked) | ||
| 1357 | unmask_evtchn(evtchn); | ||
| 1358 | |||
| 1359 | return 1; | ||
| 1360 | } | ||
| 1361 | |||
| 1362 | int resend_irq_on_evtchn(unsigned int irq) | ||
| 1363 | { | ||
| 1364 | return retrigger_evtchn(evtchn_from_irq(irq)); | ||
| 1365 | } | ||
| 1366 | |||
| 1367 | static void enable_dynirq(struct irq_data *data) | 1347 | static void enable_dynirq(struct irq_data *data) |
| 1368 | { | 1348 | { |
| 1369 | int evtchn = evtchn_from_irq(data->irq); | 1349 | int evtchn = evtchn_from_irq(data->irq); |
| @@ -1398,7 +1378,18 @@ static void mask_ack_dynirq(struct irq_data *data) | |||
| 1398 | 1378 | ||
| 1399 | static int retrigger_dynirq(struct irq_data *data) | 1379 | static int retrigger_dynirq(struct irq_data *data) |
| 1400 | { | 1380 | { |
| 1401 | return retrigger_evtchn(evtchn_from_irq(data->irq)); | 1381 | unsigned int evtchn = evtchn_from_irq(data->irq); |
| 1382 | int masked; | ||
| 1383 | |||
| 1384 | if (!VALID_EVTCHN(evtchn)) | ||
| 1385 | return 0; | ||
| 1386 | |||
| 1387 | masked = test_and_set_mask(evtchn); | ||
| 1388 | set_evtchn(evtchn); | ||
| 1389 | if (!masked) | ||
| 1390 | unmask_evtchn(evtchn); | ||
| 1391 | |||
| 1392 | return 1; | ||
| 1402 | } | 1393 | } |
| 1403 | 1394 | ||
| 1404 | static void restore_pirqs(void) | 1395 | static void restore_pirqs(void) |
diff --git a/include/xen/events.h b/include/xen/events.h index c9c85cf84895..a6d92378354c 100644 --- a/include/xen/events.h +++ b/include/xen/events.h | |||
| @@ -52,7 +52,6 @@ int evtchn_get(unsigned int evtchn); | |||
| 52 | void evtchn_put(unsigned int evtchn); | 52 | void evtchn_put(unsigned int evtchn); |
| 53 | 53 | ||
| 54 | void xen_send_IPI_one(unsigned int cpu, enum ipi_vector vector); | 54 | void xen_send_IPI_one(unsigned int cpu, enum ipi_vector vector); |
| 55 | int resend_irq_on_evtchn(unsigned int irq); | ||
| 56 | void rebind_evtchn_irq(int evtchn, int irq); | 55 | void rebind_evtchn_irq(int evtchn, int irq); |
| 57 | 56 | ||
| 58 | static inline void notify_remote_via_evtchn(int port) | 57 | static inline void notify_remote_via_evtchn(int port) |
