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

Re: [Minios-devel] [UNIKRAFT PATCH] plat/linuxu: Acknowledge all interrupts on controller



Hello Simon,

This patch seems fine.

Reviewed-by: Sharan Santhanam <sharan.santhanam@xxxxxxxxx>

Thanks & Regards
Sharan

On 2/18/19 1:58 PM, Simon Kuenzer wrote:
Like on plat/kvm, we acknowledge interrupts even in the
case when there was no handler for it. We do this to get
similar platform behaviour.

Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
---
  plat/linuxu/irq.c | 17 +++++++++--------
  1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/plat/linuxu/irq.c b/plat/linuxu/irq.c
index e7435b34..f2b18a85 100644
--- a/plat/linuxu/irq.c
+++ b/plat/linuxu/irq.c
@@ -123,19 +123,20 @@ asm("__restorer:mov r7, #0x77\nsvc 0x0");
  static void _irq_handle(int irq)
  {
        struct irq_handler *h;
-       int handled = 0;
UK_ASSERT(irq >= 0 && irq < IRQS_NUM); UK_SLIST_FOREACH(h, &irq_handlers[irq], entries) {
-               if (h->func(h->arg) == 1) {
-                       handled = 1;
-                       break;
-               }
+               if (h->func(h->arg) == 1)
+                       return;
        }
-
-       if (!handled)
-               UK_CRASH("Unhandled irq=%d\n", irq);
+       /*
+        * Just warn about unhandled interrupts. We do this to
+        * (1) compensate potential spurious interrupts of
+        * devices, and (2) to minimize impact on drivers that share
+        * one interrupt line that would then stay disabled.
+        */
+       uk_pr_crit("Unhandled irq=%d\n", irq);
  }
int ukplat_irq_register(unsigned long irq, irq_handler_func_t func, void *arg)


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

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