diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 97168d4..961b327 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c @@ -538,7 +538,7 @@ static u32 acpi_ec_gpe_handler(void *data) state = acpi_ec_read_status(ec); gpe_transaction(ec, state); - if ((status & ACPI_EC_FLAG_IBF) == 0) + if (ec_transaction_done(ec) && (status & ACPI_EC_FLAG_IBF) == 0) wake_up(&ec->wait); status = ec_check_sci(ec, state);