> Date: Thu, 9 Sep 2021 17:03:54 +0200
> From: Martin Pieuchot <[email protected]>
> 
> The check to avoid a panic for contented rwlock(9) should be outside of 
> #ifdef DIAGNOSTIC.
> 
> ok?

ok kettenis@

> Index: kern//kern_synch.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/kern_synch.c,v
> retrieving revision 1.177
> diff -u -p -r1.177 kern_synch.c
> --- kern//kern_synch.c        4 Mar 2021 09:02:37 -0000       1.177
> +++ kern//kern_synch.c        9 Sep 2021 15:01:07 -0000
> @@ -556,7 +556,6 @@ wakeup_n(const volatile void *ident, int
>       qp = &slpque[LOOKUP(ident)];
>       for (p = TAILQ_FIRST(qp); p != NULL && n != 0; p = pnext) {
>               pnext = TAILQ_NEXT(p, p_runq);
> -#ifdef DIAGNOSTIC
>               /*
>                * If the rwlock passed to rwsleep() is contended, the
>                * CPU will end up calling wakeup() between sleep_setup()
> @@ -566,6 +565,7 @@ wakeup_n(const volatile void *ident, int
>                       KASSERT(p->p_stat == SONPROC);
>                       continue;
>               }
> +#ifdef DIAGNOSTIC
>               if (p->p_stat != SSLEEP && p->p_stat != SSTOP)
>                       panic("wakeup: p_stat is %d", (int)p->p_stat);
>  #endif
> 
> 

Reply via email to