Source-Changes-HG archive

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

[src/trunk]: src/sys/kern Unfortunately, we can't really know if select colli...



details:   https://anonhg.NetBSD.org/src/rev/d98eb026204e
branches:  trunk
changeset: 539990:d98eb026204e
user:      jdolecek <jdolecek%NetBSD.org@localhost>
date:      Sat Nov 30 13:46:58 2002 +0000

description:
Unfortunately, we can't really know if select collision is needed
until after wakeup event, so we can't clear the SI_COLL flag
in selrecord(). Thus, effectively back rev. 1.57 off.

Problem reported in PR kern/17517 by David Laight, program triggering
the problem is in regress/sys/kern/poll/poll3w.c.

diffstat:

 sys/kern/sys_generic.c |  8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diffs (30 lines):

diff -r 93cf0b5a9f08 -r d98eb026204e sys/kern/sys_generic.c
--- a/sys/kern/sys_generic.c    Sat Nov 30 13:46:26 2002 +0000
+++ b/sys/kern/sys_generic.c    Sat Nov 30 13:46:58 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: sys_generic.c,v 1.67 2002/11/29 19:48:22 jdolecek Exp $        */
+/*     $NetBSD: sys_generic.c,v 1.68 2002/11/30 13:46:58 jdolecek Exp $        */
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_generic.c,v 1.67 2002/11/29 19:48:22 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_generic.c,v 1.68 2002/11/30 13:46:58 jdolecek Exp $");
 
 #include "opt_ktrace.h"
 
@@ -939,10 +939,8 @@
        if (sip->sel_pid && (p = pfind(sip->sel_pid)) &&
            p->p_wchan == (caddr_t)&selwait)
                sip->sel_flags |= SI_COLL;
-       else {
-               sip->sel_flags &= ~SI_COLL;
+       else
                sip->sel_pid = mypid;
-       }
 }
 
 /*



Home | Main Index | Thread Index | Old Index