diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-07-07 00:31:47 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-08-03 09:29:14 -0700 |
commit | af3cc7722632f36dd8e05c63d1d261d8fc543487 (patch) | |
tree | 282610d86c9f7cf66300a3acbbc3ccae7d1390dc | |
parent | 3dfbf8770ae059d73ee34e7c49c0f628863be932 (diff) | |
download | lwn-af3cc7722632f36dd8e05c63d1d261d8fc543487.tar.gz lwn-af3cc7722632f36dd8e05c63d1d261d8fc543487.zip |
ACPI / LPSS: Fix up acpi_lpss_create_device()
commit d3e13ff3c1aa2403d9a5f371baac088daeb8f56d upstream.
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@oracle.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/acpi/acpi_lpss.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c index 37fb19047603..73f056a597a9 100644 --- a/drivers/acpi/acpi_lpss.c +++ b/drivers/acpi/acpi_lpss.c @@ -352,13 +352,16 @@ 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) - 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) |