mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 14:37:57 +00:00
kernel: bump 4.19 to 4.19.20
Refreshed all patches. Remove upstreamed: - 100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch Altered patches: - 721-phy_packets.patch Compile-tested on: imx6 Runtime-tested on: imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
parent
89bf16ad50
commit
9a3599de2c
@ -5,12 +5,12 @@ LINUX_RELEASE?=1
|
|||||||
LINUX_VERSION-3.18 = .134
|
LINUX_VERSION-3.18 = .134
|
||||||
LINUX_VERSION-4.9 = .155
|
LINUX_VERSION-4.9 = .155
|
||||||
LINUX_VERSION-4.14 = .98
|
LINUX_VERSION-4.14 = .98
|
||||||
LINUX_VERSION-4.19 = .19
|
LINUX_VERSION-4.19 = .20
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-3.18.134 = 36bdd04cab3b6c824a4b7e32ae02503f437e0916d5a4ff04c90aa22da2749c2f
|
LINUX_KERNEL_HASH-3.18.134 = 36bdd04cab3b6c824a4b7e32ae02503f437e0916d5a4ff04c90aa22da2749c2f
|
||||||
LINUX_KERNEL_HASH-4.9.155 = a52ac60be33c0fe312d99361f8e30211599956e958ba415d93194c6c9d073c9d
|
LINUX_KERNEL_HASH-4.9.155 = a52ac60be33c0fe312d99361f8e30211599956e958ba415d93194c6c9d073c9d
|
||||||
LINUX_KERNEL_HASH-4.14.98 = 8f021171b1b1efb41326e603116a45126fc030d06aaa9b0784ae612323010c5f
|
LINUX_KERNEL_HASH-4.14.98 = 8f021171b1b1efb41326e603116a45126fc030d06aaa9b0784ae612323010c5f
|
||||||
LINUX_KERNEL_HASH-4.19.19 = 99afcaf670479d696eb039e8e0a074988a44d5bd159a9cda5bff214e824669bd
|
LINUX_KERNEL_HASH-4.19.20 = dc7d2776dad4bf738e741ed05e7d1bea685855cfb7a62d1706f5f7aeabfa04a4
|
||||||
|
|
||||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||||
|
@ -1,74 +0,0 @@
|
|||||||
From 03556dab1cb02d85b50d7be3ee3a3bac001f5991 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
|
||||||
Date: Tue, 18 Dec 2018 12:14:06 +0100
|
|
||||||
Subject: [PATCH] arm: cns3xxx: fix writing to wrong PCI registers after
|
|
||||||
alignment
|
|
||||||
|
|
||||||
Originally, cns3xxx used it's own functions for mapping, reading and writing registers.
|
|
||||||
|
|
||||||
Commit 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
|
|
||||||
removed the internal PCI config write function in favor of the generic one:
|
|
||||||
|
|
||||||
cns3xxx_pci_write_config() --> pci_generic_config_write()
|
|
||||||
|
|
||||||
cns3xxx_pci_write_config() expected aligned addresses, being produced by cns3xxx_pci_map_bus()
|
|
||||||
while the generic one pci_generic_config_write() actually expects the real address
|
|
||||||
as both the function and hardware are capable of byte-aligned writes.
|
|
||||||
|
|
||||||
This currently leads to pci_generic_config_write() writing
|
|
||||||
to the wrong registers on some ocasions.
|
|
||||||
|
|
||||||
First issue seen due to this:
|
|
||||||
|
|
||||||
- driver ath9k gets loaded
|
|
||||||
- The driver wants to write value 0xA8 to register PCI_LATENCY_TIMER, located at 0x0D
|
|
||||||
- cns3xxx_pci_map_bus() aligns the address to 0x0C
|
|
||||||
- pci_generic_config_write() effectively writes 0xA8 into register 0x0C (CACHE_LINE_SIZE)
|
|
||||||
|
|
||||||
This seems to cause some slight instability when certain PCI devices are used.
|
|
||||||
|
|
||||||
Another issue example caused by this this is the PCI bus numbering,
|
|
||||||
where the primary bus is higher than the secondary, which is impossible.
|
|
||||||
|
|
||||||
Before:
|
|
||||||
|
|
||||||
00:00.0 PCI bridge: Cavium, Inc. Device 3400 (rev 01) (prog-if 00 [Normal decode])
|
|
||||||
Flags: bus master, fast devsel, latency 0, IRQ 255
|
|
||||||
Bus: primary=02, secondary=01, subordinate=ff, sec-latency=0
|
|
||||||
|
|
||||||
After fix:
|
|
||||||
|
|
||||||
00:00.0 PCI bridge: Cavium, Inc. Device 3400 (rev 01) (prog-if 00 [Normal decode])
|
|
||||||
Flags: bus master, fast devsel, latency 0, IRQ 255
|
|
||||||
Bus: primary=00, secondary=01, subordinate=02, sec-latency=0
|
|
||||||
|
|
||||||
And very likely some more ..
|
|
||||||
|
|
||||||
Fix all by omitting the alignment being done in the mapping function.
|
|
||||||
|
|
||||||
Fixes: 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
|
|
||||||
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
|
||||||
CC: Arnd Bergmann <arnd@arndb.de>
|
|
||||||
CC: Bjorn Helgaas <bhelgaas@google.com>
|
|
||||||
CC: Krzysztof Halasa <khalasa@piap.pl>
|
|
||||||
CC: Olof Johansson <olof@lixom.net>
|
|
||||||
CC: Robin Leblon <robin.leblon@ncentric.com>
|
|
||||||
CC: Rob Herring <robh@kernel.org>
|
|
||||||
CC: Russell King <linux@armlinux.org.uk>
|
|
||||||
CC: Tim Harvey <tharvey@gateworks.com>
|
|
||||||
CC: stable@vger.kernel.org # v4.0+
|
|
||||||
---
|
|
||||||
arch/arm/mach-cns3xxx/pcie.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/arch/arm/mach-cns3xxx/pcie.c
|
|
||||||
+++ b/arch/arm/mach-cns3xxx/pcie.c
|
|
||||||
@@ -83,7 +83,7 @@ static void __iomem *cns3xxx_pci_map_bus
|
|
||||||
} else /* remote PCI bus */
|
|
||||||
base = cnspci->cfg1_regs + ((busno & 0xf) << 20);
|
|
||||||
|
|
||||||
- return base + (where & 0xffc) + (devfn << 12);
|
|
||||||
+ return base + where + (devfn << 12);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn,
|
|
@ -15,23 +15,23 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/include/linux/netdevice.h
|
--- a/include/linux/netdevice.h
|
||||||
+++ b/include/linux/netdevice.h
|
+++ b/include/linux/netdevice.h
|
||||||
@@ -1510,6 +1510,7 @@ enum netdev_priv_flags {
|
@@ -1512,6 +1512,7 @@ enum netdev_priv_flags {
|
||||||
IFF_NO_RX_HANDLER = 1<<26,
|
|
||||||
IFF_FAILOVER = 1<<27,
|
IFF_FAILOVER = 1<<27,
|
||||||
IFF_FAILOVER_SLAVE = 1<<28,
|
IFF_FAILOVER_SLAVE = 1<<28,
|
||||||
+ IFF_NO_IP_ALIGN = 1<<29,
|
IFF_L3MDEV_RX_HANDLER = 1<<29,
|
||||||
|
+ IFF_NO_IP_ALIGN = 1<<30,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
|
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
|
||||||
@@ -1540,6 +1541,7 @@ enum netdev_priv_flags {
|
@@ -1543,6 +1544,7 @@ enum netdev_priv_flags {
|
||||||
#define IFF_NO_RX_HANDLER IFF_NO_RX_HANDLER
|
|
||||||
#define IFF_FAILOVER IFF_FAILOVER
|
#define IFF_FAILOVER IFF_FAILOVER
|
||||||
#define IFF_FAILOVER_SLAVE IFF_FAILOVER_SLAVE
|
#define IFF_FAILOVER_SLAVE IFF_FAILOVER_SLAVE
|
||||||
|
#define IFF_L3MDEV_RX_HANDLER IFF_L3MDEV_RX_HANDLER
|
||||||
+#define IFF_NO_IP_ALIGN IFF_NO_IP_ALIGN
|
+#define IFF_NO_IP_ALIGN IFF_NO_IP_ALIGN
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct net_device - The DEVICE structure.
|
* struct net_device - The DEVICE structure.
|
||||||
@@ -1838,6 +1840,11 @@ struct net_device {
|
@@ -1841,6 +1843,11 @@ struct net_device {
|
||||||
const struct tlsdev_ops *tlsdev_ops;
|
const struct tlsdev_ops *tlsdev_ops;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
const struct header_ops *header_ops;
|
const struct header_ops *header_ops;
|
||||||
|
|
||||||
unsigned int flags;
|
unsigned int flags;
|
||||||
@@ -1913,6 +1920,10 @@ struct net_device {
|
@@ -1916,6 +1923,10 @@ struct net_device {
|
||||||
struct mpls_dev __rcu *mpls_ptr;
|
struct mpls_dev __rcu *mpls_ptr;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/include/linux/netdevice.h
|
--- a/include/linux/netdevice.h
|
||||||
+++ b/include/linux/netdevice.h
|
+++ b/include/linux/netdevice.h
|
||||||
@@ -1876,6 +1876,8 @@ struct net_device {
|
@@ -1879,6 +1879,8 @@ struct net_device {
|
||||||
struct netdev_hw_addr_list mc;
|
struct netdev_hw_addr_list mc;
|
||||||
struct netdev_hw_addr_list dev_addrs;
|
struct netdev_hw_addr_list dev_addrs;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user