--- drivers/acpi/scan.c | 2 ++ drivers/pnp/pnpacpi/rsparser.c | 3 +++ 2 files changed, 5 insertions(+) Index: linux/drivers/acpi/scan.c =================================================================== --- linux.orig/drivers/acpi/scan.c +++ linux/drivers/acpi/scan.c @@ -707,6 +707,8 @@ static void acpi_device_unregister(struc acpi_device_remove_files(device); device_unregister(&device->dev); + + device->handle = ERR_PTR(-ENODEV); } /* -------------------------------------------------------------------------- Index: linux/drivers/pnp/pnpacpi/rsparser.c =================================================================== --- linux.orig/drivers/pnp/pnpacpi/rsparser.c +++ linux/drivers/pnp/pnpacpi/rsparser.c @@ -611,6 +611,9 @@ int pnpacpi_build_resource_template(stru int res_cnt = 0; acpi_status status; + if (WARN_ON_ONCE(IS_ERR(handle))) + return PTR_ERR(handle); + status = acpi_walk_resources(handle, METHOD_NAME__CRS, pnpacpi_count_resources, &res_cnt); if (ACPI_FAILURE(status)) {