From: Jan Beulich Date: Wed, 28 Nov 2012 09:03:51 +0000 (+0100) Subject: ACPI: fix return value of XEN_PM_PDC platform op X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~7608 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9a61ad67506e53c7df34feaf30585ebf01ef0c28;p=xen.git ACPI: fix return value of XEN_PM_PDC platform op Should return -EFAULT when copying to guest memory fails. Once touching this code, also switch to using the more relaxed copy function (copying from the same guest memory already validated the virtual address range). Signed-off-by: Jan Beulich Acked-by: Keir Fraser --- diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c index bf30cc729a..f8a9c85eb9 100644 --- a/xen/drivers/acpi/pmstat.c +++ b/xen/drivers/acpi/pmstat.c @@ -521,8 +521,8 @@ int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE_PARAM(uint32) pdc) ACPI_PDC_SMP_C1PT) & ~mask; ret = arch_acpi_set_pdc_bits(acpi_id, bits, mask); } - if ( !ret ) - ret = copy_to_guest_offset(pdc, 2, bits + 2, 1); + if ( !ret && __copy_to_guest_offset(pdc, 2, bits + 2, 1) ) + ret = -EFAULT; return ret; }