qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [kvm-unit-tests RFC 14/15] arm/arm64: gic: Generalize ipi_e


From: Eric Auger
Subject: [Qemu-devel] [kvm-unit-tests RFC 14/15] arm/arm64: gic: Generalize ipi_enable()
Date: Mon, 5 Dec 2016 22:46:45 +0100

For ITS test we plan to reuse the ipi_enable() code to
install the IRQ handler and enable the IRQ at CPU level.
Let's rename the function into setup_irq().

Signed-off-by: Eric Auger <address@hidden>
---
 arm/gic.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/arm/gic.c b/arm/gic.c
index 88c5f49..cbaab3f 100644
--- a/arm/gic.c
+++ b/arm/gic.c
@@ -134,6 +134,8 @@ static void check_irqnr(u32 irqnr)
                bad_irq[smp_processor_id()] = irqnr;
 }
 
+typedef void (*handler_t)(struct pt_regs *regs __unused);
+
 static void ipi_handler(struct pt_regs *regs __unused)
 {
        u32 irqstat = gic_read_iar();
@@ -209,20 +211,20 @@ static void ipi_test_smp(void)
        report_prefix_pop();
 }
 
-static void ipi_enable(void)
+static void setup_irq(handler_t handler)
 {
        gic_enable_defaults();
 #ifdef __arm__
-       install_exception_handler(EXCPTN_IRQ, ipi_handler);
+       install_exception_handler(EXCPTN_IRQ, handler);
 #else
-       install_irq_handler(EL1H_IRQ, ipi_handler);
+       install_irq_handler(EL1H_IRQ, handler);
 #endif
        local_irq_enable();
 }
 
 static void ipi_send(void)
 {
-       ipi_enable();
+       setup_irq(ipi_handler);
        wait_on_ready();
        ipi_test_self();
        ipi_test_smp();
@@ -232,7 +234,7 @@ static void ipi_send(void)
 
 static void ipi_recv(void)
 {
-       ipi_enable();
+       setup_irq(ipi_handler);
        cpumask_set_cpu(smp_processor_id(), &ready);
        while (1)
                wfi();
@@ -323,7 +325,7 @@ int main(int argc, char **argv)
        if (argc < 2) {
 
                report_prefix_push("ipi");
-               ipi_enable();
+               setup_irq(ipi_handler);
                ipi_test_self();
                check_spurious();
                report_prefix_pop();
-- 
2.5.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]