On Friday, July 03, 2015 11:56:53 AM Dan Carpenter wrote: > We should return -ENOMEM if ioremap() fails. > > Fixes: 4483d59e29fe ('ACPI / LPSS: check the result of ioremap()') > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > > diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c > index 569ee09..10bf5c7 100644 > --- a/drivers/acpi/acpi_lpss.c > +++ b/drivers/acpi/acpi_lpss.c > @@ -352,8 +352,10 @@ static int acpi_lpss_create_device(struct acpi_device *adev, > pdata->mmio_size = resource_size(rentry->res); > pdata->mmio_base = ioremap(rentry->res->start, > pdata->mmio_size); > - if (!pdata->mmio_base) > + if (!pdata->mmio_base) { > + ret = -ENOMEM; > goto err_out; > + } > break; > } This looks insufficient to my eyes, as we leak memory here too. What about the following instead? --- From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> Subject: ACPI / LPSS: Fix up acpi_lpss_create_device() Fix a return value (which should be a negative error code) and a memory leak (the list allocated by acpi_dev_get_resources() needs to be freed on ioremap() errors too) in acpi_lpss_create_device() introduced by commit 4483d59e29fe 'ACPI / LPSS: check the result of ioremap()'. Fixes: 4483d59e29fe 'ACPI / LPSS: check the result of ioremap()' Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> Cc: 4.0+ <stable@xxxxxxxxxxxxxxx> # 4.0+ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> --- drivers/acpi/acpi_lpss.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) Index: linux-pm/drivers/acpi/acpi_lpss.c =================================================================== --- linux-pm.orig/drivers/acpi/acpi_lpss.c +++ linux-pm/drivers/acpi/acpi_lpss.c @@ -352,13 +352,16 @@ static int acpi_lpss_create_device(struc pdata->mmio_size = resource_size(rentry->res); pdata->mmio_base = ioremap(rentry->res->start, pdata->mmio_size); - if (!pdata->mmio_base) - goto err_out; break; } acpi_dev_free_resource_list(&resource_list); + if (!pdata->mmio_base) { + ret = -ENOMEM; + goto err_out; + } + pdata->dev_desc = dev_desc; if (dev_desc->setup) -- 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