platform: Print the resource range if device failed to claim
authorChen Yu <yu.c.chen@intel.com>
Wed, 21 Dec 2016 09:24:55 +0000 (17:24 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 Jan 2017 08:29:33 +0000 (09:29 +0100)
Sometimes we have the following error message:
 platform MSFT0101:00: failed to claim resource 1
 acpi MSFT0101:00: platform device creation failed: -16
But there is not enough information to figure out which resource range
failed to claim.

Thus print the resource range at first-place thus /proc/iomem or
ioports should tell us who already claimed this resource, then
the driver bug or incorrect resource assignment which is running
into this conflict can be diagnosed:
 platform MSFT0101:00: failed to claim resource 1: [mem 0xfed40000-0xfed40fff]
 acpi MSFT0101:00: platform device creation failed: -16

Suggested-by: Len Brown <lenb@kernel.org>
Reported-by: Wendy Wang <wendy.wang@intel.com>
Signed-off-by: Chen Yu <yu.c.chen@intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/platform.c

index c4af00385502ffd9039bc73d1eccc2eedef33ce4..22a6430aadc36d91ea6aa7d2583ef40dd932c35a 100644 (file)
@@ -396,7 +396,7 @@ int platform_device_add(struct platform_device *pdev)
                }
 
                if (p && insert_resource(p, r)) {
-                       dev_err(&pdev->dev, "failed to claim resource %d\n", i);
+                       dev_err(&pdev->dev, "failed to claim resource %d: %pR\n", i, r);
                        ret = -EBUSY;
                        goto failed;
                }