summaryrefslogtreecommitdiff
path: root/libre/linux-libre/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-02 09:58:28 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-02-02 10:11:55 -0300
commitb217b6b81133093f5082a5fb3cb3ac6399b5c37d (patch)
tree49a684db058aed8fcf22b94add8435e304d95f5e /libre/linux-libre/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch
parenta0b0991093e0d927914ae86da8fb0a9a28932752 (diff)
downloadabslibre-b217b6b81133093f5082a5fb3cb3ac6399b5c37d.tar.gz
abslibre-b217b6b81133093f5082a5fb3cb3ac6399b5c37d.tar.bz2
abslibre-b217b6b81133093f5082a5fb3cb3ac6399b5c37d.zip
linux-libre-4.4.1_gnu-1: updating version
* fix debug output - FS#47849 -> https://bugs.archlinux.org/task/47849 * fix FS#47757 -> https://bugs.archlinux.org/task/47757
Diffstat (limited to 'libre/linux-libre/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch')
-rw-r--r--libre/linux-libre/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/libre/linux-libre/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch b/libre/linux-libre/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch
new file mode 100644
index 000000000..691ab79b9
--- /dev/null
+++ b/libre/linux-libre/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) {