From: Greg Kroah-Hartman Date: Mon, 13 Aug 2012 19:00:09 +0000 (-0700) Subject: 3.0-stable patches X-Git-Tag: v3.5.2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9028b9500e94bf0079485f164ce9887c164e5baa;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0-stable patches 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 --- 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 index 00000000000..9dd5b2ff074 --- /dev/null +++ b/queue-3.0/arm-mxs-remove-mmap_min_addr-setting-from-mxs_defconfig.patch @@ -0,0 +1,49 @@ +From 3bed491c8d28329e34f8a31e3fe64d03f3a350f1 Mon Sep 17 00:00:00 2001 +From: Marek Vasut +Date: Fri, 3 Aug 2012 20:54:48 +0200 +Subject: ARM: mxs: Remove MMAP_MIN_ADDR setting from mxs_defconfig + +From: Marek Vasut + +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 +Cc: Russell King +Cc: Wolfgang Denk +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..2093f11ef9d --- /dev/null +++ b/queue-3.0/arm-pxa-remove-irq_to_gpio-from-ezx-pcap-driver.patch @@ -0,0 +1,53 @@ +From 59ee93a528b94ef4e81a08db252b0326feff171f Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Sun, 5 Aug 2012 14:58:37 +0000 +Subject: ARM: pxa: remove irq_to_gpio from ezx-pcap driver + +From: Arnd Bergmann + +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 +Acked-by: Haojian Zhuang +Cc: Samuel Ortiz +Cc: Daniel Ribeiro +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..83f1b006203 --- /dev/null +++ b/queue-3.0/cfg80211-fix-interface-combinations-check-for-adhoc-ibss.patch @@ -0,0 +1,68 @@ +From paul.gortmaker@windriver.com Mon Aug 13 11:39:55 2012 +From: Paul Gortmaker +Date: Thu, 2 Aug 2012 18:55:41 -0400 +Subject: cfg80211: fix interface combinations check for ADHOC(IBSS) +To: Johannes Berg +Cc: , , Liang Li , , Paul Gortmaker +Message-ID: <1343948141-25005-1-git-send-email-paul.gortmaker@windriver.com> + + +From: Liang Li + +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 +Signed-off-by: Paul Gortmaker +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..d6435cccdb9 --- /dev/null +++ b/queue-3.0/cfg80211-process-pending-events-when-unregistering-net-device.patch @@ -0,0 +1,65 @@ +From 1f6fc43e621167492ed4b7f3b4269c584c3d6ccc Mon Sep 17 00:00:00 2001 +From: Daniel Drake +Date: Thu, 2 Aug 2012 18:41:48 +0100 +Subject: cfg80211: process pending events when unregistering net device + +From: Daniel Drake + +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 +Reviewed-by: Johannes Berg +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..30b3a23d2ed --- /dev/null +++ b/queue-3.0/e1000e-nic-goes-up-and-immediately-goes-down.patch @@ -0,0 +1,39 @@ +From b7ec70be01a87f2c85df3ae11046e74f9b67e323 Mon Sep 17 00:00:00 2001 +From: Tushar Dave +Date: Tue, 31 Jul 2012 02:02:43 +0000 +Subject: e1000e: NIC goes up and immediately goes down + +From: Tushar Dave + +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 +Signed-off-by: Tushar Dave +CC: Marcelo Ricardo Leitner +Tested-by: Aaron Brown +Signed-off-by: Peter P Waskiewicz Jr +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..ff02dfb6d7c --- /dev/null +++ b/queue-3.0/input-wacom-bamboo-one-1024-pressure-fix.patch @@ -0,0 +1,40 @@ +From 6dc463511d4a690f01a9248df3b384db717e0b1c Mon Sep 17 00:00:00 2001 +From: Chris Bagwell +Date: Tue, 12 Jun 2012 00:25:48 -0700 +Subject: Input: wacom - Bamboo One 1024 pressure fix + +From: Chris Bagwell + +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 +Reported-by: Tushant Mirchandani +Reviewed-by: Ping Cheng +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..3171173eae7 --- /dev/null +++ b/queue-3.0/rt61pci-fix-null-pointer-dereference-in-config_lna_gain.patch @@ -0,0 +1,36 @@ +From deee0214def5d8a32b8112f11d9c2b1696e9c0cb Mon Sep 17 00:00:00 2001 +From: Stanislaw Gruszka +Date: Fri, 3 Aug 2012 12:49:14 +0200 +Subject: rt61pci: fix NULL pointer dereference in config_lna_gain + +From: Stanislaw Gruszka + +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: +Signed-off-by: Stanislaw Gruszka +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + 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); + } diff --git a/queue-3.0/series b/queue-3.0/series index e961ad514a2..2c601a2d4e1 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -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