Applied, thanks!

gfleury, le lun. 11 mai 2026 13:45:09 +0100, a ecrit:
> This fix a kernel crash building hurd under smp
> ---
>  kern/sched_prim.c | 4 ++--
>  kern/thread.c     | 3 ++-
>  2 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/kern/sched_prim.c b/kern/sched_prim.c
> index 605f7001..c1b809be 100644
> --- a/kern/sched_prim.c
> +++ b/kern/sched_prim.c
> @@ -1272,7 +1272,7 @@ void thread_setrun(
>            *  But first check the last processor it ran on.
>            */
>           processor = th->last_processor;
> -         if (processor->state == PROCESSOR_IDLE) {
> +         if (processor != PROCESSOR_NULL && processor->state == 
> PROCESSOR_IDLE) {
>                   processor_lock(processor);
>                   pset_idle_lock();
>                   if ((processor->state == PROCESSOR_IDLE)
> @@ -1334,7 +1334,7 @@ void thread_setrun(
>            *  Bound, can only run on bound processor.  Have to lock
>            *  processor here because it may not be the current one.
>            */
> -         if (processor->state == PROCESSOR_IDLE) {
> +         if (processor != PROCESSOR_NULL && processor->state == 
> PROCESSOR_IDLE) {
>               processor_lock(processor);
>               pset = processor->processor_set;
>               pset_idle_lock();
> diff --git a/kern/thread.c b/kern/thread.c
> index deb9688d..fa6bab72 100644
> --- a/kern/thread.c
> +++ b/kern/thread.c
> @@ -1292,7 +1292,8 @@ thread_dowait(
>                    *  should cause the thread to take an ast and
>                    *  context switch to suspend for us.
>                    */
> -                 cause_ast_check(thread->last_processor);
> +                 if (thread->last_processor != PROCESSOR_NULL)
> +                    cause_ast_check(thread->last_processor);
>  #endif       /* NCPUS > 1 */
>  
>                   /*
> -- 
> 2.53.0
> 
> 

-- 
Samuel
c> [ ] morning [ ] afternoon [ ] evening [ ] night , everyone (choose as 
applicable)

Reply via email to