]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.18-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Feb 2015 02:51:11 +0000 (18:51 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Feb 2015 02:51:11 +0000 (18:51 -0800)
added patches:
input-elantech-add-more-fujtisu-notebooks-to-force-crc_enabled.patch
input-i8042-add-noloop-quirk-for-medion-akoya-e7225-md98857.patch
input-synaptics-adjust-min-max-for-lenovo-thinkpad-x1-carbon-2nd.patch
mac80211-only-roll-back-station-states-for-wds-when-suspending.patch
mac80211-properly-set-cck-flag-in-radiotap.patch
nfs-fix-dio-deadlock-when-o_direct-flag-is-flipped.patch
nfsv4.1-fix-an-oops-in-nfs41_walk_client_list.patch

queue-3.18/input-elantech-add-more-fujtisu-notebooks-to-force-crc_enabled.patch [new file with mode: 0644]
queue-3.18/input-i8042-add-noloop-quirk-for-medion-akoya-e7225-md98857.patch [new file with mode: 0644]
queue-3.18/input-synaptics-adjust-min-max-for-lenovo-thinkpad-x1-carbon-2nd.patch [new file with mode: 0644]
queue-3.18/mac80211-only-roll-back-station-states-for-wds-when-suspending.patch [new file with mode: 0644]
queue-3.18/mac80211-properly-set-cck-flag-in-radiotap.patch [new file with mode: 0644]
queue-3.18/nfs-fix-dio-deadlock-when-o_direct-flag-is-flipped.patch [new file with mode: 0644]
queue-3.18/nfsv4.1-fix-an-oops-in-nfs41_walk_client_list.patch [new file with mode: 0644]
queue-3.18/series

diff --git a/queue-3.18/input-elantech-add-more-fujtisu-notebooks-to-force-crc_enabled.patch b/queue-3.18/input-elantech-add-more-fujtisu-notebooks-to-force-crc_enabled.patch
new file mode 100644 (file)
index 0000000..7033f91
--- /dev/null
@@ -0,0 +1,52 @@
+From 47c1ffb2b6b630894e9a16442611c056ab21c057 Mon Sep 17 00:00:00 2001
+From: Rainer Koenig <Rainer.Koenig@ts.fujitsu.com>
+Date: Tue, 27 Jan 2015 15:15:11 -0800
+Subject: Input: elantech - add more Fujtisu notebooks to force crc_enabled
+
+From: Rainer Koenig <Rainer.Koenig@ts.fujitsu.com>
+
+commit 47c1ffb2b6b630894e9a16442611c056ab21c057 upstream.
+
+Add two more Fujitsu LIFEBOOK models that also ship with the Elantech
+touchpad and don't work with crc_disabled to the quirk list.
+
+Signed-off-by: Rainer Koenig <Rainer.Koenig@ts.fujitsu.com>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/mouse/elantech.c |   16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+--- a/drivers/input/mouse/elantech.c
++++ b/drivers/input/mouse/elantech.c
+@@ -1097,6 +1097,8 @@ static int elantech_get_resolution_v4(st
+  * Asus UX31               0x361f00        20, 15, 0e      clickpad
+  * Asus UX32VD             0x361f02        00, 15, 0e      clickpad
+  * Avatar AVIU-145A2       0x361f00        ?               clickpad
++ * Fujitsu LIFEBOOK E544   0x470f00        d0, 12, 09      2 hw buttons
++ * Fujitsu LIFEBOOK E554   0x570f01        40, 14, 0c      2 hw buttons
+  * Fujitsu H730            0x570f00        c0, 14, 0c      3 hw buttons (**)
+  * Gigabyte U2442          0x450f01        58, 17, 0c      2 hw buttons
+  * Lenovo L430             0x350f02        b9, 15, 0c      2 hw buttons (*)
+@@ -1475,6 +1477,20 @@ static const struct dmi_system_id elante
+                       DMI_MATCH(DMI_PRODUCT_NAME, "CELSIUS H730"),
+               },
+       },
++      {
++              /* Fujitsu LIFEBOOK E554  does not work with crc_enabled == 0 */
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK E554"),
++              },
++      },
++      {
++              /* Fujitsu LIFEBOOK E544  does not work with crc_enabled == 0 */
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK E544"),
++              },
++      },
+ #endif
+       { }
+ };
diff --git a/queue-3.18/input-i8042-add-noloop-quirk-for-medion-akoya-e7225-md98857.patch b/queue-3.18/input-i8042-add-noloop-quirk-for-medion-akoya-e7225-md98857.patch
new file mode 100644 (file)
index 0000000..6b9b248
--- /dev/null
@@ -0,0 +1,56 @@
+From 1d90d6d5522befa8efa1a7ea406be65cf865ded4 Mon Sep 17 00:00:00 2001
+From: Jochen Hein <jochen@jochen.org>
+Date: Thu, 22 Jan 2015 12:03:15 -0800
+Subject: Input: i8042 - add noloop quirk for Medion Akoya E7225 (MD98857)
+
+From: Jochen Hein <jochen@jochen.org>
+
+commit 1d90d6d5522befa8efa1a7ea406be65cf865ded4 upstream.
+
+Without this the aux port does not get detected, and consequently the touchpad
+will not work.
+
+With this patch the touchpad is detected:
+
+$ dmesg | grep -E "(SYN|i8042|serio)"
+pnp 00:03: Plug and Play ACPI device, IDs SYN1d22 PNP0f13 (active)
+i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
+serio: i8042 KBD port at 0x60,0x64 irq 1
+serio: i8042 AUX port at 0x60,0x64 irq 12
+input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input4
+psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1, caps: 0xd00123/0x840300/0x126800, board id: 2863, fw id: 1473085
+input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input6
+
+dmidecode excerpt for this laptop is:
+
+Handle 0x0001, DMI type 1, 27 bytes
+System Information
+        Manufacturer: Medion
+        Product Name: Akoya E7225
+        Version: 1.0
+
+Signed-off-by: Jochen Hein <jochen@jochen.org>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/serio/i8042-x86ia64io.h |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/input/serio/i8042-x86ia64io.h
++++ b/drivers/input/serio/i8042-x86ia64io.h
+@@ -152,6 +152,14 @@ static const struct dmi_system_id __init
+               },
+       },
+       {
++              /* Medion Akoya E7225 */
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "Medion"),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "Akoya E7225"),
++                      DMI_MATCH(DMI_PRODUCT_VERSION, "1.0"),
++              },
++      },
++      {
+               /* Blue FB5601 */
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "blue"),
diff --git a/queue-3.18/input-synaptics-adjust-min-max-for-lenovo-thinkpad-x1-carbon-2nd.patch b/queue-3.18/input-synaptics-adjust-min-max-for-lenovo-thinkpad-x1-carbon-2nd.patch
new file mode 100644 (file)
index 0000000..9543af8
--- /dev/null
@@ -0,0 +1,43 @@
+From 8543cf1c247909ce85850ca6e2714adba351d6aa Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 19 Jan 2015 16:29:25 -0800
+Subject: Input: synaptics - adjust min/max for Lenovo ThinkPad X1 Carbon 2nd
+
+From: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 8543cf1c247909ce85850ca6e2714adba351d6aa upstream.
+
+LEN0037 found in the Lenovo ThinkPad X1 Carbon 2nd (2014 model)
+
+Reported-and-tested-by: Bjoern Olausson <bjoern@olausson.de>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/mouse/synaptics.c |    7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- a/drivers/input/mouse/synaptics.c
++++ b/drivers/input/mouse/synaptics.c
+@@ -135,8 +135,9 @@ static const struct min_max_quirk min_ma
+               1232, 5710, 1156, 4696
+       },
+       {
+-              (const char * const []){"LEN0034", "LEN0036", "LEN0039",
+-                                      "LEN2002", "LEN2004", NULL},
++              (const char * const []){"LEN0034", "LEN0036", "LEN0037",
++                                      "LEN0039", "LEN2002", "LEN2004",
++                                      NULL},
+               1024, 5112, 2024, 4832
+       },
+       {
+@@ -165,7 +166,7 @@ static const char * const topbuttonpad_p
+       "LEN0034", /* T431s, L440, L540, T540, W540, X1 Carbon 2nd */
+       "LEN0035", /* X240 */
+       "LEN0036", /* T440 */
+-      "LEN0037",
++      "LEN0037", /* X1 Carbon 2nd */
+       "LEN0038",
+       "LEN0039", /* T440s */
+       "LEN0041",
diff --git a/queue-3.18/mac80211-only-roll-back-station-states-for-wds-when-suspending.patch b/queue-3.18/mac80211-only-roll-back-station-states-for-wds-when-suspending.patch
new file mode 100644 (file)
index 0000000..06ef5e6
--- /dev/null
@@ -0,0 +1,76 @@
+From 2af81d6718f5ec92b1d787e0fe79b0d3b6f78601 Mon Sep 17 00:00:00 2001
+From: Luciano Coelho <luciano.coelho@intel.com>
+Date: Wed, 21 Jan 2015 22:19:34 +0200
+Subject: mac80211: only roll back station states for WDS when suspending
+
+From: Luciano Coelho <luciano.coelho@intel.com>
+
+commit 2af81d6718f5ec92b1d787e0fe79b0d3b6f78601 upstream.
+
+In normal cases (i.e. when we are fully associated), cfg80211 takes
+care of removing all the stations before calling suspend in mac80211.
+
+But in the corner case when we suspend during authentication or
+association, mac80211 needs to roll back the station states.  But we
+shouldn't roll back the station states in the suspend function,
+because this is taken care of in other parts of the code, except for
+WDS interfaces.  For AP types of interfaces, cfg80211 takes care of
+disconnecting all stations before calling the driver's suspend code.
+For station interfaces, this is done in the quiesce code.
+
+For WDS interfaces we still need to do it here, so move the code into
+a new switch case for WDS.
+
+Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/mac80211/pm.c |   29 +++++++++++++++--------------
+ 1 file changed, 15 insertions(+), 14 deletions(-)
+
+--- a/net/mac80211/pm.c
++++ b/net/mac80211/pm.c
+@@ -86,20 +86,6 @@ int __ieee80211_suspend(struct ieee80211
+               }
+       }
+-      /* tear down aggregation sessions and remove STAs */
+-      mutex_lock(&local->sta_mtx);
+-      list_for_each_entry(sta, &local->sta_list, list) {
+-              if (sta->uploaded) {
+-                      enum ieee80211_sta_state state;
+-
+-                      state = sta->sta_state;
+-                      for (; state > IEEE80211_STA_NOTEXIST; state--)
+-                              WARN_ON(drv_sta_state(local, sta->sdata, sta,
+-                                                    state, state - 1));
+-              }
+-      }
+-      mutex_unlock(&local->sta_mtx);
+-
+       /* remove all interfaces that were created in the driver */
+       list_for_each_entry(sdata, &local->interfaces, list) {
+               if (!ieee80211_sdata_running(sdata))
+@@ -111,6 +97,21 @@ int __ieee80211_suspend(struct ieee80211
+               case NL80211_IFTYPE_STATION:
+                       ieee80211_mgd_quiesce(sdata);
+                       break;
++              case NL80211_IFTYPE_WDS:
++                      /* tear down aggregation sessions and remove STAs */
++                      mutex_lock(&local->sta_mtx);
++                      sta = sdata->u.wds.sta;
++                      if (sta && sta->uploaded) {
++                              enum ieee80211_sta_state state;
++
++                              state = sta->sta_state;
++                              for (; state > IEEE80211_STA_NOTEXIST; state--)
++                                      WARN_ON(drv_sta_state(local, sta->sdata,
++                                                            sta, state,
++                                                            state - 1));
++                      }
++                      mutex_unlock(&local->sta_mtx);
++                      break;
+               default:
+                       break;
+               }
diff --git a/queue-3.18/mac80211-properly-set-cck-flag-in-radiotap.patch b/queue-3.18/mac80211-properly-set-cck-flag-in-radiotap.patch
new file mode 100644 (file)
index 0000000..51150a1
--- /dev/null
@@ -0,0 +1,34 @@
+From 3a5c5e81d8128a9e43abc52b75dd21d3da7a0cfc Mon Sep 17 00:00:00 2001
+From: Mathy Vanhoef <vanhoefm@gmail.com>
+Date: Tue, 20 Jan 2015 15:05:08 +0100
+Subject: mac80211: properly set CCK flag in radiotap
+
+From: Mathy Vanhoef <vanhoefm@gmail.com>
+
+commit 3a5c5e81d8128a9e43abc52b75dd21d3da7a0cfc upstream.
+
+Fix a regression introduced by commit a5e70697d0c4 ("mac80211: add radiotap flag
+and handling for 5/10 MHz") where the IEEE80211_CHAN_CCK channel type flag was
+incorrectly replaced by the IEEE80211_CHAN_OFDM flag. This commit fixes that by
+using the CCK flag again.
+
+Fixes: a5e70697d0c4 ("mac80211: add radiotap flag and handling for 5/10 MHz")
+Signed-off-by: Mathy Vanhoef <vanhoefm@gmail.com>
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/mac80211/rx.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/net/mac80211/rx.c
++++ b/net/mac80211/rx.c
+@@ -235,7 +235,7 @@ ieee80211_add_rx_radiotap_header(struct
+       else if (rate && rate->flags & IEEE80211_RATE_ERP_G)
+               channel_flags |= IEEE80211_CHAN_OFDM | IEEE80211_CHAN_2GHZ;
+       else if (rate)
+-              channel_flags |= IEEE80211_CHAN_OFDM | IEEE80211_CHAN_2GHZ;
++              channel_flags |= IEEE80211_CHAN_CCK | IEEE80211_CHAN_2GHZ;
+       else
+               channel_flags |= IEEE80211_CHAN_2GHZ;
+       put_unaligned_le16(channel_flags, pos);
diff --git a/queue-3.18/nfs-fix-dio-deadlock-when-o_direct-flag-is-flipped.patch b/queue-3.18/nfs-fix-dio-deadlock-when-o_direct-flag-is-flipped.patch
new file mode 100644 (file)
index 0000000..4913220
--- /dev/null
@@ -0,0 +1,38 @@
+From ee8a1a8b160a87dc3a9c81a86796aa4db85ea815 Mon Sep 17 00:00:00 2001
+From: Peng Tao <tao.peng@primarydata.com>
+Date: Tue, 20 Jan 2015 07:44:29 +0800
+Subject: nfs: fix dio deadlock when O_DIRECT flag is flipped
+
+From: Peng Tao <tao.peng@primarydata.com>
+
+commit ee8a1a8b160a87dc3a9c81a86796aa4db85ea815 upstream.
+
+We only support swap file calling nfs_direct_IO. However, application
+might be able to get to nfs_direct_IO if it toggles O_DIRECT flag
+during IO and it can deadlock because we grab inode->i_mutex in
+nfs_file_direct_write(). So return 0 for such case. Then the generic
+layer will fall back to buffer IO.
+
+Signed-off-by: Peng Tao <tao.peng@primarydata.com>
+Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/nfs/direct.c |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/fs/nfs/direct.c
++++ b/fs/nfs/direct.c
+@@ -212,6 +212,12 @@ static int nfs_direct_cmp_commit_data_ve
+  */
+ ssize_t nfs_direct_IO(int rw, struct kiocb *iocb, struct iov_iter *iter, loff_t pos)
+ {
++      struct inode *inode = iocb->ki_filp->f_mapping->host;
++
++      /* we only support swap file calling nfs_direct_IO */
++      if (!IS_SWAPFILE(inode))
++              return 0;
++
+ #ifndef CONFIG_NFS_SWAP
+       dprintk("NFS: nfs_direct_IO (%pD) off/no(%Ld/%lu) EINVAL\n",
+                       iocb->ki_filp, (long long) pos, iter->nr_segs);
diff --git a/queue-3.18/nfsv4.1-fix-an-oops-in-nfs41_walk_client_list.patch b/queue-3.18/nfsv4.1-fix-an-oops-in-nfs41_walk_client_list.patch
new file mode 100644 (file)
index 0000000..2aa192c
--- /dev/null
@@ -0,0 +1,32 @@
+From 3175e1dcec40fab1a444c010087f2068b6b04732 Mon Sep 17 00:00:00 2001
+From: Trond Myklebust <trond.myklebust@primarydata.com>
+Date: Wed, 21 Jan 2015 14:37:44 -0500
+Subject: NFSv4.1: Fix an Oops in nfs41_walk_client_list
+
+From: Trond Myklebust <trond.myklebust@primarydata.com>
+
+commit 3175e1dcec40fab1a444c010087f2068b6b04732 upstream.
+
+If we start state recovery on a client that failed to initialise correctly,
+then we are very likely to Oops.
+
+Reported-by: "Mkrtchyan, Tigran" <tigran.mkrtchyan@desy.de>
+Link: http://lkml.kernel.org/r/130621862.279655.1421851650684.JavaMail.zimbra@desy.de
+Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/nfs/nfs4client.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/nfs/nfs4client.c
++++ b/fs/nfs/nfs4client.c
+@@ -640,7 +640,7 @@ int nfs41_walk_client_list(struct nfs_cl
+                       prev = pos;
+                       status = nfs_wait_client_init_complete(pos);
+-                      if (status == 0) {
++                      if (pos->cl_cons_state == NFS_CS_SESSION_INITING) {
+                               nfs4_schedule_lease_recovery(pos);
+                               status = nfs4_wait_clnt_recover(pos);
+                       }
index b1da6015c80d553494cd9546d77415976d4eb37f..4737c3a5428daa5fba2868694fb25fd4cf23d6f5 100644 (file)
@@ -23,3 +23,10 @@ usb-add-otg-pet-device-to-tpl.patch
 usb-storage-scsi-blacklist-fua-on-jmicron-152d-2566-usb-sata-controller.patch
 uas-add-no-report-opcodes-quirk-for-simpletech-devices-with-id-4971-8017.patch
 i2c-s3c2410-fix-abba-deadlock-by-keeping-clock-prepared.patch
+input-synaptics-adjust-min-max-for-lenovo-thinkpad-x1-carbon-2nd.patch
+input-elantech-add-more-fujtisu-notebooks-to-force-crc_enabled.patch
+input-i8042-add-noloop-quirk-for-medion-akoya-e7225-md98857.patch
+nfs-fix-dio-deadlock-when-o_direct-flag-is-flipped.patch
+nfsv4.1-fix-an-oops-in-nfs41_walk_client_list.patch
+mac80211-properly-set-cck-flag-in-radiotap.patch
+mac80211-only-roll-back-station-states-for-wds-when-suspending.patch