]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 13 May 2019 07:49:06 +0000 (09:49 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 13 May 2019 07:49:06 +0000 (09:49 +0200)
added patches:
hwmon-pwm-fan-disable-pwm-if-fetching-cooling-data-fails.patch
kernfs-fix-barrier-usage-in-__kernfs_new_node.patch
platform-x86-sony-laptop-fix-unintentional-fall-through.patch
platform-x86-thinkpad_acpi-disable-bluetooth-for-some-machines.patch

queue-4.14/hwmon-pwm-fan-disable-pwm-if-fetching-cooling-data-fails.patch [new file with mode: 0644]
queue-4.14/kernfs-fix-barrier-usage-in-__kernfs_new_node.patch [new file with mode: 0644]
queue-4.14/platform-x86-sony-laptop-fix-unintentional-fall-through.patch [new file with mode: 0644]
queue-4.14/platform-x86-thinkpad_acpi-disable-bluetooth-for-some-machines.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/hwmon-pwm-fan-disable-pwm-if-fetching-cooling-data-fails.patch b/queue-4.14/hwmon-pwm-fan-disable-pwm-if-fetching-cooling-data-fails.patch
new file mode 100644 (file)
index 0000000..5671c6c
--- /dev/null
@@ -0,0 +1,34 @@
+From 53f1647da3e8fb3e89066798f0fdc045064d353d Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <stefan.wahren@i2se.com>
+Date: Wed, 3 Apr 2019 14:48:33 +0200
+Subject: hwmon: (pwm-fan) Disable PWM if fetching cooling data fails
+
+From: Stefan Wahren <stefan.wahren@i2se.com>
+
+commit 53f1647da3e8fb3e89066798f0fdc045064d353d upstream.
+
+In case pwm_fan_of_get_cooling_data() fails we should disable the PWM
+just like in the other error cases.
+
+Fixes: 2e5219c77183 ("hwmon: (pwm-fan) Read PWM FAN configuration from device tree")
+Cc: <stable@vger.kernel.org> # 4.14+
+Reported-by: Guenter Rock <linux@roeck-us.net>
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hwmon/pwm-fan.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/hwmon/pwm-fan.c
++++ b/drivers/hwmon/pwm-fan.c
+@@ -250,7 +250,7 @@ static int pwm_fan_probe(struct platform
+       ret = pwm_fan_of_get_cooling_data(&pdev->dev, ctx);
+       if (ret)
+-              return ret;
++              goto err_pwm_disable;
+       ctx->pwm_fan_state = ctx->pwm_fan_max_state;
+       if (IS_ENABLED(CONFIG_THERMAL)) {
diff --git a/queue-4.14/kernfs-fix-barrier-usage-in-__kernfs_new_node.patch b/queue-4.14/kernfs-fix-barrier-usage-in-__kernfs_new_node.patch
new file mode 100644 (file)
index 0000000..50af0dd
--- /dev/null
@@ -0,0 +1,38 @@
+From 998267900cee901c5d1dfa029a6304d00acbc29f Mon Sep 17 00:00:00 2001
+From: Andrea Parri <andrea.parri@amarulasolutions.com>
+Date: Tue, 16 Apr 2019 14:17:11 +0200
+Subject: kernfs: fix barrier usage in __kernfs_new_node()
+
+From: Andrea Parri <andrea.parri@amarulasolutions.com>
+
+commit 998267900cee901c5d1dfa029a6304d00acbc29f upstream.
+
+smp_mb__before_atomic() can not be applied to atomic_set().  Remove the
+barrier and rely on RELEASE synchronization.
+
+Fixes: ba16b2846a8c6 ("kernfs: add an API to get kernfs node from inode number")
+Cc: stable@vger.kernel.org
+Signed-off-by: Andrea Parri <andrea.parri@amarulasolutions.com>
+Acked-by: Tejun Heo <tj@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/kernfs/dir.c |    5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+--- a/fs/kernfs/dir.c
++++ b/fs/kernfs/dir.c
+@@ -649,11 +649,10 @@ static struct kernfs_node *__kernfs_new_
+       kn->id.generation = gen;
+       /*
+-       * set ino first. This barrier is paired with atomic_inc_not_zero in
++       * set ino first. This RELEASE is paired with atomic_inc_not_zero in
+        * kernfs_find_and_get_node_by_ino
+        */
+-      smp_mb__before_atomic();
+-      atomic_set(&kn->count, 1);
++      atomic_set_release(&kn->count, 1);
+       atomic_set(&kn->active, KN_DEACTIVATED_BIAS);
+       RB_CLEAR_NODE(&kn->rb);
diff --git a/queue-4.14/platform-x86-sony-laptop-fix-unintentional-fall-through.patch b/queue-4.14/platform-x86-sony-laptop-fix-unintentional-fall-through.patch
new file mode 100644 (file)
index 0000000..e7870c1
--- /dev/null
@@ -0,0 +1,53 @@
+From 1cbd7a64959d33e7a2a1fa2bf36a62b350a9fcbd Mon Sep 17 00:00:00 2001
+From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
+Date: Wed, 24 Apr 2019 13:09:34 -0500
+Subject: platform/x86: sony-laptop: Fix unintentional fall-through
+
+From: Gustavo A. R. Silva <gustavo@embeddedor.com>
+
+commit 1cbd7a64959d33e7a2a1fa2bf36a62b350a9fcbd upstream.
+
+It seems that the default case should return AE_CTRL_TERMINATE, instead
+of falling through to case ACPI_RESOURCE_TYPE_END_TAG and returning AE_OK;
+otherwise the line of code at the end of the function is unreachable and
+makes no sense:
+
+return AE_CTRL_TERMINATE;
+
+This fix is based on the following thread of discussion:
+
+https://lore.kernel.org/patchwork/patch/959782/
+
+Fixes: 33a04454527e ("sony-laptop: Add SNY6001 device handling (sonypi reimplementation)")
+Cc: stable@vger.kernel.org
+Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
+Reviewed-by: Kees Cook <keescook@chromium.org>
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/platform/x86/sony-laptop.c |    8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+--- a/drivers/platform/x86/sony-laptop.c
++++ b/drivers/platform/x86/sony-laptop.c
+@@ -4422,14 +4422,16 @@ sony_pic_read_possible_resource(struct a
+                       }
+                       return AE_OK;
+               }
++
++      case ACPI_RESOURCE_TYPE_END_TAG:
++              return AE_OK;
++
+       default:
+               dprintk("Resource %d isn't an IRQ nor an IO port\n",
+                       resource->type);
++              return AE_CTRL_TERMINATE;
+-      case ACPI_RESOURCE_TYPE_END_TAG:
+-              return AE_OK;
+       }
+-      return AE_CTRL_TERMINATE;
+ }
+ static int sony_pic_possible_resources(struct acpi_device *device)
diff --git a/queue-4.14/platform-x86-thinkpad_acpi-disable-bluetooth-for-some-machines.patch b/queue-4.14/platform-x86-thinkpad_acpi-disable-bluetooth-for-some-machines.patch
new file mode 100644 (file)
index 0000000..a472456
--- /dev/null
@@ -0,0 +1,119 @@
+From f7db839fccf087664e5587966220821289b6a9cb Mon Sep 17 00:00:00 2001
+From: Jiaxun Yang <jiaxun.yang@flygoat.com>
+Date: Thu, 7 Mar 2019 17:37:16 +0800
+Subject: platform/x86: thinkpad_acpi: Disable Bluetooth for some machines
+
+From: Jiaxun Yang <jiaxun.yang@flygoat.com>
+
+commit f7db839fccf087664e5587966220821289b6a9cb upstream.
+
+Some AMD based ThinkPads have a firmware bug that calling
+"GBDC" will cause Bluetooth on Intel wireless cards blocked.
+
+Probe these models by DMI match and disable Bluetooth subdriver
+if specified Intel wireless card exist.
+
+Cc: stable <stable@vger.kernel.org> # 4.14+
+Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/platform/x86/thinkpad_acpi.c |   72 ++++++++++++++++++++++++++++++++++-
+ 1 file changed, 70 insertions(+), 2 deletions(-)
+
+--- a/drivers/platform/x86/thinkpad_acpi.c
++++ b/drivers/platform/x86/thinkpad_acpi.c
+@@ -77,7 +77,7 @@
+ #include <linux/jiffies.h>
+ #include <linux/workqueue.h>
+ #include <linux/acpi.h>
+-#include <linux/pci_ids.h>
++#include <linux/pci.h>
+ #include <linux/thinkpad_acpi.h>
+ #include <sound/core.h>
+ #include <sound/control.h>
+@@ -4366,6 +4366,74 @@ static void bluetooth_exit(void)
+       bluetooth_shutdown();
+ }
++static const struct dmi_system_id bt_fwbug_list[] __initconst = {
++      {
++              .ident = "ThinkPad E485",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++                      DMI_MATCH(DMI_BOARD_NAME, "20KU"),
++              },
++      },
++      {
++              .ident = "ThinkPad E585",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++                      DMI_MATCH(DMI_BOARD_NAME, "20KV"),
++              },
++      },
++      {
++              .ident = "ThinkPad A285 - 20MW",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++                      DMI_MATCH(DMI_BOARD_NAME, "20MW"),
++              },
++      },
++      {
++              .ident = "ThinkPad A285 - 20MX",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++                      DMI_MATCH(DMI_BOARD_NAME, "20MX"),
++              },
++      },
++      {
++              .ident = "ThinkPad A485 - 20MU",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++                      DMI_MATCH(DMI_BOARD_NAME, "20MU"),
++              },
++      },
++      {
++              .ident = "ThinkPad A485 - 20MV",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++                      DMI_MATCH(DMI_BOARD_NAME, "20MV"),
++              },
++      },
++      {}
++};
++
++static const struct pci_device_id fwbug_cards_ids[] __initconst = {
++      { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x24F3) },
++      { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x24FD) },
++      { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x2526) },
++      {}
++};
++
++
++static int __init have_bt_fwbug(void)
++{
++      /*
++       * Some AMD based ThinkPads have a firmware bug that calling
++       * "GBDC" will cause bluetooth on Intel wireless cards blocked
++       */
++      if (dmi_check_system(bt_fwbug_list) && pci_dev_present(fwbug_cards_ids)) {
++              vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_RFKILL,
++                      FW_BUG "disable bluetooth subdriver for Intel cards\n");
++              return 1;
++      } else
++              return 0;
++}
++
+ static int __init bluetooth_init(struct ibm_init_struct *iibm)
+ {
+       int res;
+@@ -4378,7 +4446,7 @@ static int __init bluetooth_init(struct
+       /* bluetooth not supported on 570, 600e/x, 770e, 770x, A21e, A2xm/p,
+          G4x, R30, R31, R40e, R50e, T20-22, X20-21 */
+-      tp_features.bluetooth = hkey_handle &&
++      tp_features.bluetooth = !have_bt_fwbug() && hkey_handle &&
+           acpi_evalf(hkey_handle, &status, "GBDC", "qd");
+       vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_RFKILL,
index e5ad85e3fed046b6ec7b12c15a6aadb24e6893ff..d115c047537147c7459976ec7ad4ed7ade93aabd 100644 (file)
@@ -1 +1,5 @@
 netfilter-compat-initialize-all-fields-in-xt_init.patch
+platform-x86-sony-laptop-fix-unintentional-fall-through.patch
+platform-x86-thinkpad_acpi-disable-bluetooth-for-some-machines.patch
+hwmon-pwm-fan-disable-pwm-if-fetching-cooling-data-fails.patch
+kernfs-fix-barrier-usage-in-__kernfs_new_node.patch