Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/arm26/arm26 Crude hack to ensure that if a soft-int...



details:   https://anonhg.NetBSD.org/src/rev/ed2fe5f645bd
branches:  trunk
changeset: 515087:ed2fe5f645bd
user:      bjh21 <bjh21%NetBSD.org@localhost>
date:      Sun Sep 16 12:58:53 2001 +0000

description:
Crude hack to ensure that if a soft-interrupt handler schedules a soft
interrupt, the second handler gets called when the first returns.

diffstat:

 sys/arch/arm26/arm26/softintr.c |  6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diffs (34 lines):

diff -r 3254e2014c45 -r ed2fe5f645bd sys/arch/arm26/arm26/softintr.c
--- a/sys/arch/arm26/arm26/softintr.c   Sun Sep 16 12:52:34 2001 +0000
+++ b/sys/arch/arm26/arm26/softintr.c   Sun Sep 16 12:58:53 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: softintr.c,v 1.9 2001/08/25 17:45:32 bjh21 Exp $ */
+/* $NetBSD: softintr.c,v 1.10 2001/09/16 12:58:53 bjh21 Exp $ */
 
 /*
  * Copyright (c) 1999 Ben Harris.
@@ -38,7 +38,7 @@
 
 #include <sys/param.h>
 
-__RCSID("$NetBSD: softintr.c,v 1.9 2001/08/25 17:45:32 bjh21 Exp $");
+__RCSID("$NetBSD: softintr.c,v 1.10 2001/09/16 12:58:53 bjh21 Exp $");
 
 #include <sys/malloc.h>
 #include <sys/queue.h>
@@ -93,6 +93,7 @@
 {
        struct softintr_handler *sh;
 
+again:
        for (sh = LIST_FIRST(&sh_head); sh != NULL && sh->sh_ipl > level;
             sh = LIST_NEXT(sh, sh_link))
                if (sh->sh_pending) {
@@ -100,6 +101,7 @@
                        uvmexp.softs++;
                        sh->sh_pending = 0;
                        sh->sh_func(sh->sh_arg);
+                       goto again;
                }
 }
 



Home | Main Index | Thread Index | Old Index