@@ -309,6 +309,8 @@ static void acpi_device_release(struct d
struct acpi_device *acpi_dev = to_acpi_device(dev);
kfree(acpi_dev->pnp.cid_list);
+ kfree(acpi_dev->pnp.hardware_id);
+ kfree(acpi_dev->pnp.unique_id);
kfree(acpi_dev);
}
@@ -1359,6 +1361,8 @@ end:
*child = device;
else {
kfree(device->pnp.cid_list);
+ kfree(device->pnp.hardware_id);
+ kfree(device->pnp.unique_id);
kfree(device);
}
@@ -186,8 +186,8 @@ struct acpi_device_pnp {
#define acpi_device_bid(d) ((d)->pnp.bus_id)
#define acpi_device_adr(d) ((d)->pnp.bus_address)
-#define acpi_device_hid(d) ((d)->pnp.hardware_id)
-#define acpi_device_uid(d) ((d)->pnp.unique_id)
+#define acpi_device_hid(d) ((d)->pnp.hardware_id ? (d)->pnp.hardware_id : "\0")
+#define acpi_device_uid(d) ((d)->pnp.unique_id ? (d)->pnp.unique_id : "\0")
#define acpi_device_name(d) ((d)->pnp.device_name)
#define acpi_device_class(d) ((d)->pnp.device_class)