summarylogtreecommitdiffstats
path: root/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.p...
diff options
context:
space:
mode:
authorLeonard König2016-02-16 23:58:56 +0100
committerLeonard König2016-02-16 23:58:56 +0100
commit652a55e72878640107f27d75afcd5a7900f20c58 (patch)
tree2eb1b189f3287225f8789efb650e9945de1182c8 /tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch
downloadaur-652a55e72878640107f27d75afcd5a7900f20c58.tar.gz
inital import from 72631d1
https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/linux&id=72631d167706af02e50a496a437691e4548878e4
Diffstat (limited to 'tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch')
-rw-r--r--tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch b/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch
new file mode 100644
index 000000000000..691ab79b9d2f
--- /dev/null
+++ b/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch
@@ -0,0 +1,24 @@
+diff --git a/drivers/base/platform.c b/drivers/base/platform.c
+index 1dd6d3b..176b59f 100644
+--- a/drivers/base/platform.c
++++ b/drivers/base/platform.c
+@@ -513,10 +513,15 @@ static int platform_drv_probe(struct device *_dev)
+ return ret;
+
+ ret = dev_pm_domain_attach(_dev, true);
+- if (ret != -EPROBE_DEFER && drv->probe) {
+- ret = drv->probe(dev);
+- if (ret)
+- dev_pm_domain_detach(_dev, true);
++ if (ret != -EPROBE_DEFER) {
++ if (drv->probe) {
++ ret = drv->probe(dev);
++ if (ret)
++ dev_pm_domain_detach(_dev, true);
++ } else {
++ /* don't fail if just dev_pm_domain_attach failed */
++ ret = 0;
++ }
+ }
+
+ if (drv->prevent_deferred_probe && ret == -EPROBE_DEFER) {