Skip to content

Commit

Permalink
kernel: bump to 4.9.214, 4.14.171, 4.19.106 (coolsnowwolf#3318)
Browse files Browse the repository at this point in the history
* kernel: bump 4.14 to 4.14.171

Refreshed all patches.

Fixes:
- CVE-2013-1798

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <[email protected]>

* kernel: bump 4.19 to 4.19.105

Refreshed all patches.

Fixes:
- CVE-2013-1798
- CVE-2019-3016

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <[email protected]>

* kernel: bump 4.19 to 4.19.106

Refreshed all patches.

Remove upstreamed:
- 950-0786-leds-pca963x-Fix-open-drain-initialization.patch

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <[email protected]>

* kernel: bump to 4.9.214, 4.14.171, 4.19.106

Co-authored-by: Koen Vandeputte <[email protected]>
  • Loading branch information
aiamadeus and Koen Vandeputte authored Feb 25, 2020
1 parent 14fa912 commit 01ab5cf
Show file tree
Hide file tree
Showing 144 changed files with 2,355 additions and 369 deletions.
12 changes: 6 additions & 6 deletions include/kernel-version.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif

LINUX_VERSION-4.9 = .212
LINUX_VERSION-4.14 = .169
LINUX_VERSION-4.19 = .101
LINUX_VERSION-4.9 = .214
LINUX_VERSION-4.14 = .171
LINUX_VERSION-4.19 = .106

LINUX_KERNEL_HASH-4.9.212 = ade738a606c9b52ecf764e94b4e77116caa3a2b8abd30f4534d220ac6894be30
LINUX_KERNEL_HASH-4.14.169 = d88ea97993c56b1fa0b0a05061bcde476c6be4fc3bb2de8bd97a8f8ff7278249
LINUX_KERNEL_HASH-4.19.101 = be26156abdb38ac0576a34a235ef456bb8ca67fbbe56fc6649b8d069159f8bc4
LINUX_KERNEL_HASH-4.9.214 = b47f093dac7034c7c4722e80042c05e4ef53c14a4f28aa992117a127d2b1e483
LINUX_KERNEL_HASH-4.14.171 = 4fe02489e4b4a187eccf0ef87df6100534c9d485e76d876b1fa247c7635332a0
LINUX_KERNEL_HASH-4.19.106 = 63c8bd76a9b282e18112f8ff9e3fd41e3d1df9f9b7248ea1a370b05a827e9cda

remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -1299,4 +1299,12 @@ config GPIO_VIPERBOARD
@@ -1300,4 +1300,12 @@ config GPIO_VIPERBOARD

endmenu

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
+#endif
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -1251,7 +1251,6 @@ menu "SPI GPIO expanders"
@@ -1252,7 +1252,6 @@ menu "SPI GPIO expanders"

config GPIO_74X164
tristate "74x164 serial-in/parallel-out 8-bits shift register"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -1306,4 +1306,9 @@ config GPIO_NXP_74HC153
@@ -1307,4 +1307,9 @@ config GPIO_NXP_74HC153
Platform driver for NXP 74HC153 Dual 4-input Multiplexer. This
provides a GPIO interface supporting input mode only.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
+
+ switch (pdev->id) {
+ case 0:
+ base = 0x18116c94;
+ base = 0x18116d94;
+ break;
+
+ case 1:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -831,7 +831,7 @@
* No flags defined yet.
--- a/net/core/utils.c
+++ b/net/core/utils.c
@@ -424,8 +424,14 @@ void inet_proto_csum_replace16(__sum16 *
@@ -441,8 +441,14 @@ void inet_proto_csum_replace16(__sum16 *
bool pseudohdr)
{
__be32 diff[] = {
Expand Down
120 changes: 120 additions & 0 deletions target/linux/ar71xx/patches-4.14/953-qca955x-pci-reset-fixes.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
--- a/arch/mips/ath79/common.c
+++ b/arch/mips/ath79/common.c
@@ -153,6 +153,24 @@ void ath79_device_reset_clear(u32 mask)
}
EXPORT_SYMBOL_GPL(ath79_device_reset_clear);

+void ath79_device_reset2_clear(u32 mask)
+{
+ unsigned long flags;
+ u32 reg;
+ u32 t;
+
+ if (soc_is_qca955x())
+ reg = QCA955X_RESET_REG_RESET2_MODULE;
+ else
+ panic("Reset register not defined for this SOC");
+
+ spin_lock_irqsave(&ath79_device_reset_lock, flags);
+ t = ath79_reset_rr(reg);
+ ath79_reset_wr(reg, t & ~mask);
+ spin_unlock_irqrestore(&ath79_device_reset_lock, flags);
+}
+EXPORT_SYMBOL_GPL(ath79_device_reset2_clear);
+
u32 ath79_device_reset_get(u32 mask)
{
unsigned long flags;
--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
+++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
@@ -411,6 +411,7 @@
#define QCA955X_PLL_CPU_CONFIG_REG 0x00
#define QCA955X_PLL_DDR_CONFIG_REG 0x04
#define QCA955X_PLL_CLK_CTRL_REG 0x08
+#define QCA955X_PLL_PCIE_CONFIG_REG 0x0c
#define QCA955X_PLL_ETH_XMII_CONTROL_REG 0x28
#define QCA955X_PLL_ETH_SGMII_CONTROL_REG 0x48
#define QCA955X_PLL_ETH_SGMII_SERDES_REG 0x4c
@@ -565,6 +566,7 @@
#define QCA953X_RESET_REG_PCIE_WMAC_INT_STATUS 0xac

#define QCA955X_RESET_REG_RESET_MODULE 0x1c
+#define QCA955X_RESET_REG_RESET2_MODULE 0xc4
#define QCA955X_RESET_REG_BOOTSTRAP 0xb0
#define QCA955X_RESET_REG_EXT_INT_STATUS 0xac

--- a/arch/mips/include/asm/mach-ath79/ath79.h
+++ b/arch/mips/include/asm/mach-ath79/ath79.h
@@ -178,6 +178,7 @@ static inline u32 ath79_reset_rr(unsigne

void ath79_device_reset_set(u32 mask);
void ath79_device_reset_clear(u32 mask);
+void ath79_device_reset2_clear(u32 mask);
u32 ath79_device_reset_get(u32 mask);

void ath79_cpu_irq_init(unsigned irq_wb_chan2, unsigned irq_wb_chan3);
--- a/arch/mips/pci/pci-ar724x.c
+++ b/arch/mips/pci/pci-ar724x.c
@@ -335,18 +335,37 @@ static void ar724x_pci_hw_init(struct ar
int wait = 0;

/* deassert PCIe host controller and PCIe PHY reset */
- ath79_device_reset_clear(AR724X_RESET_PCIE);
- ath79_device_reset_clear(AR724X_RESET_PCIE_PHY);
+ if (soc_is_qca955x()) {
+ ath79_device_reset_clear(QCA955X_RESET_PCIE);
+ mdelay(10);
+ ath79_device_reset_clear(QCA955X_RESET_PCIE_PHY);
+ mdelay(10);
+ ath79_device_reset2_clear(QCA955X_RESET_PCIE);
+ mdelay(10);
+ ath79_device_reset2_clear(QCA955X_RESET_PCIE_PHY);
+ mdelay(10);
+ } else {
+ ath79_device_reset_clear(AR724X_RESET_PCIE);
+ ath79_device_reset_clear(AR724X_RESET_PCIE_PHY);
+ }

/* remove the reset of the PCIE PLL */
- ppl = ath79_pll_rr(AR724X_PLL_REG_PCIE_CONFIG);
- ppl &= ~AR724X_PLL_REG_PCIE_CONFIG_PPL_RESET;
- ath79_pll_wr(AR724X_PLL_REG_PCIE_CONFIG, ppl);
+ if (!soc_is_qca955x()) {
+ ppl = ath79_pll_rr(AR724X_PLL_REG_PCIE_CONFIG);
+ ppl &= ~AR724X_PLL_REG_PCIE_CONFIG_PPL_RESET;
+ ath79_pll_wr(AR724X_PLL_REG_PCIE_CONFIG, ppl);
+ }

/* deassert bypass for the PCIE PLL */
- ppl = ath79_pll_rr(AR724X_PLL_REG_PCIE_CONFIG);
- ppl &= ~AR724X_PLL_REG_PCIE_CONFIG_PPL_BYPASS;
- ath79_pll_wr(AR724X_PLL_REG_PCIE_CONFIG, ppl);
+ if (soc_is_qca955x()) {
+ ppl = ath79_pll_rr(QCA955X_PLL_PCIE_CONFIG_REG);
+ ppl &= ~AR724X_PLL_REG_PCIE_CONFIG_PPL_BYPASS;
+ ath79_pll_wr(QCA955X_PLL_PCIE_CONFIG_REG, ppl);
+ } else {
+ ppl = ath79_pll_rr(AR724X_PLL_REG_PCIE_CONFIG);
+ ppl &= ~AR724X_PLL_REG_PCIE_CONFIG_PPL_BYPASS;
+ ath79_pll_wr(AR724X_PLL_REG_PCIE_CONFIG, ppl);
+ }

/* set PCIE Application Control to ready */
app = __raw_readl(apc->ctrl_base + AR724X_PCI_REG_APP);
@@ -422,8 +441,14 @@ static int ar724x_pci_probe(struct platf
* Do the full PCIE Root Complex Initialization Sequence if the PCIe
* host controller is in reset.
*/
- if (ath79_reset_rr(AR724X_RESET_REG_RESET_MODULE) & AR724X_RESET_PCIE)
- ar724x_pci_hw_init(apc);
+ if (soc_is_qca955x()) {
+ if (ath79_reset_rr(QCA955X_RESET_REG_RESET_MODULE) & QCA955X_RESET_PCIE ||
+ ath79_reset_rr(QCA955X_RESET_REG_RESET2_MODULE) & QCA955X_RESET_PCIE)
+ ar724x_pci_hw_init(apc);
+ } else {
+ if (ath79_reset_rr(AR724X_RESET_REG_RESET_MODULE) & AR724X_RESET_PCIE)
+ ar724x_pci_hw_init(apc);
+ }

apc->link_up = ar724x_pci_check_link(apc);
if (!apc->link_up)
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
--- a/arch/mips/ath79/irq.c
+++ b/arch/mips/ath79/irq.c
@@ -69,15 +69,21 @@ static void qca953x_ip2_irq_dispatch(str
u32 status;

status = ath79_reset_rr(QCA953X_RESET_REG_PCIE_WMAC_INT_STATUS);
+ status &= QCA953X_PCIE_WMAC_INT_PCIE_ALL | QCA953X_PCIE_WMAC_INT_WMAC_ALL;
+
+ if (status == 0) {
+ spurious_interrupt();
+ return;
+ }

if (status & QCA953X_PCIE_WMAC_INT_PCIE_ALL) {
ath79_ddr_wb_flush(3);
generic_handle_irq(ATH79_IP2_IRQ(0));
- } else if (status & QCA953X_PCIE_WMAC_INT_WMAC_ALL) {
+ }
+
+ if (status & QCA953X_PCIE_WMAC_INT_WMAC_ALL) {
ath79_ddr_wb_flush(4);
generic_handle_irq(ATH79_IP2_IRQ(1));
- } else {
- spurious_interrupt();
}
}

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -1214,4 +1214,12 @@ config GPIO_VIPERBOARD
@@ -1215,4 +1215,12 @@ config GPIO_VIPERBOARD

endmenu

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
+#endif
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -1155,7 +1155,6 @@ menu "SPI GPIO expanders"
@@ -1156,7 +1156,6 @@ menu "SPI GPIO expanders"

config GPIO_74X164
tristate "74x164 serial-in/parallel-out 8-bits shift register"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -1221,4 +1221,9 @@ config GPIO_NXP_74HC153
@@ -1222,4 +1222,9 @@ config GPIO_NXP_74HC153
Platform driver for NXP 74HC153 Dual 4-input Multiplexer. This
provides a GPIO interface supporting input mode only.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -869,7 +869,7 @@
* No flags defined yet.
--- a/net/core/utils.c
+++ b/net/core/utils.c
@@ -321,8 +321,14 @@ void inet_proto_csum_replace16(__sum16 *
@@ -338,8 +338,14 @@ void inet_proto_csum_replace16(__sum16 *
bool pseudohdr)
{
__be32 diff[] = {
Expand Down
2 changes: 1 addition & 1 deletion target/linux/ath25/patches-4.14/130-watchdog.patch
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@
+MODULE_ALIAS("platform:" DRIVER_NAME);
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -1646,6 +1646,13 @@ config PIC32_DMT
@@ -1647,6 +1647,13 @@ config PIC32_DMT
To compile this driver as a loadable module, choose M here.
The module will be called pic32-dmt.

Expand Down
1 change: 1 addition & 0 deletions target/linux/ath79/config-4.19
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ CONFIG_SERIAL_AR933X_CONSOLE=y
CONFIG_SERIAL_AR933X_NR_UARTS=2
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SPI=y
CONFIG_SPI_AR934X=y
CONFIG_SPI_ATH79=y
CONFIG_SPI_BITBANG=y
CONFIG_SPI_GPIO=y
Expand Down
1 change: 0 additions & 1 deletion target/linux/ath79/dts/ar7161_netgear_wndr3700-v2.dts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
partition@50000 {
label = "u-boot-env";
reg = <0x050000 0x020000>;
read-only;
};

partition@70000 {
Expand Down
1 change: 0 additions & 1 deletion target/linux/ath79/dts/ar7161_netgear_wndr3700.dts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
partition@50000 {
label = "u-boot-env";
reg = <0x050000 0x020000>;
read-only;
};

partition@70000 {
Expand Down
Loading

0 comments on commit 01ab5cf

Please sign in to comment.