Skip to content

Commit

Permalink
base/platform: Only insert MEM and IO resources
Browse files Browse the repository at this point in the history
platform_device_del only checks the type of the resource in order to
call release_resource.

On the other hand, platform_device_add calls insert_resource for any
resource that has a parent.

Make both code branches balanced.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Ricardo Ribalda Delgado authored and Greg Kroah-Hartman committed Jun 1, 2015
1 parent e0fd9b1 commit 36d4b29
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions drivers/base/platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -341,19 +341,23 @@ int platform_device_add(struct platform_device *pdev)

for (i = 0; i < pdev->num_resources; i++) {
struct resource *p, *r = &pdev->resource[i];
unsigned long type = resource_type(r);

if (r->name == NULL)
r->name = dev_name(&pdev->dev);

if (!(type == IORESOURCE_MEM || type == IORESOURCE_IO))
continue;

p = r->parent;
if (!p) {
if (resource_type(r) == IORESOURCE_MEM)
if (type == IORESOURCE_MEM)
p = &iomem_resource;
else if (resource_type(r) == IORESOURCE_IO)
else if (type == IORESOURCE_IO)
p = &ioport_resource;
}

if (p && insert_resource(p, r)) {
if (insert_resource(p, r)) {
dev_err(&pdev->dev, "failed to claim resource %d\n", i);
ret = -EBUSY;
goto failed;
Expand Down

0 comments on commit 36d4b29

Please sign in to comment.