summaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorUwe Kleine-König2015-11-13 09:14:20 +0100
committerGreg Kroah-Hartman2016-02-10 02:39:33 +0100
commit67d02a1bbb334558e9380409a3cd426b36d4578b (patch)
tree62755f35efb5515d532ed25dbdce830c7f46a602 /drivers/base
parentdriver-core: platform: fix typo in documentation for multi-driver helper (diff)
downloadkernel-qcow2-linux-67d02a1bbb334558e9380409a3cd426b36d4578b.tar.gz
kernel-qcow2-linux-67d02a1bbb334558e9380409a3cd426b36d4578b.tar.xz
kernel-qcow2-linux-67d02a1bbb334558e9380409a3cd426b36d4578b.zip
driver-core: platform: probe of-devices only using list of compatibles
There are several indications that make a platform device match a platform driver. For devices that are instantiated by a device tree matching by name, id table or acpi mechanisms doesn't make sense and might result in surprising effects. So limit matching to use the driver's of_match_table for these. Acked-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/platform.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index f437afa17f2b..1b5b7b5b50c0 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -949,8 +949,8 @@ static int platform_match(struct device *dev, struct device_driver *drv)
return !strcmp(pdev->driver_override, drv->name);
/* Attempt an OF style match first */
- if (of_driver_match_device(dev, drv))
- return 1;
+ if (pdev->dev.of_node)
+ return of_driver_match_device(dev, drv);
/* Then try ACPI style match */
if (acpi_driver_match_device(dev, drv))