]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 13 Aug 2012 19:00:09 +0000 (12:00 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 13 Aug 2012 19:00:09 +0000 (12:00 -0700)
added patches:
arm-mxs-remove-mmap_min_addr-setting-from-mxs_defconfig.patch
arm-pxa-remove-irq_to_gpio-from-ezx-pcap-driver.patch
cfg80211-fix-interface-combinations-check-for-adhoc-ibss.patch
cfg80211-process-pending-events-when-unregistering-net-device.patch
e1000e-nic-goes-up-and-immediately-goes-down.patch
input-wacom-bamboo-one-1024-pressure-fix.patch
rt61pci-fix-null-pointer-dereference-in-config_lna_gain.patch

queue-3.0/arm-mxs-remove-mmap_min_addr-setting-from-mxs_defconfig.patch [new file with mode: 0644]
queue-3.0/arm-pxa-remove-irq_to_gpio-from-ezx-pcap-driver.patch [new file with mode: 0644]
queue-3.0/cfg80211-fix-interface-combinations-check-for-adhoc-ibss.patch [new file with mode: 0644]
queue-3.0/cfg80211-process-pending-events-when-unregistering-net-device.patch [new file with mode: 0644]
queue-3.0/e1000e-nic-goes-up-and-immediately-goes-down.patch [new file with mode: 0644]
queue-3.0/input-wacom-bamboo-one-1024-pressure-fix.patch [new file with mode: 0644]
queue-3.0/rt61pci-fix-null-pointer-dereference-in-config_lna_gain.patch [new file with mode: 0644]
queue-3.0/series

diff --git a/queue-3.0/arm-mxs-remove-mmap_min_addr-setting-from-mxs_defconfig.patch b/queue-3.0/arm-mxs-remove-mmap_min_addr-setting-from-mxs_defconfig.patch
new file mode 100644 (file)
index 0000000..9dd5b2f
--- /dev/null
@@ -0,0 +1,49 @@
+From 3bed491c8d28329e34f8a31e3fe64d03f3a350f1 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Fri, 3 Aug 2012 20:54:48 +0200
+Subject: ARM: mxs: Remove MMAP_MIN_ADDR setting from mxs_defconfig
+
+From: Marek Vasut <marex@denx.de>
+
+commit 3bed491c8d28329e34f8a31e3fe64d03f3a350f1 upstream.
+
+The CONFIG_DEFAULT_MMAP_MIN_ADDR was set to 65536 in mxs_defconfig,
+this caused severe breakage of userland applications since the upper
+limit for ARM is 32768. By default CONFIG_DEFAULT_MMAP_MIN_ADDR is
+set to 4096 and can also be changed via /proc/sys/vm/mmap_min_addr
+if needed.
+
+Quoting Russell King [1]:
+
+"4096 is also fine for ARM too. There's not much point in having
+defconfigs change it - that would just be pure noise in the config
+files."
+
+the CONFIG_DEFAULT_MMAP_MIN_ADDR can be removed from the defconfig
+altogether.
+
+This problem was introduced by commit cde7c41 (ARM: configs: add
+defconfig for mach-mxs).
+
+[1] http://marc.info/?l=linux-arm-kernel&m=134401593807820&w=2
+
+Signed-off-by: Marek Vasut <marex@denx.de>
+Cc: Russell King <linux@arm.linux.org.uk>
+Cc: Wolfgang Denk <wd@denx.de>
+Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/configs/mxs_defconfig |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/arch/arm/configs/mxs_defconfig
++++ b/arch/arm/configs/mxs_defconfig
+@@ -29,7 +29,6 @@ CONFIG_NO_HZ=y
+ CONFIG_HIGH_RES_TIMERS=y
+ CONFIG_PREEMPT_VOLUNTARY=y
+ CONFIG_AEABI=y
+-CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+ CONFIG_AUTO_ZRELADDR=y
+ CONFIG_FPE_NWFPE=y
+ CONFIG_NET=y
diff --git a/queue-3.0/arm-pxa-remove-irq_to_gpio-from-ezx-pcap-driver.patch b/queue-3.0/arm-pxa-remove-irq_to_gpio-from-ezx-pcap-driver.patch
new file mode 100644 (file)
index 0000000..2093f11
--- /dev/null
@@ -0,0 +1,53 @@
+From 59ee93a528b94ef4e81a08db252b0326feff171f Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Sun, 5 Aug 2012 14:58:37 +0000
+Subject: ARM: pxa: remove irq_to_gpio from ezx-pcap driver
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit 59ee93a528b94ef4e81a08db252b0326feff171f upstream.
+
+The irq_to_gpio function was removed from the pxa platform
+in linux-3.2, and this driver has been broken since.
+
+There is actually no in-tree user of this driver that adds
+this platform device, but the driver can and does get enabled
+on some platforms.
+
+Without this patch, building ezx_defconfig results in:
+
+drivers/mfd/ezx-pcap.c: In function 'pcap_isr_work':
+drivers/mfd/ezx-pcap.c:205:2: error: implicit declaration of function 'irq_to_gpio' [-Werror=implicit-function-declaration]
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com>
+Cc: Samuel Ortiz <sameo@linux.intel.com>
+Cc: Daniel Ribeiro <drwyrm@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/mfd/ezx-pcap.c       |    2 +-
+ include/linux/mfd/ezx-pcap.h |    1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/mfd/ezx-pcap.c
++++ b/drivers/mfd/ezx-pcap.c
+@@ -202,7 +202,7 @@ static void pcap_isr_work(struct work_st
+               }
+               local_irq_enable();
+               ezx_pcap_write(pcap, PCAP_REG_MSR, pcap->msr);
+-      } while (gpio_get_value(irq_to_gpio(pcap->spi->irq)));
++      } while (gpio_get_value(pdata->gpio));
+ }
+ static void pcap_irq_handler(unsigned int irq, struct irq_desc *desc)
+--- a/include/linux/mfd/ezx-pcap.h
++++ b/include/linux/mfd/ezx-pcap.h
+@@ -16,6 +16,7 @@ struct pcap_subdev {
+ struct pcap_platform_data {
+       unsigned int irq_base;
+       unsigned int config;
++      int gpio;
+       void (*init) (void *);  /* board specific init */
+       int num_subdevs;
+       struct pcap_subdev *subdevs;
diff --git a/queue-3.0/cfg80211-fix-interface-combinations-check-for-adhoc-ibss.patch b/queue-3.0/cfg80211-fix-interface-combinations-check-for-adhoc-ibss.patch
new file mode 100644 (file)
index 0000000..83f1b00
--- /dev/null
@@ -0,0 +1,68 @@
+From paul.gortmaker@windriver.com  Mon Aug 13 11:39:55 2012
+From: Paul Gortmaker <paul.gortmaker@windriver.com>
+Date: Thu, 2 Aug 2012 18:55:41 -0400
+Subject: cfg80211: fix interface combinations check for ADHOC(IBSS)
+To: Johannes Berg <johannes@sipsolutions.net>
+Cc: <linux-wireless@vger.kernel.org>, <linville@tuxdriver.com>, Liang Li <liang.li@windriver.com>, <stable@vger.kernel.org>, Paul Gortmaker <paul.gortmaker@windriver.com>
+Message-ID: <1343948141-25005-1-git-send-email-paul.gortmaker@windriver.com>
+
+
+From: Liang Li <liang.li@windriver.com>
+
+partial of commit 8e8b41f9d8c8e63fc92f899ace8da91a490ac573 upstream.
+
+As part of commit 463454b5dbd8 ("cfg80211: fix interface
+combinations check"), this extra check was introduced:
+
+       if ((all_iftypes & used_iftypes) != used_iftypes)
+               goto cont;
+
+However, most wireless NIC drivers did not advertise ADHOC in
+wiphy.iface_combinations[i].limits[] and hence we'll get -EBUSY
+when we bring up a ADHOC wlan with commands similar to:
+
+ # iwconfig wlan0 mode ad-hoc && ifconfig wlan0 up
+
+In commit 8e8b41f9d8c8e ("cfg80211: enforce lack of interface
+combinations"), the change below fixes the issue:
+
+       if (total == 1)
+               return 0;
+
+But it also introduces other dependencies for stable. For example,
+a full cherry pick of 8e8b41f9d8c8e would introduce additional
+regressions unless we also start cherry picking driver specific
+fixes like the following:
+
+  9b4760e  ath5k: add possible wiphy interface combinations
+  1ae2fc2  mac80211_hwsim: advertise interface combinations
+  20c8e8d  ath9k: add possible wiphy interface combinations
+
+And the purpose of the 'if (total == 1)' is to cover the specific
+use case (IBSS, adhoc) that was mentioned above. So we just pick
+the specific part out from 8e8b41f9d8c8e here.
+
+Doing so gives stable kernels a way to fix the change introduced
+by 463454b5dbd8, without having to make cherry picks specific to
+various NIC drivers.
+
+Signed-off-by: Liang Li <liang.li@windriver.com>
+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/wireless/util.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/net/wireless/util.c
++++ b/net/wireless/util.c
+@@ -975,6 +975,9 @@ int cfg80211_can_change_interface(struct
+       }
+       mutex_unlock(&rdev->devlist_mtx);
++      if (total == 1)
++              return 0;
++
+       for (i = 0; i < rdev->wiphy.n_iface_combinations; i++) {
+               const struct ieee80211_iface_combination *c;
+               struct ieee80211_iface_limit *limits;
diff --git a/queue-3.0/cfg80211-process-pending-events-when-unregistering-net-device.patch b/queue-3.0/cfg80211-process-pending-events-when-unregistering-net-device.patch
new file mode 100644 (file)
index 0000000..d6435cc
--- /dev/null
@@ -0,0 +1,65 @@
+From 1f6fc43e621167492ed4b7f3b4269c584c3d6ccc Mon Sep 17 00:00:00 2001
+From: Daniel Drake <dsd@laptop.org>
+Date: Thu, 2 Aug 2012 18:41:48 +0100
+Subject: cfg80211: process pending events when unregistering net device
+
+From: Daniel Drake <dsd@laptop.org>
+
+commit 1f6fc43e621167492ed4b7f3b4269c584c3d6ccc upstream.
+
+libertas currently calls cfg80211_disconnected() when it is being
+brought down. This causes an event to be allocated, but since the
+wdev is already removed from the rdev by the time that the event
+processing work executes, the event is never processed or freed.
+http://article.gmane.org/gmane.linux.kernel.wireless.general/95666
+
+Fix this leak, and other possible situations, by processing the event
+queue when a device is being unregistered. Thanks to Johannes Berg for
+the suggestion.
+
+Signed-off-by: Daniel Drake <dsd@laptop.org>
+Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/wireless/core.c |    5 +++++
+ net/wireless/core.h |    1 +
+ net/wireless/util.c |    2 +-
+ 3 files changed, 7 insertions(+), 1 deletion(-)
+
+--- a/net/wireless/core.c
++++ b/net/wireless/core.c
+@@ -959,6 +959,11 @@ static int cfg80211_netdev_notifier_call
+                */
+               synchronize_rcu();
+               INIT_LIST_HEAD(&wdev->list);
++              /*
++               * Ensure that all events have been processed and
++               * freed.
++               */
++              cfg80211_process_wdev_events(wdev);
+               break;
+       case NETDEV_PRE_UP:
+               if (!(wdev->wiphy->interface_modes & BIT(wdev->iftype)))
+--- a/net/wireless/core.h
++++ b/net/wireless/core.h
+@@ -426,6 +426,7 @@ int cfg80211_change_iface(struct cfg8021
+                         struct net_device *dev, enum nl80211_iftype ntype,
+                         u32 *flags, struct vif_params *params);
+ void cfg80211_process_rdev_events(struct cfg80211_registered_device *rdev);
++void cfg80211_process_wdev_events(struct wireless_dev *wdev);
+ int cfg80211_can_change_interface(struct cfg80211_registered_device *rdev,
+                                 struct wireless_dev *wdev,
+--- a/net/wireless/util.c
++++ b/net/wireless/util.c
+@@ -719,7 +719,7 @@ void cfg80211_upload_connect_keys(struct
+       wdev->connect_keys = NULL;
+ }
+-static void cfg80211_process_wdev_events(struct wireless_dev *wdev)
++void cfg80211_process_wdev_events(struct wireless_dev *wdev)
+ {
+       struct cfg80211_event *ev;
+       unsigned long flags;
diff --git a/queue-3.0/e1000e-nic-goes-up-and-immediately-goes-down.patch b/queue-3.0/e1000e-nic-goes-up-and-immediately-goes-down.patch
new file mode 100644 (file)
index 0000000..30b3a23
--- /dev/null
@@ -0,0 +1,39 @@
+From b7ec70be01a87f2c85df3ae11046e74f9b67e323 Mon Sep 17 00:00:00 2001
+From: Tushar Dave <tushar.n.dave@intel.com>
+Date: Tue, 31 Jul 2012 02:02:43 +0000
+Subject: e1000e: NIC goes up and immediately goes down
+
+From: Tushar Dave <tushar.n.dave@intel.com>
+
+commit b7ec70be01a87f2c85df3ae11046e74f9b67e323 upstream.
+
+Found that commit d478eb44 was a bad commit.
+If the link partner is transmitting codeword (even if NULL codeword),
+then the RXCW.C bit will be set so check for RXCW.CW is unnecessary.
+Ref: RH BZ 840642
+
+Reported-by: Fabio Futigami <ffutigam@redhat.com>
+Signed-off-by: Tushar Dave <tushar.n.dave@intel.com>
+CC: Marcelo Ricardo Leitner <mleitner@redhat.com>
+Tested-by: Aaron Brown <aaron.f.brown@intel.com>
+Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/e1000e/82571.c |    4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+--- a/drivers/net/e1000e/82571.c
++++ b/drivers/net/e1000e/82571.c
+@@ -1602,10 +1602,8 @@ static s32 e1000_check_for_serdes_link_8
+                        * auto-negotiation in the TXCW register and disable
+                        * forced link in the Device Control register in an
+                        * attempt to auto-negotiate with our link partner.
+-                       * If the partner code word is null, stop forcing
+-                       * and restart auto negotiation.
+                        */
+-                      if ((rxcw & E1000_RXCW_C) || !(rxcw & E1000_RXCW_CW))  {
++                      if (rxcw & E1000_RXCW_C) {
+                               /* Enable autoneg, and unforce link up */
+                               ew32(TXCW, mac->txcw);
+                               ew32(CTRL, (ctrl & ~E1000_CTRL_SLU));
diff --git a/queue-3.0/input-wacom-bamboo-one-1024-pressure-fix.patch b/queue-3.0/input-wacom-bamboo-one-1024-pressure-fix.patch
new file mode 100644 (file)
index 0000000..ff02dfb
--- /dev/null
@@ -0,0 +1,40 @@
+From 6dc463511d4a690f01a9248df3b384db717e0b1c Mon Sep 17 00:00:00 2001
+From: Chris Bagwell <chris@cnpbagwell.com>
+Date: Tue, 12 Jun 2012 00:25:48 -0700
+Subject: Input: wacom - Bamboo One 1024 pressure fix
+
+From: Chris Bagwell <chris@cnpbagwell.com>
+
+commit 6dc463511d4a690f01a9248df3b384db717e0b1c upstream.
+
+Bamboo One's with ID of 0x6a and 0x6b were added with correct
+indication of 1024 pressure levels but the Graphire packet routine
+was only looking at 9 bits.  Increased to 10 bits.
+
+This bug caused these devices to roll over to zero pressure at half
+way mark.
+
+The other devices using this routine only support 256 or 512 range
+and look to fix unused bits at zero.
+
+Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
+Reported-by: Tushant Mirchandani <tushantin@gmail.com>
+Reviewed-by: Ping Cheng <pingc@wacom.com>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/tablet/wacom_wac.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/input/tablet/wacom_wac.c
++++ b/drivers/input/tablet/wacom_wac.c
+@@ -242,7 +242,7 @@ static int wacom_graphire_irq(struct wac
+               input_report_abs(input, ABS_X, le16_to_cpup((__le16 *)&data[2]));
+               input_report_abs(input, ABS_Y, le16_to_cpup((__le16 *)&data[4]));
+               if (wacom->tool[0] != BTN_TOOL_MOUSE) {
+-                      input_report_abs(input, ABS_PRESSURE, data[6] | ((data[7] & 0x01) << 8));
++                      input_report_abs(input, ABS_PRESSURE, data[6] | ((data[7] & 0x03) << 8));
+                       input_report_key(input, BTN_TOUCH, data[1] & 0x01);
+                       input_report_key(input, BTN_STYLUS, data[1] & 0x02);
+                       input_report_key(input, BTN_STYLUS2, data[1] & 0x04);
diff --git a/queue-3.0/rt61pci-fix-null-pointer-dereference-in-config_lna_gain.patch b/queue-3.0/rt61pci-fix-null-pointer-dereference-in-config_lna_gain.patch
new file mode 100644 (file)
index 0000000..3171173
--- /dev/null
@@ -0,0 +1,36 @@
+From deee0214def5d8a32b8112f11d9c2b1696e9c0cb Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Fri, 3 Aug 2012 12:49:14 +0200
+Subject: rt61pci: fix NULL pointer dereference in config_lna_gain
+
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+
+commit deee0214def5d8a32b8112f11d9c2b1696e9c0cb upstream.
+
+We can not pass NULL libconf->conf->channel to rt61pci_config() as it
+is dereferenced unconditionally in rt61pci_config_lna_gain() subroutine.
+
+Resolves:
+https://bugzilla.kernel.org/show_bug.cgi?id=44361
+
+Reported-and-tested-by: <dolohow@gmail.com>
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/rt2x00/rt61pci.c |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/rt2x00/rt61pci.c
++++ b/drivers/net/wireless/rt2x00/rt61pci.c
+@@ -2254,8 +2254,7 @@ static void rt61pci_txdone(struct rt2x00
+ static void rt61pci_wakeup(struct rt2x00_dev *rt2x00dev)
+ {
+-      struct ieee80211_conf conf = { .flags = 0 };
+-      struct rt2x00lib_conf libconf = { .conf = &conf };
++      struct rt2x00lib_conf libconf = { .conf = &rt2x00dev->hw->conf };
+       rt61pci_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS);
+ }
index e961ad514a26a15effda1c4df790d7429eaf452b..2c601a2d4e175b5ea95d54e2e6af8861d2ca15df 100644 (file)
@@ -35,3 +35,10 @@ random-mix-in-architectural-randomness-in-extract_buf.patch
 x86-microcode-microcode_core.c-simple_strtoul-cleanup.patch
 x86-microcode-sanitize-per-cpu-microcode-reloading-interface.patch
 mm-hugetlbfs-close-race-during-teardown-of-hugetlbfs-shared-page-tables.patch
+arm-mxs-remove-mmap_min_addr-setting-from-mxs_defconfig.patch
+arm-pxa-remove-irq_to_gpio-from-ezx-pcap-driver.patch
+cfg80211-process-pending-events-when-unregistering-net-device.patch
+cfg80211-fix-interface-combinations-check-for-adhoc-ibss.patch
+e1000e-nic-goes-up-and-immediately-goes-down.patch
+input-wacom-bamboo-one-1024-pressure-fix.patch
+rt61pci-fix-null-pointer-dereference-in-config_lna_gain.patch