diff options
author | Jan Beulich <jbeulich@suse.com> | 2012-12-06 11:10:15 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2012-12-06 11:10:15 +0100 |
commit | 4cf85f33a7a564a40edc7ef961d02c342dc42b40 (patch) | |
tree | a991807ba2be4071d8a683cb6752e60eb0ec7627 | |
parent | cd7dc899a6dad96aa3df23e29c55110eb18e3ec3 (diff) | |
download | xen-4cf85f33a7a564a40edc7ef961d02c342dc42b40.tar.gz xen-4cf85f33a7a564a40edc7ef961d02c342dc42b40.tar.bz2 xen-4cf85f33a7a564a40edc7ef961d02c342dc42b40.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>
xen-unstable changeset: 26196:5faf5b8b702e
xen-unstable date: Wed Nov 28 09:03:51 UTC 2012
-rw-r--r-- | xen/drivers/acpi/pmstat.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c index 909426901f..336966c368 100644 --- a/xen/drivers/acpi/pmstat.c +++ b/xen/drivers/acpi/pmstat.c @@ -523,8 +523,8 @@ int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE(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; } |