]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
fixes for 4.9
authorSasha Levin <sashal@kernel.org>
Thu, 30 Jan 2020 11:55:18 +0000 (06:55 -0500)
committerSasha Levin <sashal@kernel.org>
Thu, 30 Jan 2020 11:55:18 +0000 (06:55 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.9/arc-eznps-fix-allmodconfig-kconfig-warning.patch [new file with mode: 0644]
queue-4.9/atm-eni-fix-uninitialized-variable-warning.patch [new file with mode: 0644]
queue-4.9/drivers-net-b44-change-to-non-atomic-bit-operations-.patch [new file with mode: 0644]
queue-4.9/gpio-max77620-add-missing-dependency-on-gpiolib_irqc.patch [new file with mode: 0644]
queue-4.9/net-wan-sdla-fix-cast-from-pointer-to-integer-of-dif.patch [new file with mode: 0644]
queue-4.9/series
queue-4.9/usb-storage-disable-uas-on-jmicron-sata-enclosure.patch [new file with mode: 0644]
queue-4.9/watchdog-rn5t618_wdt-fix-module-aliases.patch [new file with mode: 0644]

diff --git a/queue-4.9/arc-eznps-fix-allmodconfig-kconfig-warning.patch b/queue-4.9/arc-eznps-fix-allmodconfig-kconfig-warning.patch
new file mode 100644 (file)
index 0000000..1a3a8d2
--- /dev/null
@@ -0,0 +1,42 @@
+From 926a54e9a39aef9934bc6f8b3d35d20f0409654d Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 26 Nov 2019 17:54:09 -0800
+Subject: arc: eznps: fix allmodconfig kconfig warning
+
+From: Randy Dunlap <rdunlap@infradead.org>
+
+[ Upstream commit 1928b36cfa4df1aeedf5f2644d0c33f3a1fcfd7b ]
+
+Fix kconfig warning for arch/arc/plat-eznps/Kconfig allmodconfig:
+
+WARNING: unmet direct dependencies detected for CLKSRC_NPS
+  Depends on [n]: GENERIC_CLOCKEVENTS [=y] && !PHYS_ADDR_T_64BIT [=y]
+  Selected by [y]:
+  - ARC_PLAT_EZNPS [=y]
+
+Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
+Cc: Vineet Gupta <vgupta@synopsys.com>
+Cc: Ofer Levi <oferle@mellanox.com>
+Cc: linux-snps-arc@lists.infradead.org
+Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arc/plat-eznps/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arc/plat-eznps/Kconfig b/arch/arc/plat-eznps/Kconfig
+index 1d175cc6ad6d3..86f844caa405d 100644
+--- a/arch/arc/plat-eznps/Kconfig
++++ b/arch/arc/plat-eznps/Kconfig
+@@ -7,7 +7,7 @@ menuconfig ARC_PLAT_EZNPS
+       bool "\"EZchip\" ARC dev platform"
+       select ARC_HAS_COH_CACHES if SMP
+       select CPU_BIG_ENDIAN
+-      select CLKSRC_NPS
++      select CLKSRC_NPS if !PHYS_ADDR_T_64BIT
+       select EZNPS_GIC
+       select EZCHIP_NPS_MANAGEMENT_ENET if ETHERNET
+       help
+-- 
+2.20.1
+
diff --git a/queue-4.9/atm-eni-fix-uninitialized-variable-warning.patch b/queue-4.9/atm-eni-fix-uninitialized-variable-warning.patch
new file mode 100644 (file)
index 0000000..e061882
--- /dev/null
@@ -0,0 +1,52 @@
+From 712287acb1ea7d8d48177432e25210ef9aed7540 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 7 Jan 2020 21:43:59 +0100
+Subject: atm: eni: fix uninitialized variable warning
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+[ Upstream commit 30780d086a83332adcd9362281201cee7c3d9d19 ]
+
+With -O3, gcc has found an actual unintialized variable stored
+into an mmio register in two instances:
+
+drivers/atm/eni.c: In function 'discard':
+drivers/atm/eni.c:465:13: error: 'dma[1]' is used uninitialized in this function [-Werror=uninitialized]
+   writel(dma[i*2+1],eni_dev->rx_dma+dma_wr*8+4);
+             ^
+drivers/atm/eni.c:465:13: error: 'dma[3]' is used uninitialized in this function [-Werror=uninitialized]
+
+Change the code to always write zeroes instead.
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/atm/eni.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c
+index 40c2d561417bd..88819409e0beb 100644
+--- a/drivers/atm/eni.c
++++ b/drivers/atm/eni.c
+@@ -372,7 +372,7 @@ static int do_rx_dma(struct atm_vcc *vcc,struct sk_buff *skb,
+               here = (eni_vcc->descr+skip) & (eni_vcc->words-1);
+               dma[j++] = (here << MID_DMA_COUNT_SHIFT) | (vcc->vci
+                   << MID_DMA_VCI_SHIFT) | MID_DT_JK;
+-              j++;
++              dma[j++] = 0;
+       }
+       here = (eni_vcc->descr+size+skip) & (eni_vcc->words-1);
+       if (!eff) size += skip;
+@@ -445,7 +445,7 @@ static int do_rx_dma(struct atm_vcc *vcc,struct sk_buff *skb,
+       if (size != eff) {
+               dma[j++] = (here << MID_DMA_COUNT_SHIFT) |
+                   (vcc->vci << MID_DMA_VCI_SHIFT) | MID_DT_JK;
+-              j++;
++              dma[j++] = 0;
+       }
+       if (!j || j > 2*RX_DMA_BUF) {
+               printk(KERN_CRIT DEV_LABEL "!j or j too big!!!\n");
+-- 
+2.20.1
+
diff --git a/queue-4.9/drivers-net-b44-change-to-non-atomic-bit-operations-.patch b/queue-4.9/drivers-net-b44-change-to-non-atomic-bit-operations-.patch
new file mode 100644 (file)
index 0000000..980b85c
--- /dev/null
@@ -0,0 +1,66 @@
+From 325ffe0f4eb29c8e3ea624d22b35a1551d215143 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 2 Jan 2020 13:27:06 -0800
+Subject: drivers/net/b44: Change to non-atomic bit operations on pwol_mask
+
+From: Fenghua Yu <fenghua.yu@intel.com>
+
+[ Upstream commit f11421ba4af706cb4f5703de34fa77fba8472776 ]
+
+Atomic operations that span cache lines are super-expensive on x86
+(not just to the current processor, but also to other processes as all
+memory operations are blocked until the operation completes). Upcoming
+x86 processors have a switch to cause such operations to generate a #AC
+trap. It is expected that some real time systems will enable this mode
+in BIOS.
+
+In preparation for this, it is necessary to fix code that may execute
+atomic instructions with operands that cross cachelines because the #AC
+trap will crash the kernel.
+
+Since "pwol_mask" is local and never exposed to concurrency, there is
+no need to set bits in pwol_mask using atomic operations.
+
+Directly operate on the byte which contains the bit instead of using
+__set_bit() to avoid any big endian concern due to type cast to
+unsigned long in __set_bit().
+
+Suggested-by: Peter Zijlstra <peterz@infradead.org>
+Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
+Signed-off-by: Tony Luck <tony.luck@intel.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/broadcom/b44.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c
+index 17aa33c5567d6..d95dec5957861 100644
+--- a/drivers/net/ethernet/broadcom/b44.c
++++ b/drivers/net/ethernet/broadcom/b44.c
+@@ -1524,8 +1524,10 @@ static int b44_magic_pattern(u8 *macaddr, u8 *ppattern, u8 *pmask, int offset)
+       int ethaddr_bytes = ETH_ALEN;
+       memset(ppattern + offset, 0xff, magicsync);
+-      for (j = 0; j < magicsync; j++)
+-              set_bit(len++, (unsigned long *) pmask);
++      for (j = 0; j < magicsync; j++) {
++              pmask[len >> 3] |= BIT(len & 7);
++              len++;
++      }
+       for (j = 0; j < B44_MAX_PATTERNS; j++) {
+               if ((B44_PATTERN_SIZE - len) >= ETH_ALEN)
+@@ -1537,7 +1539,8 @@ static int b44_magic_pattern(u8 *macaddr, u8 *ppattern, u8 *pmask, int offset)
+               for (k = 0; k< ethaddr_bytes; k++) {
+                       ppattern[offset + magicsync +
+                               (j * ETH_ALEN) + k] = macaddr[k];
+-                      set_bit(len++, (unsigned long *) pmask);
++                      pmask[len >> 3] |= BIT(len & 7);
++                      len++;
+               }
+       }
+       return len - 1;
+-- 
+2.20.1
+
diff --git a/queue-4.9/gpio-max77620-add-missing-dependency-on-gpiolib_irqc.patch b/queue-4.9/gpio-max77620-add-missing-dependency-on-gpiolib_irqc.patch
new file mode 100644 (file)
index 0000000..13b59fe
--- /dev/null
@@ -0,0 +1,41 @@
+From 3360ad9ca5fc6ebd6a54c354c9a7e93cd1ee437c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 6 Jan 2020 04:51:54 +0300
+Subject: gpio: max77620: Add missing dependency on GPIOLIB_IRQCHIP
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Dmitry Osipenko <digetx@gmail.com>
+
+[ Upstream commit c5706c7defc79de68a115b5536376298a8fef111 ]
+
+Driver fails to compile in a minimized kernel's configuration because of
+the missing dependency on GPIOLIB_IRQCHIP.
+
+ error: ‘struct gpio_chip’ has no member named ‘irq’
+   44 |   virq = irq_find_mapping(gpio->gpio_chip.irq.domain, offset);
+
+Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
+Link: https://lore.kernel.org/r/20200106015154.12040-1-digetx@gmail.com
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpio/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
+index b992badb99dd2..5d097d631e39f 100644
+--- a/drivers/gpio/Kconfig
++++ b/drivers/gpio/Kconfig
+@@ -920,6 +920,7 @@ config GPIO_LP873X
+ config GPIO_MAX77620
+       tristate "GPIO support for PMIC MAX77620 and MAX20024"
+       depends on MFD_MAX77620
++      select GPIOLIB_IRQCHIP
+       help
+         GPIO driver for MAX77620 and MAX20024 PMIC from Maxim Semiconductor.
+         MAX77620 PMIC has 8 pins that can be configured as GPIOs. The
+-- 
+2.20.1
+
diff --git a/queue-4.9/net-wan-sdla-fix-cast-from-pointer-to-integer-of-dif.patch b/queue-4.9/net-wan-sdla-fix-cast-from-pointer-to-integer-of-dif.patch
new file mode 100644 (file)
index 0000000..814cbf2
--- /dev/null
@@ -0,0 +1,43 @@
+From 5911938be864f40b20574eb7863e2ec7aeed3815 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 4 Jan 2020 15:31:43 +0100
+Subject: net: wan: sdla: Fix cast from pointer to integer of different size
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Krzysztof Kozlowski <krzk@kernel.org>
+
+[ Upstream commit 00c0688cecadbf7ac2f5b4cdb36d912a2d3f0cca ]
+
+Since net_device.mem_start is unsigned long, it should not be cast to
+int right before casting to pointer.  This fixes warning (compile
+testing on alpha architecture):
+
+    drivers/net/wan/sdla.c: In function ‘sdla_transmit’:
+    drivers/net/wan/sdla.c:711:13: warning:
+        cast to pointer from integer of different size [-Wint-to-pointer-cast]
+
+Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/wan/sdla.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/net/wan/sdla.c b/drivers/net/wan/sdla.c
+index 421ac5f856994..79fd891509479 100644
+--- a/drivers/net/wan/sdla.c
++++ b/drivers/net/wan/sdla.c
+@@ -711,7 +711,7 @@ static netdev_tx_t sdla_transmit(struct sk_buff *skb,
+                                       spin_lock_irqsave(&sdla_lock, flags);
+                                       SDLA_WINDOW(dev, addr);
+-                                      pbuf = (void *)(((int) dev->mem_start) + (addr & SDLA_ADDR_MASK));
++                                      pbuf = (void *)(dev->mem_start + (addr & SDLA_ADDR_MASK));
+                                       __sdla_write(dev, pbuf->buf_addr, skb->data, skb->len);
+                                       SDLA_WINDOW(dev, addr);
+                                       pbuf->opp_flag = 1;
+-- 
+2.20.1
+
index 57900454989eec3b6963ee64d0dbce8c71fb574d..5b47680264623245e19ad68b927aee420090212f 100644 (file)
@@ -14,3 +14,10 @@ ath9k-fix-storage-endpoint-lookup.patch
 brcmfmac-fix-interface-sanity-check.patch
 rtl8xxxu-fix-interface-sanity-check.patch
 zd1211rw-fix-storage-endpoint-lookup.patch
+arc-eznps-fix-allmodconfig-kconfig-warning.patch
+watchdog-rn5t618_wdt-fix-module-aliases.patch
+drivers-net-b44-change-to-non-atomic-bit-operations-.patch
+net-wan-sdla-fix-cast-from-pointer-to-integer-of-dif.patch
+gpio-max77620-add-missing-dependency-on-gpiolib_irqc.patch
+atm-eni-fix-uninitialized-variable-warning.patch
+usb-storage-disable-uas-on-jmicron-sata-enclosure.patch
diff --git a/queue-4.9/usb-storage-disable-uas-on-jmicron-sata-enclosure.patch b/queue-4.9/usb-storage-disable-uas-on-jmicron-sata-enclosure.patch
new file mode 100644 (file)
index 0000000..88453f4
--- /dev/null
@@ -0,0 +1,47 @@
+From 3b1c4edc983e790015f718fd199a41a111f456dc Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 8 Sep 2015 09:53:38 -0700
+Subject: usb-storage: Disable UAS on JMicron SATA enclosure
+
+From: Laura Abbott <labbott@fedoraproject.org>
+
+[ Upstream commit bc3bdb12bbb3492067c8719011576370e959a2e6 ]
+
+Steve Ellis reported incorrect block sizes and alignement
+offsets with a SATA enclosure. Adding a quirk to disable
+UAS fixes the problems.
+
+Reported-by: Steven Ellis <sellis@redhat.com>
+Cc: Pacho Ramos <pachoramos@gmail.com>
+Signed-off-by: Laura Abbott <labbott@fedoraproject.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/usb/storage/unusual_uas.h | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
+index f15aa47c54a9d..0eb8c67ee1382 100644
+--- a/drivers/usb/storage/unusual_uas.h
++++ b/drivers/usb/storage/unusual_uas.h
+@@ -163,12 +163,15 @@ UNUSUAL_DEV(0x2537, 0x1068, 0x0000, 0x9999,
+               USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+               US_FL_IGNORE_UAS),
+-/* Reported-by: Takeo Nakayama <javhera@gmx.com> */
++/*
++ * Initially Reported-by: Takeo Nakayama <javhera@gmx.com>
++ * UAS Ignore Reported by Steven Ellis <sellis@redhat.com>
++ */
+ UNUSUAL_DEV(0x357d, 0x7788, 0x0000, 0x9999,
+               "JMicron",
+               "JMS566",
+               USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+-              US_FL_NO_REPORT_OPCODES),
++              US_FL_NO_REPORT_OPCODES | US_FL_IGNORE_UAS),
+ /* Reported-by: Hans de Goede <hdegoede@redhat.com> */
+ UNUSUAL_DEV(0x4971, 0x1012, 0x0000, 0x9999,
+-- 
+2.20.1
+
diff --git a/queue-4.9/watchdog-rn5t618_wdt-fix-module-aliases.patch b/queue-4.9/watchdog-rn5t618_wdt-fix-module-aliases.patch
new file mode 100644 (file)
index 0000000..cdd7aa7
--- /dev/null
@@ -0,0 +1,37 @@
+From 6daa454483ffcd8000aab1f8792fcce902b19e2e Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 13 Dec 2019 22:48:02 +0100
+Subject: watchdog: rn5t618_wdt: fix module aliases
+
+From: Andreas Kemnade <andreas@kemnade.info>
+
+[ Upstream commit a76dfb859cd42df6e3d1910659128ffcd2fb6ba2 ]
+
+Platform device aliases were missing so module autoloading
+did not work.
+
+Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Link: https://lore.kernel.org/r/20191213214802.22268-1-andreas@kemnade.info
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/watchdog/rn5t618_wdt.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/watchdog/rn5t618_wdt.c b/drivers/watchdog/rn5t618_wdt.c
+index 0805ee2acd7a9..7aa8bf2d0f917 100644
+--- a/drivers/watchdog/rn5t618_wdt.c
++++ b/drivers/watchdog/rn5t618_wdt.c
+@@ -193,6 +193,7 @@ static struct platform_driver rn5t618_wdt_driver = {
+ module_platform_driver(rn5t618_wdt_driver);
++MODULE_ALIAS("platform:rn5t618-wdt");
+ MODULE_AUTHOR("Beniamino Galvani <b.galvani@gmail.com>");
+ MODULE_DESCRIPTION("RN5T618 watchdog driver");
+ MODULE_LICENSE("GPL v2");
+-- 
+2.20.1
+