X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Facpi%2Fsystem.c;h=9919e76d7d49ccde3585b14a1263ec0d0e5b5758;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=892184a9e25d77671bbaac1268a82c197470c29b;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/drivers/acpi/system.c b/drivers/acpi/system.c index 892184a9e..9919e76d7 100644 --- a/drivers/acpi/system.c +++ b/drivers/acpi/system.c @@ -92,8 +92,7 @@ acpi_system_read_dsdt ( { acpi_status status = AE_OK; struct acpi_buffer dsdt = {ACPI_ALLOCATE_BUFFER, NULL}; - void *data = 0; - size_t size = 0; + ssize_t res; ACPI_FUNCTION_TRACE("acpi_system_read_dsdt"); @@ -101,22 +100,11 @@ acpi_system_read_dsdt ( if (ACPI_FAILURE(status)) return_VALUE(-ENODEV); - if (*ppos < dsdt.length) { - data = dsdt.pointer + file->f_pos; - size = dsdt.length - file->f_pos; - if (size > count) - size = count; - if (copy_to_user(buffer, data, size)) { - acpi_os_free(dsdt.pointer); - return_VALUE(-EFAULT); - } - } - + res = simple_read_from_buffer(buffer, count, ppos, + dsdt.pointer, dsdt.length); acpi_os_free(dsdt.pointer); - *ppos += size; - - return_VALUE(size); + return_VALUE(res); } @@ -135,8 +123,7 @@ acpi_system_read_fadt ( { acpi_status status = AE_OK; struct acpi_buffer fadt = {ACPI_ALLOCATE_BUFFER, NULL}; - void *data = 0; - size_t size = 0; + ssize_t res; ACPI_FUNCTION_TRACE("acpi_system_read_fadt"); @@ -144,22 +131,11 @@ acpi_system_read_fadt ( if (ACPI_FAILURE(status)) return_VALUE(-ENODEV); - if (*ppos < fadt.length) { - data = fadt.pointer + file->f_pos; - size = fadt.length - file->f_pos; - if (size > count) - size = count; - if (copy_to_user(buffer, data, size)) { - acpi_os_free(fadt.pointer); - return_VALUE(-EFAULT); - } - } - + res = simple_read_from_buffer(buffer, count, ppos, + fadt.pointer, fadt.length); acpi_os_free(fadt.pointer); - *ppos += size; - - return_VALUE(size); + return_VALUE(res); }