Source-Changes-HG archive

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

[src/nathanw_sa]: src/sys/kern In sa_upcall_userret(), when making the UNBLOC...



details:   https://anonhg.NetBSD.org/src/rev/84b7dca2f415
branches:  nathanw_sa
changeset: 506380:84b7dca2f415
user:      nathanw <nathanw%NetBSD.org@localhost>
date:      Mon Oct 21 22:49:35 2002 +0000

description:
In sa_upcall_userret(), when making the UNBLOCKED upcall, call it with
SA_UPCALL_DEFER. This prevents stomping a preexisting asynchronous
upcall (signal or timer), which would get lost (and also leak a stack).

diffstat:

 sys/kern/kern_sa.c |  4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diffs (18 lines):

diff -r 82b83b66f5ee -r 84b7dca2f415 sys/kern/kern_sa.c
--- a/sys/kern/kern_sa.c        Mon Oct 21 22:21:20 2002 +0000
+++ b/sys/kern/kern_sa.c        Mon Oct 21 22:49:35 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: kern_sa.c,v 1.1.2.34 2002/10/09 16:57:27 nathanw Exp $ */
+/*     $NetBSD: kern_sa.c,v 1.1.2.35 2002/10/21 22:49:35 nathanw Exp $ */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -772,7 +772,7 @@
                
                KDASSERT(sa->sa_nrstacks > 0);
                st = sa->sa_rstacks[--sa->sa_nrstacks];
-               if (sa_upcall0(l, SA_UPCALL_UNBLOCKED, l, l2, 0, NULL, sau, 
+               if (sa_upcall0(l, SA_UPCALL_UNBLOCKED | SA_UPCALL_DEFER, l, l2, 0, NULL, sau, 
                    &st) != 0) {
                        /*
                         * We were supposed to deliver an UNBLOCKED



Home | Main Index | Thread Index | Old Index