mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-19 19:27:27 +00:00
kernel: bump 5.4 to 5.4.123
Removed because in upstream generic/pending-5.4/770-02-net-ethernet-mtk_eth_soc-fix-rx-vlan-offload.patch All others updated automatically. Runtime-tested on bcm27xx/bcm2711. Fixes: FS#3085 Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
This commit is contained in:
parent
1a41b88803
commit
fc0fd54738
@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
|
|||||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LINUX_VERSION-5.4 = .119
|
LINUX_VERSION-5.4 = .123
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-5.4.119 = 71e7decf1e8149a8aed88d30df4f2a62a6c6b168111de6b261685ac7c0ecb2a0
|
LINUX_KERNEL_HASH-5.4.123 = 8efe33fffb661d14422877b775fb38de373e04ad640f5d0c8f57144ddb1022de
|
||||||
|
|
||||||
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)))))))
|
||||||
|
@ -93,7 +93,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
|||||||
static const char hcd_name[] = "xhci_hcd";
|
static const char hcd_name[] = "xhci_hcd";
|
||||||
|
|
||||||
static struct hc_driver __read_mostly xhci_pci_hc_driver;
|
static struct hc_driver __read_mostly xhci_pci_hc_driver;
|
||||||
@@ -307,6 +347,873 @@ static void xhci_pme_acpi_rtd3_enable(st
|
@@ -309,6 +349,873 @@ static void xhci_pme_acpi_rtd3_enable(st
|
||||||
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
|
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
|
||||||
#endif /* CONFIG_ACPI */
|
#endif /* CONFIG_ACPI */
|
||||||
|
|
||||||
@ -967,7 +967,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
|||||||
/* called during probe() after chip reset completes */
|
/* called during probe() after chip reset completes */
|
||||||
static int xhci_pci_setup(struct usb_hcd *hcd)
|
static int xhci_pci_setup(struct usb_hcd *hcd)
|
||||||
{
|
{
|
||||||
@@ -348,6 +1255,27 @@ static int xhci_pci_probe(struct pci_dev
|
@@ -350,6 +1257,27 @@ static int xhci_pci_probe(struct pci_dev
|
||||||
struct hc_driver *driver;
|
struct hc_driver *driver;
|
||||||
struct usb_hcd *hcd;
|
struct usb_hcd *hcd;
|
||||||
|
|
||||||
@ -995,7 +995,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
|||||||
driver = (struct hc_driver *)id->driver_data;
|
driver = (struct hc_driver *)id->driver_data;
|
||||||
|
|
||||||
/* Prevent runtime suspending between USB-2 and USB-3 initialization */
|
/* Prevent runtime suspending between USB-2 and USB-3 initialization */
|
||||||
@@ -409,6 +1337,16 @@ static void xhci_pci_remove(struct pci_d
|
@@ -411,6 +1339,16 @@ static void xhci_pci_remove(struct pci_d
|
||||||
{
|
{
|
||||||
struct xhci_hcd *xhci;
|
struct xhci_hcd *xhci;
|
||||||
|
|
||||||
@ -1012,7 +1012,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
|||||||
xhci = hcd_to_xhci(pci_get_drvdata(dev));
|
xhci = hcd_to_xhci(pci_get_drvdata(dev));
|
||||||
xhci->xhc_state |= XHCI_STATE_REMOVING;
|
xhci->xhc_state |= XHCI_STATE_REMOVING;
|
||||||
|
|
||||||
@@ -548,6 +1486,11 @@ static int xhci_pci_resume(struct usb_hc
|
@@ -550,6 +1488,11 @@ static int xhci_pci_resume(struct usb_hc
|
||||||
if (pdev->vendor == PCI_VENDOR_ID_INTEL)
|
if (pdev->vendor == PCI_VENDOR_ID_INTEL)
|
||||||
usb_enable_intel_xhci_ports(pdev);
|
usb_enable_intel_xhci_ports(pdev);
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ produce a noisy warning.
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -286,6 +286,7 @@ static void xhci_pci_quirks(struct devic
|
@@ -288,6 +288,7 @@ static void xhci_pci_quirks(struct devic
|
||||||
pdev->device == 0x0015) {
|
pdev->device == 0x0015) {
|
||||||
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
||||||
xhci->quirks |= XHCI_ZERO_64B_REGS;
|
xhci->quirks |= XHCI_ZERO_64B_REGS;
|
||||||
|
@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -255,6 +255,10 @@ static void xhci_pci_quirks(struct devic
|
@@ -257,6 +257,10 @@ static void xhci_pci_quirks(struct devic
|
||||||
pdev->device == 0x3432)
|
pdev->device == 0x3432)
|
||||||
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -256,8 +256,10 @@ static void xhci_pci_quirks(struct devic
|
@@ -258,8 +258,10 @@ static void xhci_pci_quirks(struct devic
|
||||||
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
||||||
|
|
||||||
if (pdev->vendor == PCI_VENDOR_ID_VIA &&
|
if (pdev->vendor == PCI_VENDOR_ID_VIA &&
|
||||||
|
@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/arch/arm/kernel/setup.c
|
--- a/arch/arm/kernel/setup.c
|
||||||
+++ b/arch/arm/kernel/setup.c
|
+++ b/arch/arm/kernel/setup.c
|
||||||
@@ -1240,6 +1240,8 @@ static int c_show(struct seq_file *m, vo
|
@@ -1249,6 +1249,8 @@ static int c_show(struct seq_file *m, vo
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
u32 cpuid;
|
u32 cpuid;
|
||||||
@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
|
|
||||||
for_each_online_cpu(i) {
|
for_each_online_cpu(i) {
|
||||||
/*
|
/*
|
||||||
@@ -1299,6 +1301,14 @@ static int c_show(struct seq_file *m, vo
|
@@ -1308,6 +1310,14 @@ static int c_show(struct seq_file *m, vo
|
||||||
seq_printf(m, "Revision\t: %04x\n", system_rev);
|
seq_printf(m, "Revision\t: %04x\n", system_rev);
|
||||||
seq_printf(m, "Serial\t\t: %s\n", system_serial);
|
seq_printf(m, "Serial\t\t: %s\n", system_serial);
|
||||||
|
|
||||||
|
@ -382,7 +382,7 @@ Cc: linux-rockchip@lists.infradead.org
|
|||||||
|
|
||||||
--- a/drivers/pci/pci.h
|
--- a/drivers/pci/pci.h
|
||||||
+++ b/drivers/pci/pci.h
|
+++ b/drivers/pci/pci.h
|
||||||
@@ -637,11 +637,15 @@ static inline void pci_release_bus_of_no
|
@@ -643,11 +643,15 @@ static inline void pci_release_bus_of_no
|
||||||
#if defined(CONFIG_OF_ADDRESS)
|
#if defined(CONFIG_OF_ADDRESS)
|
||||||
int devm_of_pci_get_host_bridge_resources(struct device *dev,
|
int devm_of_pci_get_host_bridge_resources(struct device *dev,
|
||||||
unsigned char busno, unsigned char bus_max,
|
unsigned char busno, unsigned char bus_max,
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -259,6 +259,7 @@ static void xhci_pci_quirks(struct devic
|
@@ -261,6 +261,7 @@ static void xhci_pci_quirks(struct devic
|
||||||
pdev->device == 0x3483) {
|
pdev->device == 0x3483) {
|
||||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||||
|
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
#endif /* _KOBJECT_H_ */
|
#endif /* _KOBJECT_H_ */
|
||||||
--- a/lib/kobject_uevent.c
|
--- a/lib/kobject_uevent.c
|
||||||
+++ b/lib/kobject_uevent.c
|
+++ b/lib/kobject_uevent.c
|
||||||
@@ -690,6 +690,43 @@ int add_uevent_var(struct kobj_uevent_en
|
@@ -691,6 +691,43 @@ int add_uevent_var(struct kobj_uevent_en
|
||||||
EXPORT_SYMBOL_GPL(add_uevent_var);
|
EXPORT_SYMBOL_GPL(add_uevent_var);
|
||||||
|
|
||||||
#if defined(CONFIG_NET)
|
#if defined(CONFIG_NET)
|
||||||
|
@ -144,7 +144,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
}
|
}
|
||||||
return &ip6n->tnls[prio][h];
|
return &ip6n->tnls[prio][h];
|
||||||
}
|
}
|
||||||
@@ -378,6 +390,12 @@ ip6_tnl_dev_uninit(struct net_device *de
|
@@ -377,6 +389,12 @@ ip6_tnl_dev_uninit(struct net_device *de
|
||||||
struct net *net = t->net;
|
struct net *net = t->net;
|
||||||
struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
|
struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
|
||||||
|
|
||||||
@ -157,7 +157,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
if (dev == ip6n->fb_tnl_dev)
|
if (dev == ip6n->fb_tnl_dev)
|
||||||
RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
|
RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
|
||||||
else
|
else
|
||||||
@@ -767,6 +785,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
|
@@ -766,6 +784,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
|
EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
|
||||||
|
|
||||||
@ -265,7 +265,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
static int __ip6_tnl_rcv(struct ip6_tnl *tunnel, struct sk_buff *skb,
|
static int __ip6_tnl_rcv(struct ip6_tnl *tunnel, struct sk_buff *skb,
|
||||||
const struct tnl_ptk_info *tpi,
|
const struct tnl_ptk_info *tpi,
|
||||||
struct metadata_dst *tun_dst,
|
struct metadata_dst *tun_dst,
|
||||||
@@ -819,6 +938,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl
|
@@ -818,6 +937,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl
|
||||||
skb_reset_network_header(skb);
|
skb_reset_network_header(skb);
|
||||||
memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
|
memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
|
||||||
|
|
||||||
@ -293,7 +293,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
__skb_tunnel_rx(skb, tunnel->dev, tunnel->net);
|
__skb_tunnel_rx(skb, tunnel->dev, tunnel->net);
|
||||||
|
|
||||||
err = dscp_ecn_decapsulate(tunnel, ipv6h, skb);
|
err = dscp_ecn_decapsulate(tunnel, ipv6h, skb);
|
||||||
@@ -959,6 +1099,7 @@ static void init_tel_txopt(struct ipv6_t
|
@@ -958,6 +1098,7 @@ static void init_tel_txopt(struct ipv6_t
|
||||||
opt->ops.opt_nflen = 8;
|
opt->ops.opt_nflen = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -301,7 +301,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
/**
|
/**
|
||||||
* ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
|
* ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
|
||||||
* @t: the outgoing tunnel device
|
* @t: the outgoing tunnel device
|
||||||
@@ -1311,6 +1452,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
@@ -1310,6 +1451,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||||
{
|
{
|
||||||
struct ip6_tnl *t = netdev_priv(dev);
|
struct ip6_tnl *t = netdev_priv(dev);
|
||||||
struct ipv6hdr *ipv6h;
|
struct ipv6hdr *ipv6h;
|
||||||
@ -309,7 +309,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
int encap_limit = -1;
|
int encap_limit = -1;
|
||||||
__u16 offset;
|
__u16 offset;
|
||||||
struct flowi6 fl6;
|
struct flowi6 fl6;
|
||||||
@@ -1376,6 +1518,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
@@ -1375,6 +1517,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||||
fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
|
fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
|
||||||
dsfield = INET_ECN_encapsulate(dsfield, ipv6_get_dsfield(ipv6h));
|
dsfield = INET_ECN_encapsulate(dsfield, ipv6_get_dsfield(ipv6h));
|
||||||
|
|
||||||
@ -328,7 +328,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
|
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -1505,6 +1659,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
@@ -1504,6 +1658,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
||||||
t->parms.link = p->link;
|
t->parms.link = p->link;
|
||||||
t->parms.proto = p->proto;
|
t->parms.proto = p->proto;
|
||||||
t->parms.fwmark = p->fwmark;
|
t->parms.fwmark = p->fwmark;
|
||||||
@ -343,7 +343,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
dst_cache_reset(&t->dst_cache);
|
dst_cache_reset(&t->dst_cache);
|
||||||
ip6_tnl_link_config(t);
|
ip6_tnl_link_config(t);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1543,6 +1705,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
@@ -1542,6 +1704,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
||||||
p->flowinfo = u->flowinfo;
|
p->flowinfo = u->flowinfo;
|
||||||
p->link = u->link;
|
p->link = u->link;
|
||||||
p->proto = u->proto;
|
p->proto = u->proto;
|
||||||
@ -351,7 +351,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
memcpy(p->name, u->name, sizeof(u->name));
|
memcpy(p->name, u->name, sizeof(u->name));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1927,6 +2090,15 @@ static int ip6_tnl_validate(struct nlatt
|
@@ -1926,6 +2089,15 @@ static int ip6_tnl_validate(struct nlatt
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -367,7 +367,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
static void ip6_tnl_netlink_parms(struct nlattr *data[],
|
static void ip6_tnl_netlink_parms(struct nlattr *data[],
|
||||||
struct __ip6_tnl_parm *parms)
|
struct __ip6_tnl_parm *parms)
|
||||||
{
|
{
|
||||||
@@ -1964,6 +2136,46 @@ static void ip6_tnl_netlink_parms(struct
|
@@ -1963,6 +2135,46 @@ static void ip6_tnl_netlink_parms(struct
|
||||||
|
|
||||||
if (data[IFLA_IPTUN_FWMARK])
|
if (data[IFLA_IPTUN_FWMARK])
|
||||||
parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
|
parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
|
||||||
@ -414,7 +414,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
|
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
|
||||||
@@ -2079,6 +2291,12 @@ static void ip6_tnl_dellink(struct net_d
|
@@ -2078,6 +2290,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||||
|
|
||||||
static size_t ip6_tnl_get_size(const struct net_device *dev)
|
static size_t ip6_tnl_get_size(const struct net_device *dev)
|
||||||
{
|
{
|
||||||
@ -427,7 +427,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
return
|
return
|
||||||
/* IFLA_IPTUN_LINK */
|
/* IFLA_IPTUN_LINK */
|
||||||
nla_total_size(4) +
|
nla_total_size(4) +
|
||||||
@@ -2108,6 +2326,24 @@ static size_t ip6_tnl_get_size(const str
|
@@ -2107,6 +2325,24 @@ static size_t ip6_tnl_get_size(const str
|
||||||
nla_total_size(0) +
|
nla_total_size(0) +
|
||||||
/* IFLA_IPTUN_FWMARK */
|
/* IFLA_IPTUN_FWMARK */
|
||||||
nla_total_size(4) +
|
nla_total_size(4) +
|
||||||
@ -452,7 +452,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
0;
|
0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2115,6 +2351,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
@@ -2114,6 +2350,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||||
{
|
{
|
||||||
struct ip6_tnl *tunnel = netdev_priv(dev);
|
struct ip6_tnl *tunnel = netdev_priv(dev);
|
||||||
struct __ip6_tnl_parm *parm = &tunnel->parms;
|
struct __ip6_tnl_parm *parm = &tunnel->parms;
|
||||||
@ -462,7 +462,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
|
|
||||||
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
|
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
|
||||||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
|
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
|
||||||
@@ -2124,9 +2363,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
@@ -2123,9 +2362,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||||
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
|
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
|
||||||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
|
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
|
||||||
nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
|
nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
|
||||||
@ -491,7 +491,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||||||
if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
|
if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
|
||||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
|
nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
|
||||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
|
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
|
||||||
@@ -2166,6 +2423,7 @@ static const struct nla_policy ip6_tnl_p
|
@@ -2165,6 +2422,7 @@ static const struct nla_policy ip6_tnl_p
|
||||||
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
|
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
|
||||||
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
|
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
|
||||||
[IFLA_IPTUN_FWMARK] = { .type = NLA_U32 },
|
[IFLA_IPTUN_FWMARK] = { .type = NLA_U32 },
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
From: Felix Fietkau <nbd@nbd.name>
|
|
||||||
Date: Wed, 26 Aug 2020 16:52:12 +0200
|
|
||||||
Subject: [PATCH] net: ethernet: mtk_eth_soc: fix rx vlan offload
|
|
||||||
|
|
||||||
The VLAN ID in the rx descriptor is only valid if the RX_DMA_VID bit is set
|
|
||||||
Fixes frames wrongly marked with VLAN tags
|
|
||||||
|
|
||||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
||||||
---
|
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
||||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
||||||
@@ -1320,7 +1320,7 @@ static int mtk_poll_rx(struct napi_struc
|
|
||||||
skb->protocol = eth_type_trans(skb, netdev);
|
|
||||||
|
|
||||||
if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX &&
|
|
||||||
- RX_DMA_VID(trxd.rxd3))
|
|
||||||
+ (trxd.rxd2 & RX_DMA_VTAG))
|
|
||||||
__vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q),
|
|
||||||
RX_DMA_VID(trxd.rxd3));
|
|
||||||
skb_record_rx_queue(skb, 0);
|
|
||||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
|
||||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
|
||||||
@@ -295,6 +295,7 @@
|
|
||||||
#define RX_DMA_LSO BIT(30)
|
|
||||||
#define RX_DMA_PLEN0(_x) (((_x) & 0x3fff) << 16)
|
|
||||||
#define RX_DMA_GET_PLEN0(_x) (((_x) >> 16) & 0x3fff)
|
|
||||||
+#define RX_DMA_VTAG BIT(15)
|
|
||||||
|
|
||||||
/* QDMA descriptor rxd3 */
|
|
||||||
#define RX_DMA_VID(_x) ((_x) & 0xfff)
|
|
@ -163,7 +163,7 @@ Signed-off-by: Rajith Cherian <rajith@codeaurora.org>
|
|||||||
mutex_unlock(&tzd->lock);
|
mutex_unlock(&tzd->lock);
|
||||||
|
|
||||||
return tzd;
|
return tzd;
|
||||||
@@ -762,7 +802,10 @@ static const char * const trip_types[] =
|
@@ -765,7 +805,10 @@ static const char * const trip_types[] =
|
||||||
[THERMAL_TRIP_ACTIVE] = "active",
|
[THERMAL_TRIP_ACTIVE] = "active",
|
||||||
[THERMAL_TRIP_PASSIVE] = "passive",
|
[THERMAL_TRIP_PASSIVE] = "passive",
|
||||||
[THERMAL_TRIP_HOT] = "hot",
|
[THERMAL_TRIP_HOT] = "hot",
|
||||||
|
@ -63,7 +63,7 @@ Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
|||||||
* address space as memory. Needed when the kernel wants to execute
|
* address space as memory. Needed when the kernel wants to execute
|
||||||
--- a/arch/arm/mm/mmu.c
|
--- a/arch/arm/mm/mmu.c
|
||||||
+++ b/arch/arm/mm/mmu.c
|
+++ b/arch/arm/mm/mmu.c
|
||||||
@@ -312,6 +312,13 @@ static struct mem_type mem_types[] __ro_
|
@@ -314,6 +314,13 @@ static struct mem_type mem_types[] __ro_
|
||||||
.prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
|
.prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
|
||||||
.domain = DOMAIN_KERNEL,
|
.domain = DOMAIN_KERNEL,
|
||||||
},
|
},
|
||||||
@ -77,7 +77,7 @@ Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
|||||||
[MT_ROM] = {
|
[MT_ROM] = {
|
||||||
.prot_sect = PMD_TYPE_SECT,
|
.prot_sect = PMD_TYPE_SECT,
|
||||||
.domain = DOMAIN_KERNEL,
|
.domain = DOMAIN_KERNEL,
|
||||||
@@ -648,6 +655,7 @@ static void __init build_mem_type_table(
|
@@ -650,6 +657,7 @@ static void __init build_mem_type_table(
|
||||||
}
|
}
|
||||||
kern_pgprot |= PTE_EXT_AF;
|
kern_pgprot |= PTE_EXT_AF;
|
||||||
vecs_pgprot |= PTE_EXT_AF;
|
vecs_pgprot |= PTE_EXT_AF;
|
||||||
@ -85,7 +85,7 @@ Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Set PXN for user mappings
|
* Set PXN for user mappings
|
||||||
@@ -676,6 +684,7 @@ static void __init build_mem_type_table(
|
@@ -678,6 +686,7 @@ static void __init build_mem_type_table(
|
||||||
mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
|
mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
|
||||||
mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
|
mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
|
||||||
mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
|
mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
|
||||||
|
@ -54,7 +54,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
|||||||
* All 3.1 IP version constants are greater than the 3.0 IP
|
* All 3.1 IP version constants are greater than the 3.0 IP
|
||||||
--- a/drivers/usb/dwc3/gadget.c
|
--- a/drivers/usb/dwc3/gadget.c
|
||||||
+++ b/drivers/usb/dwc3/gadget.c
|
+++ b/drivers/usb/dwc3/gadget.c
|
||||||
@@ -3568,6 +3568,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
@@ -3574,6 +3574,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||||
dwc->gadget.sg_supported = true;
|
dwc->gadget.sg_supported = true;
|
||||||
dwc->gadget.name = "dwc3-gadget";
|
dwc->gadget.name = "dwc3-gadget";
|
||||||
dwc->gadget.lpm_capable = true;
|
dwc->gadget.lpm_capable = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user