From: Greg Kroah-Hartman Date: Tue, 3 Feb 2015 02:51:11 +0000 (-0800) Subject: 3.18-stable patches X-Git-Tag: v3.18.6~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=598bca2a46710182fd9a1dbcffc3108a96f7667b;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches 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 --- 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 index 00000000000..7033f9101c1 --- /dev/null +++ b/queue-3.18/input-elantech-add-more-fujtisu-notebooks-to-force-crc_enabled.patch @@ -0,0 +1,52 @@ +From 47c1ffb2b6b630894e9a16442611c056ab21c057 Mon Sep 17 00:00:00 2001 +From: Rainer Koenig +Date: Tue, 27 Jan 2015 15:15:11 -0800 +Subject: Input: elantech - add more Fujtisu notebooks to force crc_enabled + +From: Rainer Koenig + +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 +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..6b9b2488641 --- /dev/null +++ b/queue-3.18/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.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 index 00000000000..9543af8a2a7 --- /dev/null +++ b/queue-3.18/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 +@@ -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 index 00000000000..06ef5e6feb4 --- /dev/null +++ b/queue-3.18/mac80211-only-roll-back-station-states-for-wds-when-suspending.patch @@ -0,0 +1,76 @@ +From 2af81d6718f5ec92b1d787e0fe79b0d3b6f78601 Mon Sep 17 00:00:00 2001 +From: Luciano Coelho +Date: Wed, 21 Jan 2015 22:19:34 +0200 +Subject: mac80211: only roll back station states for WDS when suspending + +From: Luciano Coelho + +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 +Signed-off-by: Johannes Berg +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..51150a1abe1 --- /dev/null +++ b/queue-3.18/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 +@@ -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 index 00000000000..49132205675 --- /dev/null +++ b/queue-3.18/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 +@@ -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 index 00000000000..2aa192c507f --- /dev/null +++ b/queue-3.18/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 +@@ -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); + } diff --git a/queue-3.18/series b/queue-3.18/series index b1da6015c80..4737c3a5428 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -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