On Thursday, November 04, 2010 11:39:30 am Dmitry Torokhov wrote: > pnp_add_device() may fail so we need to handle errors and avoid leaking > memory. Also, do not use ACPI-specific return codes (AE_OK) but rather > standard ones. I think this is generally a good thing. You probably found this by inspection, but if there's a bug report, please include the URL. Would you consider fixing the similar leaks and failure path issues in isapnp and pnpbios at the same time? > Signed-off-by: Dmitry Torokhov <dtor@xxxxxxx> > --- > > drivers/pnp/pnpacpi/core.c | 13 ++++++++++--- > 1 files changed, 10 insertions(+), 3 deletions(-) > > > diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c > index 2d73dfc..06ee06c 100644 > --- a/drivers/pnp/pnpacpi/core.c > +++ b/drivers/pnp/pnpacpi/core.c > @@ -194,8 +194,9 @@ static char *pnpacpi_get_id(struct acpi_device *device) > > static int __init pnpacpi_add_device(struct acpi_device *device) > { > - acpi_handle temp = NULL; > + acpi_handle temp; > acpi_status status; > + int error; > struct pnp_dev *dev; > char *pnpid; > struct acpi_hardware_id *id; > @@ -256,10 +257,16 @@ static int __init pnpacpi_add_device(struct acpi_device *device) > /* clear out the damaged flags */ > if (!dev->active) > pnp_init_resources(dev); > - pnp_add_device(dev); > + > + error = pnp_add_device(dev); > + if (error) { > + put_device(&dev->dev); > + return error; > + } > + > num++; > > - return AE_OK; > + return 0; The acpi_get_devices() usage of pnpacpi_add_device() expects an acpi_status return value, so maybe we should leave this same and change the pnpacpi_add_device() return type from "int" to "acpi_status"? > } > > static acpi_status __init pnpacpi_add_device_handler(acpi_handle handle, Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html