]> xenbits.xensource.com Git - osstest/rumprun.git/commitdiff
p-p-p-p-panic: make bmk_isr_rumpkernel() type void
authorAntti Kantee <pooka@iki.fi>
Wed, 17 Feb 2016 13:00:22 +0000 (13:00 +0000)
committerAntti Kantee <pooka@iki.fi>
Wed, 17 Feb 2016 13:00:22 +0000 (13:00 +0000)
In other words: just panic if something doesn't work out.
It's ~100% likely that the resulting state would not be what
the user wanted in case we'd return an error.

platform/hw/include/hw/kernel.h
platform/hw/intr.c
platform/hw/pci/rumppci.c

index d403664826ce798cbc72be47f3fb18e4f7744cd1..18f148c6c097f71066f617ddaf45498c8574aa6f 100644 (file)
@@ -21,7 +21,7 @@ bmk_time_t cpu_clock_epochoffset(void);
 
 void isr(int);
 int intr_init(void);
-int bmk_isr_rumpkernel(int (*)(void *), void *, int, int);
+void bmk_isr_rumpkernel(int (*)(void *), void *, int, int);
 
 #define BMK_MULTIBOOT_CMDLINE_SIZE 4096
 extern char multiboot_cmdline[];
index 97a2bd8abc15dbb803bbaa582a2856d9a3611e37..1b1323cf32ce2f7086e9375f1fa3f7577ff22109 100644 (file)
@@ -131,25 +131,24 @@ doisr(void *arg)
        }
 }
 
-int
+void
 bmk_isr_rumpkernel(int (*func)(void *), void *arg, int intr, int flags)
 {
        struct intrhand *ih;
        int error;
 
        if (intr > sizeof(isr_todo)*8 || intr > BMK_MAXINTR)
-               return BMK_EGENERIC;
+               bmk_platform_halt("bmk_isr_rumpkernel: intr");
 
        if (flags != 0)
-               bmk_platform_halt("bmk_isr_rumpkernel: invalid flags");
+               bmk_platform_halt("bmk_isr_rumpkernel: flags");
 
        ih = bmk_xmalloc_bmk(sizeof(*ih));
        if (!ih)
-               return BMK_ENOMEM;
+               bmk_platform_halt("bmk_isr_rumpkernel: xmalloc");
 
        if ((error = cpu_intr_init(intr)) != 0) {
-               bmk_memfree(ih, BMK_MEMWHO_WIREDBMK);
-               return error;
+               bmk_platform_halt("bmk_isr_rumpkernel: cpu_intr_init");
        }
        ih->ih_fun = func;
        ih->ih_arg = arg;
@@ -157,8 +156,6 @@ bmk_isr_rumpkernel(int (*func)(void *), void *arg, int intr, int flags)
        SLIST_INSERT_HEAD(&isr_ih[intr % BMK_INTRLEVS], ih, ih_entries);
        if ((unsigned)intr < isr_lowest)
                isr_lowest = intr;
-
-       return 0;
 }
 
 void
index 82a891b5c085779f22939541e88237744b4f56e8..c9b7ee7786c6befc8accd6a7a245781a21f285a2 100644 (file)
@@ -97,10 +97,8 @@ void *
 rumpcomp_pci_irq_establish(unsigned cookie, int (*handler)(void *), void *data)
 {
 
-       if (bmk_isr_rumpkernel(handler, data, intrs[cookie], 0) == 0)
-               return &intrs[cookie];
-       else
-               return NULL;
+       bmk_isr_rumpkernel(handler, data, intrs[cookie], 0);
+       return &intrs[cookie];
 }
 
 /*