]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Aug 2012 22:41:21 +0000 (15:41 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Aug 2012 22:41:21 +0000 (15:41 -0700)
added patches:
acpi-ac-prevent-oops-on-some-boxes-due-to-missing-check-power_supply_register-return-value-check.patch
acpi-apei-fixup-common-access-width-firmware-bug.patch
btrfs-call-the-ordered-free-operation-without-any-locks-held.patch
cifs-reinstate-sec-ntlmv2-mount-option.patch
qeth-repair-crash-in-qeth_l3_vlan_rx_kill_vid.patch
spi-pl022-disable-port-when-unused.patch
tg3-add-device-id-of-apple-thunderbolt-ethernet-device.patch
tg3-fix-read-dma-workaround-for-5719-a0.patch

queue-3.4/acpi-ac-prevent-oops-on-some-boxes-due-to-missing-check-power_supply_register-return-value-check.patch [new file with mode: 0644]
queue-3.4/acpi-apei-fixup-common-access-width-firmware-bug.patch [new file with mode: 0644]
queue-3.4/btrfs-call-the-ordered-free-operation-without-any-locks-held.patch [new file with mode: 0644]
queue-3.4/cifs-reinstate-sec-ntlmv2-mount-option.patch [new file with mode: 0644]
queue-3.4/qeth-repair-crash-in-qeth_l3_vlan_rx_kill_vid.patch [new file with mode: 0644]
queue-3.4/series
queue-3.4/spi-pl022-disable-port-when-unused.patch [new file with mode: 0644]
queue-3.4/tg3-add-device-id-of-apple-thunderbolt-ethernet-device.patch [new file with mode: 0644]
queue-3.4/tg3-fix-read-dma-workaround-for-5719-a0.patch [new file with mode: 0644]

diff --git a/queue-3.4/acpi-ac-prevent-oops-on-some-boxes-due-to-missing-check-power_supply_register-return-value-check.patch b/queue-3.4/acpi-ac-prevent-oops-on-some-boxes-due-to-missing-check-power_supply_register-return-value-check.patch
new file mode 100644 (file)
index 0000000..573644f
--- /dev/null
@@ -0,0 +1,42 @@
+From f197ac13f6eeb351b31250b9ab7d0da17434ea36 Mon Sep 17 00:00:00 2001
+From: Lan Tianyu <tianyu.lan@intel.com>
+Date: Fri, 20 Jul 2012 13:29:16 +0800
+Subject: ACPI/AC: prevent OOPS on some boxes due to missing check power_supply_register() return value check
+
+From: Lan Tianyu <tianyu.lan@intel.com>
+
+commit f197ac13f6eeb351b31250b9ab7d0da17434ea36 upstream.
+
+In the ac.c, power_supply_register()'s return value is not checked.
+
+As a result, the driver's add() ops may return success
+even though the device failed to initialize.
+
+For example, some BIOS may describe two ACADs in the same DSDT.
+The second ACAD device will fail to register,
+but ACPI driver's add() ops returns sucessfully.
+The ACPI device will receive ACPI notification and cause OOPS.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=772730
+
+Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/acpi/ac.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/acpi/ac.c
++++ b/drivers/acpi/ac.c
+@@ -292,7 +292,9 @@ static int acpi_ac_add(struct acpi_devic
+       ac->charger.properties = ac_props;
+       ac->charger.num_properties = ARRAY_SIZE(ac_props);
+       ac->charger.get_property = get_ac_property;
+-      power_supply_register(&ac->device->dev, &ac->charger);
++      result = power_supply_register(&ac->device->dev, &ac->charger);
++      if (result)
++              goto end;
+       printk(KERN_INFO PREFIX "%s [%s] (%s)\n",
+              acpi_device_name(device), acpi_device_bid(device),
diff --git a/queue-3.4/acpi-apei-fixup-common-access-width-firmware-bug.patch b/queue-3.4/acpi-apei-fixup-common-access-width-firmware-bug.patch
new file mode 100644 (file)
index 0000000..cd6e381
--- /dev/null
@@ -0,0 +1,41 @@
+From f712c71f7b2b43b894d1e92e1b77385fcad8815f Mon Sep 17 00:00:00 2001
+From: Jean Delvare <jdelvare@suse.de>
+Date: Tue, 12 Jun 2012 10:43:28 +0200
+Subject: ACPI, APEI: Fixup common access width firmware bug
+
+From: Jean Delvare <jdelvare@suse.de>
+
+commit f712c71f7b2b43b894d1e92e1b77385fcad8815f upstream.
+
+Many firmwares have a common register definition bug where 8-bit
+access width is specified for a 32-bit register. Ideally this should
+be fixed in the BIOS, but earlier versions of the kernel did not
+complain, so fix that up silently.
+
+This closes kernel bug #43282:
+https://bugzilla.kernel.org/show_bug.cgi?id=43282
+
+Signed-off-by: Jean Delvare <jdelvare@suse.de>
+Acked-by: Huang Ying <ying.huang@intel.com>
+Acked-by: Gary Hade <garyhade@us.ibm.com>
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/acpi/apei/apei-base.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/acpi/apei/apei-base.c
++++ b/drivers/acpi/apei/apei-base.c
+@@ -586,6 +586,11 @@ static int apei_check_gar(struct acpi_ge
+       }
+       *access_bit_width = 1UL << (access_size_code + 2);
++      /* Fixup common BIOS bug */
++      if (bit_width == 32 && bit_offset == 0 && (*paddr & 0x03) == 0 &&
++          *access_bit_width < 32)
++              *access_bit_width = 32;
++
+       if ((bit_width + bit_offset) > *access_bit_width) {
+               pr_warning(FW_BUG APEI_PFX
+                          "Invalid bit width + offset in GAR [0x%llx/%u/%u/%u/%u]\n",
diff --git a/queue-3.4/btrfs-call-the-ordered-free-operation-without-any-locks-held.patch b/queue-3.4/btrfs-call-the-ordered-free-operation-without-any-locks-held.patch
new file mode 100644 (file)
index 0000000..2f248cd
--- /dev/null
@@ -0,0 +1,45 @@
+From e9fbcb42201c862fd6ab45c48ead4f47bb2dea9d Mon Sep 17 00:00:00 2001
+From: Chris Mason <chris.mason@fusionio.com>
+Date: Wed, 25 Jul 2012 15:57:13 -0400
+Subject: Btrfs: call the ordered free operation without any locks held
+
+From: Chris Mason <chris.mason@fusionio.com>
+
+commit e9fbcb42201c862fd6ab45c48ead4f47bb2dea9d upstream.
+
+Each ordered operation has a free callback, and this was called with the
+worker spinlock held.  Josef made the free callback also call iput,
+which we can't do with the spinlock.
+
+This drops the spinlock for the free operation and grabs it again before
+moving through the rest of the list.  We'll circle back around to this
+and find a cleaner way that doesn't bounce the lock around so much.
+
+Signed-off-by: Chris Mason <chris.mason@fusionio.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/btrfs/async-thread.c |    9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/fs/btrfs/async-thread.c
++++ b/fs/btrfs/async-thread.c
+@@ -206,10 +206,17 @@ static noinline void run_ordered_complet
+               work->ordered_func(work);
+-              /* now take the lock again and call the freeing code */
++              /* now take the lock again and drop our item from the list */
+               spin_lock(&workers->order_lock);
+               list_del(&work->order_list);
++              spin_unlock(&workers->order_lock);
++
++              /*
++               * we don't want to call the ordered free functions
++               * with the lock held though
++               */
+               work->ordered_free(work);
++              spin_lock(&workers->order_lock);
+       }
+       spin_unlock(&workers->order_lock);
diff --git a/queue-3.4/cifs-reinstate-sec-ntlmv2-mount-option.patch b/queue-3.4/cifs-reinstate-sec-ntlmv2-mount-option.patch
new file mode 100644 (file)
index 0000000..72e14a3
--- /dev/null
@@ -0,0 +1,57 @@
+From 7659624ffb550d69c87f9af9ae63e717daa874bd Mon Sep 17 00:00:00 2001
+From: Jeff Layton <jlayton@redhat.com>
+Date: Mon, 23 Jul 2012 20:34:17 -0400
+Subject: cifs: reinstate sec=ntlmv2 mount option
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Jeff Layton <jlayton@redhat.com>
+
+commit 7659624ffb550d69c87f9af9ae63e717daa874bd upstream.
+
+sec=ntlmv2 as a mount option got dropped in the mount option overhaul.
+
+Cc: Sachin Prabhu <sprabhu@redhat.com>
+Reported-by: Günter Kukkukk <linux@kukkukk.com>
+Signed-off-by: Jeff Layton <jlayton@redhat.com>
+Signed-off-by: Steve French <smfrench@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/cifs/connect.c |    9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+--- a/fs/cifs/connect.c
++++ b/fs/cifs/connect.c
+@@ -238,8 +238,8 @@ static const match_table_t cifs_mount_op
+ enum {
+       Opt_sec_krb5, Opt_sec_krb5i, Opt_sec_krb5p,
+       Opt_sec_ntlmsspi, Opt_sec_ntlmssp,
+-      Opt_ntlm, Opt_sec_ntlmi, Opt_sec_ntlmv2i,
+-      Opt_sec_nontlm, Opt_sec_lanman,
++      Opt_ntlm, Opt_sec_ntlmi, Opt_sec_ntlmv2,
++      Opt_sec_ntlmv2i, Opt_sec_lanman,
+       Opt_sec_none,
+       Opt_sec_err
+@@ -253,8 +253,9 @@ static const match_table_t cifs_secflavo
+       { Opt_sec_ntlmssp, "ntlmssp" },
+       { Opt_ntlm, "ntlm" },
+       { Opt_sec_ntlmi, "ntlmi" },
++      { Opt_sec_ntlmv2, "nontlm" },
++      { Opt_sec_ntlmv2, "ntlmv2" },
+       { Opt_sec_ntlmv2i, "ntlmv2i" },
+-      { Opt_sec_nontlm, "nontlm" },
+       { Opt_sec_lanman, "lanman" },
+       { Opt_sec_none, "none" },
+@@ -1163,7 +1164,7 @@ static int cifs_parse_security_flavors(c
+       case Opt_sec_ntlmi:
+               vol->secFlg |= CIFSSEC_MAY_NTLM | CIFSSEC_MUST_SIGN;
+               break;
+-      case Opt_sec_nontlm:
++      case Opt_sec_ntlmv2:
+               vol->secFlg |= CIFSSEC_MAY_NTLMV2;
+               break;
+       case Opt_sec_ntlmv2i:
diff --git a/queue-3.4/qeth-repair-crash-in-qeth_l3_vlan_rx_kill_vid.patch b/queue-3.4/qeth-repair-crash-in-qeth_l3_vlan_rx_kill_vid.patch
new file mode 100644 (file)
index 0000000..b8ee1b9
--- /dev/null
@@ -0,0 +1,46 @@
+From eabfbe6230ee7363681e7a561948d362b87169f0 Mon Sep 17 00:00:00 2001
+From: Frank Blaschka <frank.blaschka@de.ibm.com>
+Date: Tue, 24 Jul 2012 22:34:29 +0000
+Subject: qeth: repair crash in qeth_l3_vlan_rx_kill_vid()
+
+From: Frank Blaschka <frank.blaschka@de.ibm.com>
+
+commit eabfbe6230ee7363681e7a561948d362b87169f0 upstream.
+
+Commit efc73f4b "net: Fix memory leak - vlan_info struct" adds deletion of
+VLAN 0 for devices with feature NETIF_F_HW_VLAN_FILTER. For driver
+qeth these are the layer 3 devices. Usually there exists no
+separate vlan net_device for VLAN 0. Thus the qeth functions
+qeth_l3_free_vlan_addresses4() and qeth_l3_free_vlan_addresses6()
+require an extra checking if function __vlan_find_dev_deep()
+returns with a net_device.
+
+Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
+Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/s390/net/qeth_l3_main.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/s390/net/qeth_l3_main.c
++++ b/drivers/s390/net/qeth_l3_main.c
+@@ -1818,6 +1818,8 @@ static void qeth_l3_free_vlan_addresses4
+       QETH_CARD_TEXT(card, 4, "frvaddr4");
+       netdev = __vlan_find_dev_deep(card->dev, vid);
++      if (!netdev)
++              return;
+       in_dev = in_dev_get(netdev);
+       if (!in_dev)
+               return;
+@@ -1846,6 +1848,8 @@ static void qeth_l3_free_vlan_addresses6
+       QETH_CARD_TEXT(card, 4, "frvaddr6");
+       netdev = __vlan_find_dev_deep(card->dev, vid);
++      if (!netdev)
++              return;
+       in6_dev = in6_dev_get(netdev);
+       if (!in6_dev)
+               return;
index 9783cf1e0744a37deeaebe8b74b1b789b77723da..07e4dbddf39f87e19c826cde635f69c8c856d557 100644 (file)
@@ -45,3 +45,11 @@ udf-improve-table-length-check-to-avoid-possible-overflow.patch
 stable-update-references-to-older-2.6-versions-for-3.x.patch
 staging-zsmalloc-finish-conversion-to-a-separate-module.patch
 workqueue-perform-cpu-down-operations-from-low-priority-cpu_notifier.patch
+acpi-apei-fixup-common-access-width-firmware-bug.patch
+acpi-ac-prevent-oops-on-some-boxes-due-to-missing-check-power_supply_register-return-value-check.patch
+btrfs-call-the-ordered-free-operation-without-any-locks-held.patch
+cifs-reinstate-sec-ntlmv2-mount-option.patch
+spi-pl022-disable-port-when-unused.patch
+qeth-repair-crash-in-qeth_l3_vlan_rx_kill_vid.patch
+tg3-add-device-id-of-apple-thunderbolt-ethernet-device.patch
+tg3-fix-read-dma-workaround-for-5719-a0.patch
diff --git a/queue-3.4/spi-pl022-disable-port-when-unused.patch b/queue-3.4/spi-pl022-disable-port-when-unused.patch
new file mode 100644 (file)
index 0000000..ba7fc9a
--- /dev/null
@@ -0,0 +1,38 @@
+From fd316941cfee1fbd12746afea83720fb7823888a Mon Sep 17 00:00:00 2001
+From: Virupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com>
+Date: Tue, 12 Jun 2012 15:10:58 +0200
+Subject: spi/pl022: disable port when unused
+
+From: Virupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com>
+
+commit fd316941cfee1fbd12746afea83720fb7823888a upstream.
+
+Commit ffbbdd21329f3e15eeca6df2d4bc11c04d9d91c0
+"spi: create a message queueing infrastructure"
+Accidentally deleted the logic to disable the port
+when unused leading to higher power consumption.
+Fix this up.
+
+Cc: Vinit Shenoy <vinit.shenoy@st.com>
+Signed-off-by: Virupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/spi/spi-pl022.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/spi/spi-pl022.c
++++ b/drivers/spi/spi-pl022.c
+@@ -489,6 +489,11 @@ static void giveback(struct pl022 *pl022
+       pl022->cur_transfer = NULL;
+       pl022->cur_chip = NULL;
+       spi_finalize_current_message(pl022->master);
++
++      /* disable the SPI/SSP operation */
++      writew((readw(SSP_CR1(pl022->virtbase)) &
++              (~SSP_CR1_MASK_SSE)), SSP_CR1(pl022->virtbase));
++
+ }
+ /**
diff --git a/queue-3.4/tg3-add-device-id-of-apple-thunderbolt-ethernet-device.patch b/queue-3.4/tg3-add-device-id-of-apple-thunderbolt-ethernet-device.patch
new file mode 100644 (file)
index 0000000..a03d6ee
--- /dev/null
@@ -0,0 +1,31 @@
+From 02eca3f5f5e458c3a5d7b772bc8042ee2a4ebedf Mon Sep 17 00:00:00 2001
+From: Greg KH <gregkh@linuxfoundation.org>
+Date: Thu, 12 Jul 2012 15:39:44 +0000
+Subject: tg3: add device id of Apple Thunderbolt Ethernet device
+
+From: Greg KH <gregkh@linuxfoundation.org>
+
+commit 02eca3f5f5e458c3a5d7b772bc8042ee2a4ebedf upstream.
+
+The Apple Thunderbolt ethernet device is already listed in the driver,
+but not hooked up in the MODULE_DEVICE_TABLE().  This fixes that and
+allows it to work properly.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Acked-by: Michael Chan <mchan@broadcom.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+
+---
+ drivers/net/ethernet/broadcom/tg3.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/ethernet/broadcom/tg3.c
++++ b/drivers/net/ethernet/broadcom/tg3.c
+@@ -298,6 +298,7 @@ static DEFINE_PCI_DEVICE_TABLE(tg3_pci_t
+       {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57795)},
+       {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_5719)},
+       {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_5720)},
++      {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57762)},
+       {PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9DXX)},
+       {PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9MXX)},
+       {PCI_DEVICE(PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1000)},
diff --git a/queue-3.4/tg3-fix-read-dma-workaround-for-5719-a0.patch b/queue-3.4/tg3-fix-read-dma-workaround-for-5719-a0.patch
new file mode 100644 (file)
index 0000000..4c3b608
--- /dev/null
@@ -0,0 +1,31 @@
+From 10ce95d6ef36c65df7dcd3b8fcf86913f8b298bd Mon Sep 17 00:00:00 2001
+From: Michael Chan <mchan@broadcom.com>
+Date: Sun, 29 Jul 2012 19:15:42 +0000
+Subject: tg3: Fix Read DMA workaround for 5719 A0.
+
+From: Michael Chan <mchan@broadcom.com>
+
+commit 10ce95d6ef36c65df7dcd3b8fcf86913f8b298bd upstream.
+
+The workaround was mis-applied to all 5719 and 5720 chips.
+
+Signed-off-by: Michael Chan <mchan@broadcom.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/broadcom/tg3.c |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/tg3.c
++++ b/drivers/net/ethernet/broadcom/tg3.c
+@@ -8949,8 +8949,7 @@ static int tg3_reset_hw(struct tg3 *tp,
+           GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 ||
+           tg3_flag(tp, 57765_PLUS)) {
+               val = tr32(TG3_RDMA_RSRVCTRL_REG);
+-              if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
+-                  GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) {
++              if (tp->pci_chip_rev_id == CHIPREV_ID_5719_A0) {
+                       val &= ~(TG3_RDMA_RSRVCTRL_TXMRGN_MASK |
+                                TG3_RDMA_RSRVCTRL_FIFO_LWM_MASK |
+                                TG3_RDMA_RSRVCTRL_FIFO_HWM_MASK);