diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 472418a0e0ca..1896ec78e88c 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c @@ -1303,10 +1303,13 @@ acpi_ec_space_handler(u32 function, acpi_physical_address address, if (ec->busy_polling || bits > 8) acpi_ec_burst_enable(ec); - for (i = 0; i < bytes; ++i, ++address, ++value) + for (i = 0; i < bytes; ++i, ++address, ++value) { result = (function == ACPI_READ) ? acpi_ec_read(ec, address, value) : acpi_ec_write(ec, address, *value); + if (result < 0) + break; + } if (ec->busy_polling || bits > 8) acpi_ec_burst_disable(ec);