Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Mar 2017 11:18:12 -0300
From:      =?UTF-8?B?T3RhY8OtbGlv?= <otacilio.neto@bsd.com.br>
To:        freebsd-arm@freebsd.org
Subject:   Re: A potential fix for arm64's: sh`forkshell child-process path after fork sometimes has a bad stack pointer value
Message-ID:  <f4f18f66-03c2-640c-fa85-aabe08434f08@bsd.com.br>
In-Reply-To: <3BC697B9-4A3E-49FF-AB11-1106E2EF8399@dsl-only.net>
References:  <DC3CC3BE-9D8C-41ED-ADD0-AFD4019B2E90@dsl-only.net> <2D04FF37-DEC8-42CE-961D-AE8CD58A0EAA@dsl-only.net> <93064627-5F72-4167-90B1-0A98ABF4C99C@dsl-only.net> <3BC697B9-4A3E-49FF-AB11-1106E2EF8399@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Em 14/02/2017 13:35, Mark Millard escreveu:
> The following change has let my test run for 8.5 hours so far without a
> fork-failure in sh`forkshell :
>
> # svnlite diff /usr/src/sys/arm64/arm64/swtch.S
> Index: /usr/src/sys/arm64/arm64/swtch.S
> ===================================================================
> --- /usr/src/sys/arm64/arm64/swtch.S    (revision 312982)
> +++ /usr/src/sys/arm64/arm64/swtch.S    (working copy)
> @@ -241,6 +241,12 @@
>          mov     fp, #0  /* Stack traceback stops here. */
>          bl      _C_LABEL(fork_exit)
>   
> +       /*
> +        * Disable interrupts to avoid
> +        * overwriting sp_el0 and spsr_el1 by an IRQ exception.
> +        */
> +       msr     daifset, #2
> +
>          /* Restore sp and lr */
>          ldp     x0, x1, [sp]
>          msr     sp_el0, x0
> @@ -263,12 +269,6 @@
>          ldp     x28, x29, [sp, #TF_X + 28 * 8]
>          /* Skip x30 as it was restored above as lr */
>   
> -       /*
> -        * Disable interrupts to avoid
> -        * overwriting spsr_el1 by an IRQ exception.
> -        */
> -       msr     daifset, #2
> -
>          /* Restore elr and spsr */
>          ldp     x0, x1, [sp, #16]
>          msr     elr_el1, x0
>
> I'm going to switch to attempting a self-hosted buildworld
> buildkernel again.
>
> ===
> Mark Millard
> markmi at dsl-only.net
>
>
> _______________________________________________
> freebsd-arm@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"


This patch or some other about this bug was committed to HEAD?

[]'s

-Otacilio




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f4f18f66-03c2-640c-fa85-aabe08434f08>