summaryrefslogtreecommitdiff
path: root/libre-testing/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-01-21 00:27:55 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-01-21 00:35:15 -0300
commitce324b167a332c796db3fe8974bc07f04a4b2fd0 (patch)
tree04c0b747684bbf39dd6e3075b5665e70ce1b7e32 /libre-testing/linux-libre/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch
parent65690072f7f4415677c84ea10eb2d5830e22cb41 (diff)
downloadabslibre-ce324b167a332c796db3fe8974bc07f04a4b2fd0.tar.gz
abslibre-ce324b167a332c796db3fe8974bc07f04a4b2fd0.tar.bz2
abslibre-ce324b167a332c796db3fe8974bc07f04a4b2fd0.zip
linux-libre-4.4_gnu-4: updating revision
* fix sdhci broken on some boards - FS#47778 -> https://bugs.archlinux.org/task/47778 * fix kernel panics on platform modules - FS#47805 -> https://bugs.archlinux.org/task/47805 * fix CVE-2016-0728 - FS#47820 -> https://bugs.archlinux.org/task/47820
Diffstat (limited to 'libre-testing/linux-libre/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch')
-rw-r--r--libre-testing/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-testing/linux-libre/tpmdd-devel-v3-base-platform-fix-binding-for-drivers-without-probe-callback.patch b/libre-testing/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-testing/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) {