[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/4] linux-user/sparc: Put address for data faul
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH 3/4] linux-user/sparc: Put address for data faults where linux-user expects it |
Date: |
Tue, 7 Nov 2017 09:20:13 +0000 |
On 7 November 2017 at 08:28, Laurent Vivier <address@hidden> wrote:
> Le 06/11/2017 à 19:33, Peter Maydell a écrit :
>> In the user-mode-only version of sparc_cpu_handle_mmu_fault(),
>> we must save the fault address for a data fault into the CPU
>> state's mmu registers, because the code in linux-user/main.c
>> expects to find it there in order to populate the si_addr
>> field of the guest siginfo.
>>
>> Signed-off-by: Peter Maydell <address@hidden>
>> ---
>> target/sparc/mmu_helper.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/target/sparc/mmu_helper.c b/target/sparc/mmu_helper.c
>> index 126ea5e..d5b6c1e 100644
>> --- a/target/sparc/mmu_helper.c
>> +++ b/target/sparc/mmu_helper.c
>> @@ -30,10 +30,18 @@
>> int sparc_cpu_handle_mmu_fault(CPUState *cs, vaddr address, int rw,
>> int mmu_idx)
>> {
>> + SPARCCPU *cpu = SPARC_CPU(cs);
>> + CPUSPARCState *env = &cpu->env;
>> +
>> if (rw & 2) {
>> cs->exception_index = TT_TFAULT;
>> } else {
>> cs->exception_index = TT_DFAULT;
>> +#ifdef TARGET_SPARC64
>> + env->dmmu.mmuregs[4] = address;
>> +#else
>> + env->mmuregs[4] = address;
>> +#endif
>> }
>> return 1;
>> }
>>
>
> The softmmu version of sparc_cpu_handle_mmu_fault() also updates
> mmuregs[3]. Is it needed for this one (for ucontext)?
Nothing in linux-user/ reads mmuregs[3], so I assume not.
thanks
-- PMM
- [Qemu-devel] [PATCH 1/4] linux-user/s390x: Mask si_addr for SIGSEGV, (continued)
- [Qemu-devel] [PATCH 1/4] linux-user/s390x: Mask si_addr for SIGSEGV, Peter Maydell, 2017/11/06
- [Qemu-devel] [PATCH 4/4] linux-user: Handle rt_sigaction correctly for SPARC, Peter Maydell, 2017/11/06
- [Qemu-devel] [PATCH 3/4] linux-user/sparc: Put address for data faults where linux-user expects it, Peter Maydell, 2017/11/06
- [Qemu-devel] [PATCH 2/4] linux-user/ppc: Report correct fault address for data faults, Peter Maydell, 2017/11/06
- Re: [Qemu-devel] [PATCH 0/4] linux-user: fix various SIGSEGV delivery bugs, Riku Voipio, 2017/11/07