[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 10/22] target/arm: Define arm_cpu_do_unaligned_access for
Re: [PATCH v5 10/22] target/arm: Define arm_cpu_do_unaligned_access for CONFIG_USER_ONLY
Thu, 5 Dec 2019 16:12:09 +0000
On Fri, 11 Oct 2019 at 14:50, Richard Henderson
> We will need this to raise unaligned exceptions from user mode.
> Signed-off-by: Richard Henderson <address@hidden>
> target/arm/tlb_helper.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
> diff --git a/target/arm/tlb_helper.c b/target/arm/tlb_helper.c
> index 5feb312941..29b92a1149 100644
> --- a/target/arm/tlb_helper.c
> +++ b/target/arm/tlb_helper.c
> @@ -10,8 +10,6 @@
> #include "internals.h"
> #include "exec/exec-all.h"
> -#if !defined(CONFIG_USER_ONLY)
> static inline uint32_t merge_syn_data_abort(uint32_t template_syn,
> unsigned int target_el,
> bool same_el, bool ea,
> @@ -122,6 +120,7 @@ void arm_cpu_do_unaligned_access(CPUState *cs, vaddr
> arm_deliver_fault(cpu, vaddr, access_type, mmu_idx, &fi);
> +#ifndef CONFIG_USER_ONLY
> * arm_cpu_do_transaction_failed: handle a memory system error response
> * (eg "no device/memory present at address") by raising an external abort
Isn't this just enabling compilation of the softmmu
arm_cpu_do_unaligned_access() on linux-user? That codepath
does a lot of softmmu stuff including calling arm_deliver_fault()
(which implicitly does somewhat more looking at EL1 system
register state than we necessarily have set up correctly
for the user-mode code).
For arm_cpu_tlb_fill() which handles prefetch/data aborts
we just have a separate much simpler codepath for
CONFIG_USER_ONLY which doesn't call arm_deliver_fault().
I think being consistent here about how we handle the
CONFIG_USER_ONLY case would help avoid having a codepath
that isn't very well tested because it's only used in
the odd special case of unaligned-address exceptions.
|[Prev in Thread]
||[Next in Thread]|
- Re: [PATCH v5 10/22] target/arm: Define arm_cpu_do_unaligned_access for CONFIG_USER_ONLY,
Peter Maydell <=