]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Jul 2014 20:15:56 +0000 (13:15 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Jul 2014 20:15:56 +0000 (13:15 -0700)
added patches:
arm-omap2-fix-parser-bug-in-platform-muxing-code.patch
b43-fix-frequency-reported-on-g-phy-with-new-firmware.patch
cifs-fix-mount-failure-with-broken-pathnames-when-smb3-mount-with-mapchars-option.patch

queue-3.4/arm-omap2-fix-parser-bug-in-platform-muxing-code.patch [new file with mode: 0644]
queue-3.4/b43-fix-frequency-reported-on-g-phy-with-new-firmware.patch [new file with mode: 0644]
queue-3.4/cifs-fix-mount-failure-with-broken-pathnames-when-smb3-mount-with-mapchars-option.patch [new file with mode: 0644]
queue-3.4/series

diff --git a/queue-3.4/arm-omap2-fix-parser-bug-in-platform-muxing-code.patch b/queue-3.4/arm-omap2-fix-parser-bug-in-platform-muxing-code.patch
new file mode 100644 (file)
index 0000000..e400ef8
--- /dev/null
@@ -0,0 +1,60 @@
+From c021f241f4fab2bb4fc4120a38a828a03dd3f970 Mon Sep 17 00:00:00 2001
+From: "David R. Piegdon" <lkml@p23q.org>
+Date: Mon, 16 Jun 2014 23:42:51 +0000
+Subject: ARM: OMAP2+: Fix parser-bug in platform muxing code
+
+From: "David R. Piegdon" <lkml@p23q.org>
+
+commit c021f241f4fab2bb4fc4120a38a828a03dd3f970 upstream.
+
+Fix a parser-bug in the omap2 muxing code where muxtable-entries will be
+wrongly selected if the requested muxname is a *prefix* of their
+m0-entry and they have a matching mN-entry. Fix by additionally checking
+that the length of the m0_entry is equal.
+
+For example muxing of "dss_data2.dss_data2" on omap32xx will fail
+because the prefix "dss_data2" will match the mux-entries "dss_data2" as
+well as "dss_data20", with the suffix "dss_data2" matching m0 (for
+dss_data2) and m4 (for dss_data20). Thus both are recognized as signal
+path candidates:
+
+Relevant muxentries from mux34xx.c:
+        _OMAP3_MUXENTRY(DSS_DATA20, 90,
+                "dss_data20", NULL, "mcspi3_somi", "dss_data2",
+                "gpio_90", NULL, NULL, "safe_mode"),
+        _OMAP3_MUXENTRY(DSS_DATA2, 72,
+                "dss_data2", NULL, NULL, NULL,
+                "gpio_72", NULL, NULL, "safe_mode"),
+
+This will result in a failure to mux the pin at all:
+
+ _omap_mux_get_by_name: Multiple signal paths (2) for dss_data2.dss_data2
+
+Patch should apply to linus' latest master down to rather old linux-2.6
+trees.
+
+Signed-off-by: David R. Piegdon <lkml@p23q.org>
+Cc: stable@vger.kernel.org
+[tony@atomide.com: updated description to include full description]
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-omap2/mux.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/mach-omap2/mux.c
++++ b/arch/arm/mach-omap2/mux.c
+@@ -184,8 +184,10 @@ static int __init _omap_mux_get_by_name(
+               m0_entry = mux->muxnames[0];
+               /* First check for full name in mode0.muxmode format */
+-              if (mode0_len && strncmp(muxname, m0_entry, mode0_len))
+-                      continue;
++              if (mode0_len)
++                      if (strncmp(muxname, m0_entry, mode0_len) ||
++                          (strlen(m0_entry) != mode0_len))
++                              continue;
+               /* Then check for muxmode only */
+               for (i = 0; i < OMAP_MUX_NR_MODES; i++) {
diff --git a/queue-3.4/b43-fix-frequency-reported-on-g-phy-with-new-firmware.patch b/queue-3.4/b43-fix-frequency-reported-on-g-phy-with-new-firmware.patch
new file mode 100644 (file)
index 0000000..8c8452a
--- /dev/null
@@ -0,0 +1,54 @@
+From 2fc68eb122c7ea6cd5be1fe7d6650c0beb2f4f40 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
+Date: Thu, 12 Jun 2014 22:28:22 +0200
+Subject: b43: fix frequency reported on G-PHY with /new/ firmware
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
+
+commit 2fc68eb122c7ea6cd5be1fe7d6650c0beb2f4f40 upstream.
+
+Support for firmware rev 508+ was added years ago, but we never noticed
+it reports channel in a different way for G-PHY devices. Instead of
+offset from 2400 MHz it simply passes channel id (AKA hw_value).
+
+So far it was (most probably) affecting monitor mode users only, but
+the following recent commit made it noticeable for quite everybody:
+
+commit 3afc2167f60a327a2c1e1e2600ef209a3c2b75b7
+Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Date:   Tue Mar 4 16:50:13 2014 +0200
+
+    cfg80211/mac80211: ignore signal if the frame was heard on wrong channel
+
+Reported-by: Aaro Koskinen <aaro.koskinen@iki.fi>
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/b43/xmit.c |   10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/b43/xmit.c
++++ b/drivers/net/wireless/b43/xmit.c
+@@ -808,9 +808,13 @@ void b43_rx(struct b43_wldev *dev, struc
+               break;
+       case B43_PHYTYPE_G:
+               status.band = IEEE80211_BAND_2GHZ;
+-              /* chanid is the radio channel cookie value as used
+-               * to tune the radio. */
+-              status.freq = chanid + 2400;
++              /* Somewhere between 478.104 and 508.1084 firmware for G-PHY
++               * has been modified to be compatible with N-PHY and others.
++               */
++              if (dev->fw.rev >= 508)
++                      status.freq = ieee80211_channel_to_frequency(chanid, status.band);
++              else
++                      status.freq = chanid + 2400;
+               break;
+       case B43_PHYTYPE_N:
+       case B43_PHYTYPE_LP:
diff --git a/queue-3.4/cifs-fix-mount-failure-with-broken-pathnames-when-smb3-mount-with-mapchars-option.patch b/queue-3.4/cifs-fix-mount-failure-with-broken-pathnames-when-smb3-mount-with-mapchars-option.patch
new file mode 100644 (file)
index 0000000..a74e6e4
--- /dev/null
@@ -0,0 +1,58 @@
+From ce36d9ab3bab06b7b5522f5c8b68fac231b76ffb Mon Sep 17 00:00:00 2001
+From: Steve French <smfrench@gmail.com>
+Date: Sun, 22 Jun 2014 20:38:49 -0500
+Subject: CIFS: fix mount failure with broken pathnames when smb3 mount with mapchars option
+
+From: Steve French <smfrench@gmail.com>
+
+commit ce36d9ab3bab06b7b5522f5c8b68fac231b76ffb upstream.
+
+When we SMB3 mounted with mapchars (to allow reserved characters : \ / > < * ?
+via the Unicode Windows to POSIX remap range) empty paths
+(eg when we open "" to query the root of the SMB3 directory on mount) were not
+null terminated so we sent garbarge as a path name on empty paths which caused
+SMB2/SMB2.1/SMB3 mounts to fail when mapchars was specified.  mapchars is
+particularly important since Unix Extensions for SMB3 are not supported (yet)
+
+Signed-off-by: Steve French <smfrench@gmail.com>
+Reviewed-by: David Disseldorp <ddiss@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/cifs/cifs_unicode.c |    7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- a/fs/cifs/cifs_unicode.c
++++ b/fs/cifs/cifs_unicode.c
+@@ -290,7 +290,8 @@ int
+ cifsConvertToUTF16(__le16 *target, const char *source, int srclen,
+                const struct nls_table *cp, int mapChars)
+ {
+-      int i, j, charlen;
++      int i, charlen;
++      int j = 0;
+       char src_char;
+       __le16 dst_char;
+       wchar_t tmp;
+@@ -298,12 +299,11 @@ cifsConvertToUTF16(__le16 *target, const
+       if (!mapChars)
+               return cifs_strtoUTF16(target, source, PATH_MAX, cp);
+-      for (i = 0, j = 0; i < srclen; j++) {
++      for (i = 0; i < srclen; j++) {
+               src_char = source[i];
+               charlen = 1;
+               switch (src_char) {
+               case 0:
+-                      put_unaligned(0, &target[j]);
+                       goto ctoUTF16_out;
+               case ':':
+                       dst_char = cpu_to_le16(UNI_COLON);
+@@ -350,6 +350,7 @@ cifsConvertToUTF16(__le16 *target, const
+       }
+ ctoUTF16_out:
++      put_unaligned(0, &target[j]); /* Null terminate target unicode string */
+       return j;
+ }
index 948eac5ffdb743efb879cc986eec829de6618eea..93db10aca96bc8b87fff20463d4829e1e26657f9 100644 (file)
@@ -16,3 +16,6 @@ drm-vmwgfx-fix-incorrect-write-to-read-only-register-v2.patch
 bluetooth-fix-ssp-acceptor-just-works-confirmation-without-mitm.patch
 bluetooth-remove-unused-hci_le_ltk_reply.patch
 mac80211-don-t-check-netdev-state-for-debugfs-read-write.patch
+arm-omap2-fix-parser-bug-in-platform-muxing-code.patch
+b43-fix-frequency-reported-on-g-phy-with-new-firmware.patch
+cifs-fix-mount-failure-with-broken-pathnames-when-smb3-mount-with-mapchars-option.patch