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

Re: [Xen-devel] [PATCH v3 2/2] xen/dt: Allow only IRQ translation that are mapped to main GIC

On 16/07/14 14:14, Ian Campbell wrote:
On Wed, 2014-07-09 at 14:23 +0100, Julien Grall wrote:
Xen is only able to handle one GIC controller. Some platform may contain
other interrupt controller.

Make sure to only translate IRQ mapped into the GIC handled by Xen.

Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>

     Changes in v3:
         - Add an ASSERT to check that dt_interrupt_controller is not

     Changes in v2:
         - Fix compilation...
  xen/common/device_tree.c |    5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
index 310635e..cc45bd1 100644
--- a/xen/common/device_tree.c
+++ b/xen/common/device_tree.c
@@ -1442,9 +1442,12 @@ int dt_irq_translate(const struct dt_raw_irq *raw,
                       struct dt_irq *out_irq)
      ASSERT(dt_irq_xlate != NULL);
+    ASSERT(dt_interrupt_controller != NULL);

-    /* TODO: Retrieve the right irq_xlate. This is only work for the gic */
+    if ( raw->controller != dt_interrupt_controller )
+        return -EINVAL;

+    /* TODO: Retrieve the right irq_xlate. This is only work for the gic */

"This only works for ...".

Do you mean it to say "primary gic"? In which case I think it was in the
correct location before (i.e. before the check which enforced that).

Which location are you talking about? The one in map_device?

If so, it doesn't protect anything, but only avoid to assign an IRQ to DOM0 which is not routed to the primary interrupt controller.

Checking the controller in the location will prevent platform_get_irq to translate IRQ not handled by the gic controller. Futhermore, it will avoid the new hypercall to list interrupt for a specific device node returning an invalid IRQ number.


Julien Grall

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.