On 05/26/2015 02:09 AM, Aurelien Jarno wrote: > This is an important detail in case the base register is in the list > of registers to be loaded. If a page fault occurs this register might be > overwritten and when the instruction is later restarted the wrong > base register value is useD. > > Fix this by first loading the first and last value from memory, hence > triggering all possible page faults, and then the remaining registers. > > This fixes random segmentation faults seen in the guest. > > Cc: Alexander Graf <ag...@suse.de> > Cc: Richard Henderson <r...@twiddle.net> > Signed-off-by: Aurelien Jarno <aurel...@aurel32.net> > --- > target-s390x/translate.c | 128 > ++++++++++++++++++++++++++++++++++++----------- > 1 file changed, 99 insertions(+), 29 deletions(-) > > Changes v1->v2: > - Do the load in two steps: first and last registers, and then the remaining > ones
Reviewed-by: Richard Henderson <r...@twiddle.net> r~