Le 22/03/2018 à 12:13, Laurent Vivier a écrit : > Le 22/03/2018 à 12:07, Peter Maydell a écrit : >> On 22 March 2018 at 11:05, Peter Maydell <peter.mayd...@linaro.org> wrote: >>> On 22 March 2018 at 10:36, Laurent Vivier <laur...@vivier.eu> wrote: >>>> It goes wrong in this part: >>>> >>>> + */ >>>> + if (is_write && info->si_signo == SIGSEGV && info->si_code == >>>> SEGV_ACCERR && >>>> + h2g_valid(address)) { >>>> >>>> Because, on ppc, si_code is SEGV_MAPERR and not SEGV_ACCERR >>>> (on x86_64, si_code is SEGV_ACCERR as expected) >>> >>> So on PPC if you have a page mapped, and you access it with >>> the wrong permissions, you get SEGV_MAPERR? This seems like >>> a host kernel bug to me. >> >> ...in particular, kernel commit ecb101aed86156e (dated Dec 2017) >> fixes a regression introduced in commit c3350602e876 that broke >> the ppc kernels so they started returning SEGV_MAPERR here >> instead of SEGV_ACCERR. Presumably your host kernel is missing >> this fix. > > Yes, you're right, my kernel is 4.14-rc1 (6e80ecd) with > c3350602e876 but without ecb101aed86156e. > > I'm going to update it.
Re-tested with 4.16-rc6 on ppc32 and it works fine. Thanks, Laurent