From 683bc509e422fcbcb409a846650e47c3b1793325 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 2 Feb 2015 18:51:08 -0800 Subject: [PATCH] 3.14-stable patches added patches: input-i8042-add-noloop-quirk-for-medion-akoya-e7225-md98857.patch input-synaptics-adjust-min-max-for-lenovo-thinkpad-x1-carbon-2nd.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 --- ...quirk-for-medion-akoya-e7225-md98857.patch | 56 +++++++++++++++++++ ...ax-for-lenovo-thinkpad-x1-carbon-2nd.patch | 43 ++++++++++++++ ...11-properly-set-cck-flag-in-radiotap.patch | 34 +++++++++++ ...adlock-when-o_direct-flag-is-flipped.patch | 38 +++++++++++++ ...ix-an-oops-in-nfs41_walk_client_list.patch | 32 +++++++++++ queue-3.14/series | 5 ++ 6 files changed, 208 insertions(+) create mode 100644 queue-3.14/input-i8042-add-noloop-quirk-for-medion-akoya-e7225-md98857.patch create mode 100644 queue-3.14/input-synaptics-adjust-min-max-for-lenovo-thinkpad-x1-carbon-2nd.patch create mode 100644 queue-3.14/mac80211-properly-set-cck-flag-in-radiotap.patch create mode 100644 queue-3.14/nfs-fix-dio-deadlock-when-o_direct-flag-is-flipped.patch create mode 100644 queue-3.14/nfsv4.1-fix-an-oops-in-nfs41_walk_client_list.patch diff --git a/queue-3.14/input-i8042-add-noloop-quirk-for-medion-akoya-e7225-md98857.patch b/queue-3.14/input-i8042-add-noloop-quirk-for-medion-akoya-e7225-md98857.patch new file mode 100644 index 00000000000..6b9b2488641 --- /dev/null +++ b/queue-3.14/input-i8042-add-noloop-quirk-for-medion-akoya-e7225-md98857.patch @@ -0,0 +1,56 @@ +From 1d90d6d5522befa8efa1a7ea406be65cf865ded4 Mon Sep 17 00:00:00 2001 +From: Jochen Hein +Date: Thu, 22 Jan 2015 12:03:15 -0800 +Subject: Input: i8042 - add noloop quirk for Medion Akoya E7225 (MD98857) + +From: Jochen Hein + +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 +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + 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.14/input-synaptics-adjust-min-max-for-lenovo-thinkpad-x1-carbon-2nd.patch b/queue-3.14/input-synaptics-adjust-min-max-for-lenovo-thinkpad-x1-carbon-2nd.patch new file mode 100644 index 00000000000..178486dd9d3 --- /dev/null +++ b/queue-3.14/input-synaptics-adjust-min-max-for-lenovo-thinkpad-x1-carbon-2nd.patch @@ -0,0 +1,43 @@ +From 8543cf1c247909ce85850ca6e2714adba351d6aa Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Mon, 19 Jan 2015 16:29:25 -0800 +Subject: Input: synaptics - adjust min/max for Lenovo ThinkPad X1 Carbon 2nd + +From: Peter Hutterer + +commit 8543cf1c247909ce85850ca6e2714adba351d6aa upstream. + +LEN0037 found in the Lenovo ThinkPad X1 Carbon 2nd (2014 model) + +Reported-and-tested-by: Bjoern Olausson +Signed-off-by: Peter Hutterer +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + 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 +@@ -132,8 +132,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 + }, + { +@@ -162,7 +163,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.14/mac80211-properly-set-cck-flag-in-radiotap.patch b/queue-3.14/mac80211-properly-set-cck-flag-in-radiotap.patch new file mode 100644 index 00000000000..9dd68425514 --- /dev/null +++ b/queue-3.14/mac80211-properly-set-cck-flag-in-radiotap.patch @@ -0,0 +1,34 @@ +From 3a5c5e81d8128a9e43abc52b75dd21d3da7a0cfc Mon Sep 17 00:00:00 2001 +From: Mathy Vanhoef +Date: Tue, 20 Jan 2015 15:05:08 +0100 +Subject: mac80211: properly set CCK flag in radiotap + +From: Mathy Vanhoef + +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 +Signed-off-by: Johannes Berg +Signed-off-by: Greg Kroah-Hartman + +--- + net/mac80211/rx.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/net/mac80211/rx.c ++++ b/net/mac80211/rx.c +@@ -261,7 +261,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.14/nfs-fix-dio-deadlock-when-o_direct-flag-is-flipped.patch b/queue-3.14/nfs-fix-dio-deadlock-when-o_direct-flag-is-flipped.patch new file mode 100644 index 00000000000..edfd4f876a3 --- /dev/null +++ b/queue-3.14/nfs-fix-dio-deadlock-when-o_direct-flag-is-flipped.patch @@ -0,0 +1,38 @@ +From ee8a1a8b160a87dc3a9c81a86796aa4db85ea815 Mon Sep 17 00:00:00 2001 +From: Peng Tao +Date: Tue, 20 Jan 2015 07:44:29 +0800 +Subject: nfs: fix dio deadlock when O_DIRECT flag is flipped + +From: Peng Tao + +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 +Signed-off-by: Trond Myklebust +Signed-off-by: Greg Kroah-Hartman + +--- + fs/nfs/direct.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/fs/nfs/direct.c ++++ b/fs/nfs/direct.c +@@ -123,6 +123,12 @@ static inline int put_dreq(struct nfs_di + */ + ssize_t nfs_direct_IO(int rw, struct kiocb *iocb, const struct iovec *iov, loff_t pos, unsigned long nr_segs) + { ++ 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, nr_segs); diff --git a/queue-3.14/nfsv4.1-fix-an-oops-in-nfs41_walk_client_list.patch b/queue-3.14/nfsv4.1-fix-an-oops-in-nfs41_walk_client_list.patch new file mode 100644 index 00000000000..a7f50ef02de --- /dev/null +++ b/queue-3.14/nfsv4.1-fix-an-oops-in-nfs41_walk_client_list.patch @@ -0,0 +1,32 @@ +From 3175e1dcec40fab1a444c010087f2068b6b04732 Mon Sep 17 00:00:00 2001 +From: Trond Myklebust +Date: Wed, 21 Jan 2015 14:37:44 -0500 +Subject: NFSv4.1: Fix an Oops in nfs41_walk_client_list + +From: Trond Myklebust + +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" +Link: http://lkml.kernel.org/r/130621862.279655.1421851650684.JavaMail.zimbra@desy.de +Signed-off-by: Trond Myklebust +Signed-off-by: Greg Kroah-Hartman + +--- + fs/nfs/nfs4client.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/fs/nfs/nfs4client.c ++++ b/fs/nfs/nfs4client.c +@@ -633,7 +633,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); + } diff --git a/queue-3.14/series b/queue-3.14/series index 024e0bbce59..1eae819ed4a 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -12,3 +12,8 @@ powerpc-xmon-fix-another-endiannes-issue-in-rtas-call-from-xmon.patch alsa-seq-dummy-remove-deadlock-causing-events-on-close.patch rbd-drop-parent_ref-in-rbd_dev_unprobe-unconditionally.patch i2c-s3c2410-fix-abba-deadlock-by-keeping-clock-prepared.patch +input-synaptics-adjust-min-max-for-lenovo-thinkpad-x1-carbon-2nd.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 -- 2.47.3