aboutsummaryrefslogtreecommitdiffstats
path: root/xen/drivers/acpi
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2012-11-28 10:03:51 +0100
committerJan Beulich <jbeulich@suse.com>2012-11-28 10:03:51 +0100
commit9a61ad67506e53c7df34feaf30585ebf01ef0c28 (patch)
tree21afb470e38580b2c256c60e50f404320e273657 /xen/drivers/acpi
parent79ea67d7a7f8aee357232680ca114e0d773b8a5e (diff)
downloadxen-9a61ad67506e53c7df34feaf30585ebf01ef0c28.tar.gz
xen-9a61ad67506e53c7df34feaf30585ebf01ef0c28.tar.bz2
xen-9a61ad67506e53c7df34feaf30585ebf01ef0c28.zip
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 <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/drivers/acpi')
-rw-r--r--xen/drivers/acpi/pmstat.c4
1 files changed, 2 insertions, 2 deletions
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;
}