[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 6/7] arm64: xen: Enable user access before a privcmd hvc call



On Mon, 15 Aug 2016, Julien Grall wrote:
> Hi Catalin,
> 
> I have CCed Stefano who is maintaining the Xen ARM code in Linux.
> 
> On 12/08/2016 17:27, Catalin Marinas wrote:
> > Privcmd calls are issued by the userspace. The kernel needs to enable
> > access to TTBR0_EL1 as the hypervisor would issue stage 1 translations
> > to user memory via AT instructions. Since AT instructions are not
> > affected by the PAN bit (ARMv8.1), we only need the explicit
> > uaccess_enable/disable if the TTBR0 PAN option is enabled.
> > 
> > Cc: Julien Grall <julien.grall@xxxxxxx>
> > Cc: Will Deacon <will.deacon@xxxxxxx>
> > Cc: James Morse <james.morse@xxxxxxx>
> > Cc: Kees Cook <keescook@xxxxxxxxxxxx>
> > Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx>
> 
> Reviewed-by: Julien Grall <julien.grall@xxxxxxx>
> 
> Regards,
> 
> > ---
> >  arch/arm64/xen/hypercall.S | 18 ++++++++++++++++++
> >  1 file changed, 18 insertions(+)
> > 
> > diff --git a/arch/arm64/xen/hypercall.S b/arch/arm64/xen/hypercall.S
> > index 329c8027b0a9..4c509f4f4dcc 100644
> > --- a/arch/arm64/xen/hypercall.S
> > +++ b/arch/arm64/xen/hypercall.S
> > @@ -91,6 +91,24 @@ ENTRY(privcmd_call)
> >     mov x2, x3
> >     mov x3, x4
> >     mov x4, x5
> > +#ifdef CONFIG_ARM64_TTBR0_PAN
> > +   /*
> > +    * Privcmd calls are issued by the userspace. The kernel needs to
> > +    * enable access to TTBR0_EL1 as the hypervisor would issue stage 1
> > +    * translations to user memory via AT instructions. Since AT
> > +    * instructions are not affected by the PAN bit (ARMv8.1), we only
> > +    * need the explicit uaccess_enable/disable if the TTBR0 PAN option is
> > +    * enabled.

That's a pity but it is how it is.

Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>

Given that the patch is part of your PAN series, I expect that it is
going to go via your tree.


> > +   uaccess_enable x6, x7, x8
> > +#endif
> >     hvc XEN_IMM
> > +
> > +#ifdef CONFIG_ARM64_TTBR0_PAN
> > +   /*
> > +    * Disable userspace access from kernel once the hyp call completed.
> > +    */
> > +   uaccess_disable x6
> > +#endif
> >     ret
> >  ENDPROC(privcmd_call);
> > 
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> > 
> 
> -- 
> Julien Grall
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.