diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-02-06 13:54:04 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-02-06 16:03:06 -0300 |
commit | 59a96564f1779c50c83dee580f975abd20318535 (patch) | |
tree | 0416d4e0aa0d2c18b3776f7f02a6347e36fd2423 /kernels/linux-libre-rt/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch | |
parent | 68eb01d610164f0946cb88c5f21aba2b061d94f7 (diff) | |
download | abslibre-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.patch | 24 |
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) { |