summaryrefslogtreecommitdiff
path: root/kernels/linux-libre-rt/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.p...
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-02-06 13:54:04 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-02-06 16:03:06 -0300
commit59a96564f1779c50c83dee580f975abd20318535 (patch)
tree0416d4e0aa0d2c18b3776f7f02a6347e36fd2423 /kernels/linux-libre-rt/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch
parent68eb01d610164f0946cb88c5f21aba2b061d94f7 (diff)
downloadabslibre-59a96564f1779c50c83dee580f975abd20318535.tar.gz
abslibre-59a96564f1779c50c83dee580f975abd20318535.tar.bz2
abslibre-59a96564f1779c50c83dee580f975abd20318535.zip
linux-libre-rt-4.4.1_gnu.rt5-1: updating version
Diffstat (limited to 'kernels/linux-libre-rt/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch')
-rw-r--r--kernels/linux-libre-rt/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/kernels/linux-libre-rt/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch b/kernels/linux-libre-rt/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch
new file mode 100644
index 000000000..691ab79b9
--- /dev/null
+++ b/kernels/linux-libre-rt/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) {