|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 6/8] x86: rename copy_{from,to}_user() to copy_{from,to}_guest_pv()
On Wed, Feb 17, 2021 at 09:22:32AM +0100, Jan Beulich wrote:
> Bring them (back) in line with __copy_{from,to}_guest_pv(). Since it
> falls in the same group, also convert clear_user(). Instead of adjusting
> __raw_clear_guest(), drop it - it's unused and would require a non-
> checking __clear_guest_pv() which we don't have.
>
> Add previously missing __user at some call sites and in the function
> declarations.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
>
> --- a/xen/arch/x86/pv/emul-inv-op.c
> +++ b/xen/arch/x86/pv/emul-inv-op.c
> @@ -33,7 +33,7 @@ static int emulate_forced_invalid_op(str
> eip = regs->rip;
>
> /* Check for forced emulation signature: ud2 ; .ascii "xen". */
> - if ( (rc = copy_from_user(sig, (char *)eip, sizeof(sig))) != 0 )
> + if ( (rc = copy_from_guest_pv(sig, (char __user *)eip, sizeof(sig))) !=
> 0 )
> {
> pv_inject_page_fault(0, eip + sizeof(sig) - rc);
> return EXCRET_fault_fixed;
> @@ -43,7 +43,8 @@ static int emulate_forced_invalid_op(str
> eip += sizeof(sig);
>
> /* We only emulate CPUID. */
> - if ( ( rc = copy_from_user(instr, (char *)eip, sizeof(instr))) != 0 )
> + if ( (rc = copy_from_guest_pv(instr, (char __user *)eip,
> + sizeof(instr))) != 0 )
> {
> pv_inject_page_fault(0, eip + sizeof(instr) - rc);
> return EXCRET_fault_fixed;
> --- a/xen/arch/x86/pv/iret.c
> +++ b/xen/arch/x86/pv/iret.c
> @@ -54,8 +54,8 @@ unsigned long do_iret(void)
> struct iret_context iret_saved;
> struct vcpu *v = current;
>
> - if ( unlikely(copy_from_user(&iret_saved, (void *)regs->rsp,
> - sizeof(iret_saved))) )
> + if ( unlikely(copy_from_guest_pv(&iret_saved, (void __user *)regs->rsp,
> + sizeof(iret_saved))) )
> {
> gprintk(XENLOG_ERR,
> "Fault while reading IRET context from guest stack\n");
> --- a/xen/arch/x86/pv/ro-page-fault.c
> +++ b/xen/arch/x86/pv/ro-page-fault.c
> @@ -90,7 +90,8 @@ static int ptwr_emulated_update(unsigned
>
> /* Align address; read full word. */
> addr &= ~(sizeof(full) - 1);
> - if ( (rc = copy_from_user(&full, (void *)addr, sizeof(full))) != 0 )
> + if ( (rc = copy_from_guest_pv(&full, (void __user *)addr,
> + sizeof(full))) != 0 )
> {
> x86_emul_pagefault(0, /* Read fault. */
> addr + sizeof(full) - rc,
> --- a/xen/arch/x86/usercopy.c
> +++ b/xen/arch/x86/usercopy.c
> @@ -109,19 +109,17 @@ unsigned int copy_from_guest_ll(void *to
> #if GUARD(1) + 0
>
> /**
> - * copy_to_user: - Copy a block of data into user space.
> - * @to: Destination address, in user space.
> - * @from: Source address, in kernel space.
> + * copy_to_guest_pv: - Copy a block of data into guest space.
I would expand to 'PV guest' here and below, FAOD.
Thanks, Roger.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |