On 29/04/2019 11:52, Amit Tomer wrote:
Hello,
Hi,
The proper way is to detect PPI before hand and completely skip the node if any.
I tried the following change:
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index d983677..a9ecfed 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1353,7 +1353,7 @@ static int __init handle_node(struct domain *d,
struct kernel_info *kinfo,
{ /* sentinel */ },
};
struct dt_device_node *child;
- int res;
+ int res, irq_id;
const char *name;
const char *path;
@@ -1399,6 +1399,16 @@ static int __init handle_node(struct domain *d,
struct kernel_info *kinfo,
return 0;
}
+ /*Skip the node, using PPI source */
+ irq_id = platform_get_irq(node, 0);
That's only cover the first interrupt of a device. What if the first interrupt
is an SPI but all the other are actually PPIs?
In order to black all devices using PPI, we need to go through *all* the
interrupts of the device. Otherwise you will miss some.
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel