From: Greg Kroah-Hartman Date: Fri, 27 Sep 2013 16:18:28 +0000 (-0700) Subject: 3.10-stable patches X-Git-Tag: v3.0.98~43 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e5a8f72ab0bbbfd1511b1ef8259e8fb0dff38bee;p=thirdparty%2Fkernel%2Fstable-queue.git 3.10-stable patches added patches: bgmac-fix-internal-switch-initialization.patch cifs-fix-filp-leak-in-cifs_atomic_open.patch net-usb-cdc_ether-use-wwan-interface-for-telit-modules.patch pci-acpi-pm-clear-pme_poll-for-devices-in-d3cold-on-wakeup.patch rt2800-fix-wrong-tx-power-compensation.patch --- diff --git a/queue-3.10/bgmac-fix-internal-switch-initialization.patch b/queue-3.10/bgmac-fix-internal-switch-initialization.patch new file mode 100644 index 00000000000..d9ed8f7bf91 --- /dev/null +++ b/queue-3.10/bgmac-fix-internal-switch-initialization.patch @@ -0,0 +1,47 @@ +From 6a391e7bf26c04a6df5f77290e1146941d210d49 Mon Sep 17 00:00:00 2001 +From: Rafał Miłecki +Date: Sun, 15 Sep 2013 00:22:47 +0200 +Subject: bgmac: fix internal switch initialization + +From: Rafał Miłecki + +commit 6a391e7bf26c04a6df5f77290e1146941d210d49 upstream. + +Some devices (BCM4749, BCM5357, BCM53572) have internal switch that +requires initialization. We already have code for this, but because +of the typo in code it was never working. This resulted in network not +working for some routers and possibility of soft-bricking them. + +Use correct bit for switch initialization and fix typo in the define. + +Signed-off-by: Rafał Miłecki +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/ethernet/broadcom/bgmac.c | 2 +- + drivers/net/ethernet/broadcom/bgmac.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/net/ethernet/broadcom/bgmac.c ++++ b/drivers/net/ethernet/broadcom/bgmac.c +@@ -908,7 +908,7 @@ static void bgmac_chip_reset(struct bgma + struct bcma_drv_cc *cc = &bgmac->core->bus->drv_cc; + u8 et_swtype = 0; + u8 sw_type = BGMAC_CHIPCTL_1_SW_TYPE_EPHY | +- BGMAC_CHIPCTL_1_IF_TYPE_RMII; ++ BGMAC_CHIPCTL_1_IF_TYPE_MII; + char buf[2]; + + if (bcm47xx_nvram_getenv("et_swtype", buf, 1) > 0) { +--- a/drivers/net/ethernet/broadcom/bgmac.h ++++ b/drivers/net/ethernet/broadcom/bgmac.h +@@ -333,7 +333,7 @@ + + #define BGMAC_CHIPCTL_1_IF_TYPE_MASK 0x00000030 + #define BGMAC_CHIPCTL_1_IF_TYPE_RMII 0x00000000 +-#define BGMAC_CHIPCTL_1_IF_TYPE_MI 0x00000010 ++#define BGMAC_CHIPCTL_1_IF_TYPE_MII 0x00000010 + #define BGMAC_CHIPCTL_1_IF_TYPE_RGMII 0x00000020 + #define BGMAC_CHIPCTL_1_SW_TYPE_MASK 0x000000C0 + #define BGMAC_CHIPCTL_1_SW_TYPE_EPHY 0x00000000 diff --git a/queue-3.10/cifs-fix-filp-leak-in-cifs_atomic_open.patch b/queue-3.10/cifs-fix-filp-leak-in-cifs_atomic_open.patch new file mode 100644 index 00000000000..e4e6cc132a1 --- /dev/null +++ b/queue-3.10/cifs-fix-filp-leak-in-cifs_atomic_open.patch @@ -0,0 +1,31 @@ +From dfb1d61b0e9f9e2c542e9adc8d970689f4114ff6 Mon Sep 17 00:00:00 2001 +From: Miklos Szeredi +Date: Mon, 16 Sep 2013 14:51:59 +0200 +Subject: cifs: fix filp leak in cifs_atomic_open() + +From: Miklos Szeredi + +commit dfb1d61b0e9f9e2c542e9adc8d970689f4114ff6 upstream. + +If an error occurs after having called finish_open() then fput() needs to +be called on the already opened file. + +Signed-off-by: Miklos Szeredi +Cc: Steve French +Signed-off-by: Al Viro +Signed-off-by: Greg Kroah-Hartman + +--- + fs/cifs/dir.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/fs/cifs/dir.c ++++ b/fs/cifs/dir.c +@@ -491,6 +491,7 @@ cifs_atomic_open(struct inode *inode, st + if (server->ops->close) + server->ops->close(xid, tcon, &fid); + cifs_del_pending_open(&open); ++ fput(file); + rc = -ENOMEM; + } + diff --git a/queue-3.10/net-usb-cdc_ether-use-wwan-interface-for-telit-modules.patch b/queue-3.10/net-usb-cdc_ether-use-wwan-interface-for-telit-modules.patch new file mode 100644 index 00000000000..45700b8685e --- /dev/null +++ b/queue-3.10/net-usb-cdc_ether-use-wwan-interface-for-telit-modules.patch @@ -0,0 +1,32 @@ +From 0092820407901a0b2c4e343e85f96bb7abfcded1 Mon Sep 17 00:00:00 2001 +From: Fabio Porcedda +Date: Mon, 16 Sep 2013 11:47:50 +0200 +Subject: net: usb: cdc_ether: Use wwan interface for Telit modules + +From: Fabio Porcedda + +commit 0092820407901a0b2c4e343e85f96bb7abfcded1 upstream. + +Signed-off-by: Fabio Porcedda +Acked-by: Oliver Neukum +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/usb/cdc_ether.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/net/usb/cdc_ether.c ++++ b/drivers/net/usb/cdc_ether.c +@@ -709,6 +709,11 @@ static const struct usb_device_id produc + .bInterfaceProtocol = USB_CDC_PROTO_NONE, + .driver_info = (unsigned long)&wwan_info, + }, { ++ /* Telit modules */ ++ USB_VENDOR_AND_INTERFACE_INFO(0x1bc7, USB_CLASS_COMM, ++ USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), ++ .driver_info = (kernel_ulong_t) &wwan_info, ++}, { + USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ETHERNET, + USB_CDC_PROTO_NONE), + .driver_info = (unsigned long) &cdc_info, diff --git a/queue-3.10/pci-acpi-pm-clear-pme_poll-for-devices-in-d3cold-on-wakeup.patch b/queue-3.10/pci-acpi-pm-clear-pme_poll-for-devices-in-d3cold-on-wakeup.patch new file mode 100644 index 00000000000..a21caa0ae86 --- /dev/null +++ b/queue-3.10/pci-acpi-pm-clear-pme_poll-for-devices-in-d3cold-on-wakeup.patch @@ -0,0 +1,53 @@ +From 834145156bedadfb50121f0bc5e9d9f9f942bcca Mon Sep 17 00:00:00 2001 +From: "Rafael J. Wysocki" +Date: Sat, 14 Sep 2013 03:38:20 +0200 +Subject: PCI / ACPI / PM: Clear pme_poll for devices in D3cold on wakeup + +From: "Rafael J. Wysocki" + +commit 834145156bedadfb50121f0bc5e9d9f9f942bcca upstream. + +Commit 448bd85 (PCI/PM: add PCIe runtime D3cold support) added a +piece of code to pci_acpi_wake_dev() causing that function to behave +in a special way for devices in D3cold (so that their configuration +registers are not accessed before those devices are resumed). +However, it didn't take the clearing of the pme_poll flag into +account. That has to be done for all devices, even if they are in +D3cold, or pci_pme_list_scan() will not know that wakeup has been +signaled for the device and will poll its PME Status bit +unnecessarily. + +Fix the problem by moving the clearing of the pme_poll flag in +pci_acpi_wake_dev() before the code introduced by commit 448bd85. + +Reported-and-tested-by: David E. Box +Signed-off-by: Rafael J. Wysocki +Acked-by: Bjorn Helgaas +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/pci/pci-acpi.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/drivers/pci/pci-acpi.c ++++ b/drivers/pci/pci-acpi.c +@@ -47,6 +47,9 @@ static void pci_acpi_wake_dev(acpi_handl + if (event != ACPI_NOTIFY_DEVICE_WAKE || !pci_dev) + return; + ++ if (pci_dev->pme_poll) ++ pci_dev->pme_poll = false; ++ + if (pci_dev->current_state == PCI_D3cold) { + pci_wakeup_event(pci_dev); + pm_runtime_resume(&pci_dev->dev); +@@ -57,9 +60,6 @@ static void pci_acpi_wake_dev(acpi_handl + if (pci_dev->pme_support) + pci_check_pme_status(pci_dev); + +- if (pci_dev->pme_poll) +- pci_dev->pme_poll = false; +- + pci_wakeup_event(pci_dev); + pm_runtime_resume(&pci_dev->dev); + diff --git a/queue-3.10/rt2800-fix-wrong-tx-power-compensation.patch b/queue-3.10/rt2800-fix-wrong-tx-power-compensation.patch new file mode 100644 index 00000000000..27d22ff6fc9 --- /dev/null +++ b/queue-3.10/rt2800-fix-wrong-tx-power-compensation.patch @@ -0,0 +1,43 @@ +From 6e956da2027c767859128b9bfef085cf2a8e233b Mon Sep 17 00:00:00 2001 +From: Stanislaw Gruszka +Date: Mon, 26 Aug 2013 15:18:53 +0200 +Subject: rt2800: fix wrong TX power compensation + +From: Stanislaw Gruszka + +commit 6e956da2027c767859128b9bfef085cf2a8e233b upstream. + +We should not do temperature compensation on devices without +EXTERNAL_TX_ALC bit set (called DynamicTxAgcControl on vendor driver). +Such devices can have totally bogus TSSI parameters on the EEPROM, +but still threaded by us as valid and result doing wrong TX power +calculations. + +This fix inability to connect to AP on slightly longer distance on +some Ralink chips/devices. + +Reported-and-tested-by: Fabien ADAM +Signed-off-by: Stanislaw Gruszka +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/rt2x00/rt2800lib.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/net/wireless/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/rt2x00/rt2800lib.c +@@ -2767,6 +2767,13 @@ static int rt2800_get_gain_calibration_d + int i; + + /* ++ * First check if temperature compensation is supported. ++ */ ++ rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1, &eeprom); ++ if (!rt2x00_get_field16(eeprom, EEPROM_NIC_CONF1_EXTERNAL_TX_ALC)) ++ return 0; ++ ++ /* + * Read TSSI boundaries for temperature compensation from + * the EEPROM. + * diff --git a/queue-3.10/series b/queue-3.10/series index eede67a2759..dea48112cc7 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -1,2 +1,7 @@ rt2x00-rt2800usb-add-usb-device-id-for-linksys-ae3000.patch wireless-rt2x00-rt2800usb-add-rt3573-devices.patch +pci-acpi-pm-clear-pme_poll-for-devices-in-d3cold-on-wakeup.patch +net-usb-cdc_ether-use-wwan-interface-for-telit-modules.patch +cifs-fix-filp-leak-in-cifs_atomic_open.patch +bgmac-fix-internal-switch-initialization.patch +rt2800-fix-wrong-tx-power-compensation.patch