diff --git a/include/kernel-5.10 b/include/kernel-5.10 index f4cdfe5faa50ac..9b74446f8e6bb3 100644 --- a/include/kernel-5.10 +++ b/include/kernel-5.10 @@ -1,2 +1,2 @@ -LINUX_VERSION-5.10 = .152 -LINUX_KERNEL_HASH-5.10.152 = fa0b5c83a4ebfda9f0a52cc693646eb6c24dbade6c37ee2d18b66ee2df15d8a6 +LINUX_VERSION-5.10 = .153 +LINUX_KERNEL_HASH-5.10.153 = 3cf2e4519fe451caef0ee0a8beac694612267325f7055fc38d6a990a762f1662 diff --git a/include/kernel-5.4 b/include/kernel-5.4 index 0577868362aedb..379fa904b7d330 100644 --- a/include/kernel-5.4 +++ b/include/kernel-5.4 @@ -1,2 +1,2 @@ -LINUX_VERSION-5.4 = .222 -LINUX_KERNEL_HASH-5.4.222 = 351af7a7ee11544e605d9d97add1421576d69459762d9a704f243db7d1c0324b +LINUX_VERSION-5.4 = .223 +LINUX_KERNEL_HASH-5.4.223 = 9ef07f12df6887f196e2e21c197f26854859e6b586aa4bfdd4798f562a717eeb diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk index c4741328b93017..47c2e872a79828 100644 --- a/package/kernel/linux/modules/netsupport.mk +++ b/package/kernel/linux/modules/netsupport.mk @@ -1392,3 +1392,49 @@ define KernelPackage/qrtr-mhi/description endef $(eval $(call KernelPackage,qrtr-mhi)) + + +define KernelPackage/mptcp + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=MultiPath TCP support + KCONFIG:=CONFIG_MPTCP@ge5.6=y + AUTOLOAD:=$(call AutoProbe,mptcp) +endef + +define KernelPackage/mptcp/description + MPTCP is a module made for MultiPath TCP support +endef + +$(eval $(call KernelPackage,mptcp)) + + +define KernelPackage/mptcp_ipv6 + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=MultiPath TCP IPv6 support + DEPENDS:=@IPV6 +kmod-mptcp + KCONFIG:=CONFIG_MPTCP_IPV6@ge5.6=y + AUTOLOAD:=$(call AutoProbe,mptcp_ipv6) +endef + +define KernelPackage/mptcp_ipv6/description + MPTCP_IPV6 is a module made for MultiPath TCP IPv6 support +endef + +$(eval $(call KernelPackage,mptcp_ipv6)) + + +define KernelPackage/inet-mptcp-diag + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=INET diag support for MultiPath TCP + DEPENDS:=kmod-mptcp +kmod-inet-diag + KCONFIG:= CONFIG_INET_MPTCP_DIAG@ge5.6 + FILES:= $(LINUX_DIR)/net/mptcp/mptcp_diag.ko@ge5.6 + AUTOLOAD:=$(call AutoProbe,mptcp_diag) +endef + +define KernelPackage/inet-mptcp-diag/description +Support for INET (MultiPath TCP) socket monitoring interface used by +native Linux tools such as ss. +endef + +$(eval $(call KernelPackage,inet-mptcp-diag)) diff --git a/target/linux/apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch b/target/linux/apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch index 288276cca64f4e..ced9b6a1582efb 100644 --- a/target/linux/apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch +++ b/target/linux/apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch @@ -13,7 +13,7 @@ produce a noisy warning. --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -287,6 +287,7 @@ static void xhci_pci_quirks(struct devic +@@ -291,6 +291,7 @@ static void xhci_pci_quirks(struct devic pdev->device == 0x0015) { xhci->quirks |= XHCI_RESET_ON_RESUME; xhci->quirks |= XHCI_ZERO_64B_REGS; @@ -43,7 +43,7 @@ produce a noisy warning. hcd->msi_enabled = 1; --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1896,6 +1896,7 @@ struct xhci_hcd { +@@ -1897,6 +1897,7 @@ struct xhci_hcd { struct xhci_hub usb2_rhub; struct xhci_hub usb3_rhub; /* support xHCI 1.0 spec USB2 hardware LPM */ diff --git a/target/linux/apm821xx/patches-5.4/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch b/target/linux/apm821xx/patches-5.4/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch index 2ce7e7e30e77a1..0cb786de626cfb 100644 --- a/target/linux/apm821xx/patches-5.4/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch +++ b/target/linux/apm821xx/patches-5.4/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch @@ -93,7 +93,7 @@ Signed-off-by: Vinod Koul static const char hcd_name[] = "xhci_hcd"; static struct hc_driver __read_mostly xhci_pci_hc_driver; -@@ -334,6 +374,873 @@ static void xhci_pme_acpi_rtd3_enable(st +@@ -340,6 +380,873 @@ static void xhci_pme_acpi_rtd3_enable(st static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { } #endif /* CONFIG_ACPI */ @@ -967,7 +967,7 @@ Signed-off-by: Vinod Koul /* called during probe() after chip reset completes */ static int xhci_pci_setup(struct usb_hcd *hcd) { -@@ -375,6 +1282,27 @@ static int xhci_pci_probe(struct pci_dev +@@ -381,6 +1288,27 @@ static int xhci_pci_probe(struct pci_dev struct hc_driver *driver; struct usb_hcd *hcd; @@ -995,7 +995,7 @@ Signed-off-by: Vinod Koul driver = (struct hc_driver *)id->driver_data; /* Prevent runtime suspending between USB-2 and USB-3 initialization */ -@@ -436,6 +1364,16 @@ static void xhci_pci_remove(struct pci_d +@@ -442,6 +1370,16 @@ static void xhci_pci_remove(struct pci_d { struct xhci_hcd *xhci; @@ -1012,7 +1012,7 @@ Signed-off-by: Vinod Koul xhci = hcd_to_xhci(pci_get_drvdata(dev)); xhci->xhc_state |= XHCI_STATE_REMOVING; -@@ -575,6 +1513,11 @@ static int xhci_pci_resume(struct usb_hc +@@ -581,6 +1519,11 @@ static int xhci_pci_resume(struct usb_hc if (pdev->vendor == PCI_VENDOR_ID_INTEL) usb_enable_intel_xhci_ports(pdev); diff --git a/target/linux/ath79/patches-5.10/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-5.10/910-unaligned_access_hacks.patch index 88cf2b9a807d27..974ada172309ae 100644 --- a/target/linux/ath79/patches-5.10/910-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-5.10/910-unaligned_access_hacks.patch @@ -706,7 +706,7 @@ EXPORT_SYMBOL(xfrm_parse_spi); --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -4127,14 +4127,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -4128,14 +4128,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); diff --git a/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch index 12c23d8d1d958e..2f40f8d16f9448 100644 --- a/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch @@ -706,7 +706,7 @@ EXPORT_SYMBOL(xfrm_parse_spi); --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -3997,14 +3997,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -3998,14 +3998,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); diff --git a/target/linux/bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch b/target/linux/bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch index 786a8d67b81257..69092187003e25 100644 --- a/target/linux/bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch +++ b/target/linux/bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch @@ -127,11 +127,11 @@ it on BCM4708 family. /* --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1889,6 +1889,7 @@ struct xhci_hcd { - #define XHCI_NO_SOFT_RETRY BIT_ULL(40) +@@ -1890,6 +1890,7 @@ struct xhci_hcd { #define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(42) #define XHCI_SUSPEND_RESUME_CLKS BIT_ULL(43) -+#define XHCI_FAKE_DOORBELL BIT_ULL(44) + #define XHCI_RESET_TO_DEFAULT BIT_ULL(44) ++#define XHCI_FAKE_DOORBELL BIT_ULL(45) unsigned int num_active_eps; unsigned int limit_active_eps; diff --git a/target/linux/generic/pending-5.10/476-mtd-spi-nor-add-eon-en25q128.patch b/target/linux/generic/pending-5.10/476-mtd-spi-nor-add-eon-en25q128.patch index 3c317b58dc9fcd..e3013c7a88c23f 100644 --- a/target/linux/generic/pending-5.10/476-mtd-spi-nor-add-eon-en25q128.patch +++ b/target/linux/generic/pending-5.10/476-mtd-spi-nor-add-eon-en25q128.patch @@ -1,18 +1,23 @@ From: Piotr Dymacz Subject: kernel/mtd: add support for EON EN25Q128 +Add support for EON EN25Q128 with flags SECT_4K and +from documentation supports QUAD_READ + Signed-off-by: Piotr Dymacz +Signed-off-by: Christian Marangi --- drivers/mtd/spi-nor/spi-nor.c | 1 + 1 file changed, 1 insertion(+) --- a/drivers/mtd/spi-nor/eon.c +++ b/drivers/mtd/spi-nor/eon.c -@@ -15,6 +15,8 @@ static const struct flash_info eon_parts +@@ -15,6 +15,9 @@ static const struct flash_info eon_parts { "en25q32b", INFO(0x1c3016, 0, 64 * 1024, 64, 0) }, { "en25p64", INFO(0x1c2017, 0, 64 * 1024, 128, 0) }, { "en25q64", INFO(0x1c3017, 0, 64 * 1024, 128, SECT_4K) }, -+ { "en25q128", INFO(0x1c3018, 0, 64 * 1024, 256, SECT_4K) }, ++ { "en25q128", INFO(0x1c3018, 0, 64 * 1024, 256, ++ SECT_4K | SPI_NOR_DUAL_READ) }, + { "en25qx128a", INFO(0x1c7118, 0, 64 * 1024, 256, SECT_4K) }, { "en25q80a", INFO(0x1c3014, 0, 64 * 1024, 16, SECT_4K | SPI_NOR_DUAL_READ) }, diff --git a/target/linux/generic/pending-5.10/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/pending-5.10/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch index 89eb7d61b3b7ee..59f202c4c5f667 100644 --- a/target/linux/generic/pending-5.10/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch +++ b/target/linux/generic/pending-5.10/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch @@ -338,7 +338,7 @@ Signed-off-by: Steven Barth if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6)) return -1; -@@ -1555,6 +1716,14 @@ ip6_tnl_change(struct ip6_tnl *t, const +@@ -1556,6 +1717,14 @@ ip6_tnl_change(struct ip6_tnl *t, const t->parms.link = p->link; t->parms.proto = p->proto; t->parms.fwmark = p->fwmark; @@ -353,7 +353,7 @@ Signed-off-by: Steven Barth dst_cache_reset(&t->dst_cache); ip6_tnl_link_config(t); return 0; -@@ -1593,6 +1762,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ +@@ -1594,6 +1763,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ p->flowinfo = u->flowinfo; p->link = u->link; p->proto = u->proto; @@ -361,7 +361,7 @@ Signed-off-by: Steven Barth memcpy(p->name, u->name, sizeof(u->name)); } -@@ -1978,6 +2148,15 @@ static int ip6_tnl_validate(struct nlatt +@@ -1979,6 +2149,15 @@ static int ip6_tnl_validate(struct nlatt return 0; } @@ -377,7 +377,7 @@ Signed-off-by: Steven Barth static void ip6_tnl_netlink_parms(struct nlattr *data[], struct __ip6_tnl_parm *parms) { -@@ -2015,6 +2194,46 @@ static void ip6_tnl_netlink_parms(struct +@@ -2016,6 +2195,46 @@ static void ip6_tnl_netlink_parms(struct if (data[IFLA_IPTUN_FWMARK]) parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]); @@ -424,7 +424,7 @@ Signed-off-by: Steven Barth } static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[], -@@ -2130,6 +2349,12 @@ static void ip6_tnl_dellink(struct net_d +@@ -2131,6 +2350,12 @@ static void ip6_tnl_dellink(struct net_d static size_t ip6_tnl_get_size(const struct net_device *dev) { @@ -437,7 +437,7 @@ Signed-off-by: Steven Barth return /* IFLA_IPTUN_LINK */ nla_total_size(4) + -@@ -2159,6 +2384,24 @@ static size_t ip6_tnl_get_size(const str +@@ -2160,6 +2385,24 @@ static size_t ip6_tnl_get_size(const str nla_total_size(0) + /* IFLA_IPTUN_FWMARK */ nla_total_size(4) + @@ -462,7 +462,7 @@ Signed-off-by: Steven Barth 0; } -@@ -2166,6 +2409,9 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -2167,6 +2410,9 @@ static int ip6_tnl_fill_info(struct sk_b { struct ip6_tnl *tunnel = netdev_priv(dev); struct __ip6_tnl_parm *parm = &tunnel->parms; @@ -472,7 +472,7 @@ Signed-off-by: Steven Barth if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) || nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) || -@@ -2175,9 +2421,27 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -2176,9 +2422,27 @@ static int ip6_tnl_fill_info(struct sk_b nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) || nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) || nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) || @@ -501,7 +501,7 @@ Signed-off-by: Steven Barth 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_DPORT, tunnel->encap.dport) || -@@ -2217,6 +2481,7 @@ static const struct nla_policy ip6_tnl_p +@@ -2218,6 +2482,7 @@ static const struct nla_policy ip6_tnl_p [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 }, [IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG }, [IFLA_IPTUN_FWMARK] = { .type = NLA_U32 }, diff --git a/target/linux/generic/pending-5.15/476-mtd-spi-nor-add-eon-en25q128.patch b/target/linux/generic/pending-5.15/476-mtd-spi-nor-add-eon-en25q128.patch index 3c317b58dc9fcd..e3013c7a88c23f 100644 --- a/target/linux/generic/pending-5.15/476-mtd-spi-nor-add-eon-en25q128.patch +++ b/target/linux/generic/pending-5.15/476-mtd-spi-nor-add-eon-en25q128.patch @@ -1,18 +1,23 @@ From: Piotr Dymacz Subject: kernel/mtd: add support for EON EN25Q128 +Add support for EON EN25Q128 with flags SECT_4K and +from documentation supports QUAD_READ + Signed-off-by: Piotr Dymacz +Signed-off-by: Christian Marangi --- drivers/mtd/spi-nor/spi-nor.c | 1 + 1 file changed, 1 insertion(+) --- a/drivers/mtd/spi-nor/eon.c +++ b/drivers/mtd/spi-nor/eon.c -@@ -15,6 +15,8 @@ static const struct flash_info eon_parts +@@ -15,6 +15,9 @@ static const struct flash_info eon_parts { "en25q32b", INFO(0x1c3016, 0, 64 * 1024, 64, 0) }, { "en25p64", INFO(0x1c2017, 0, 64 * 1024, 128, 0) }, { "en25q64", INFO(0x1c3017, 0, 64 * 1024, 128, SECT_4K) }, -+ { "en25q128", INFO(0x1c3018, 0, 64 * 1024, 256, SECT_4K) }, ++ { "en25q128", INFO(0x1c3018, 0, 64 * 1024, 256, ++ SECT_4K | SPI_NOR_DUAL_READ) }, + { "en25qx128a", INFO(0x1c7118, 0, 64 * 1024, 256, SECT_4K) }, { "en25q80a", INFO(0x1c3014, 0, 64 * 1024, 16, SECT_4K | SPI_NOR_DUAL_READ) }, diff --git a/target/linux/lantiq/patches-5.10/0028-NET-lantiq-various-etop-fixes.patch b/target/linux/lantiq/patches-5.10/0028-NET-lantiq-various-etop-fixes.patch index 441aaed05b22f3..b55e14a003a6ac 100644 --- a/target/linux/lantiq/patches-5.10/0028-NET-lantiq-various-etop-fixes.patch +++ b/target/linux/lantiq/patches-5.10/0028-NET-lantiq-various-etop-fixes.patch @@ -625,7 +625,7 @@ Signed-off-by: John Crispin return 0; } -@@ -457,16 +651,16 @@ ltq_etop_tx(struct sk_buff *skb, struct +@@ -457,15 +651,16 @@ ltq_etop_tx(struct sk_buff *skb, struct int queue = skb_get_queue_mapping(skb); struct netdev_queue *txq = netdev_get_tx_queue(dev, queue); struct ltq_etop_priv *priv = netdev_priv(dev); @@ -641,13 +641,12 @@ Signed-off-by: John Crispin len = skb->len < ETH_ZLEN ? ETH_ZLEN : skb->len; - if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) || ch->skb[ch->dma.desc]) { -- dev_kfree_skb_any(skb); + if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) || + priv->txch.skb[priv->txch.dma.desc]) { netdev_err(dev, "tx ring full\n"); netif_tx_stop_queue(txq); return NETDEV_TX_BUSY; -@@ -474,7 +668,7 @@ ltq_etop_tx(struct sk_buff *skb, struct +@@ -473,7 +668,7 @@ ltq_etop_tx(struct sk_buff *skb, struct /* dma needs to start on a 16 byte aligned address */ byte_offset = CPHYSADDR(skb->data) % 16; @@ -656,7 +655,7 @@ Signed-off-by: John Crispin netif_trans_update(dev); -@@ -484,11 +678,11 @@ ltq_etop_tx(struct sk_buff *skb, struct +@@ -483,11 +678,11 @@ ltq_etop_tx(struct sk_buff *skb, struct wmb(); desc->ctl = LTQ_DMA_OWN | LTQ_DMA_SOP | LTQ_DMA_EOP | LTQ_DMA_TX_OFFSET(byte_offset) | (len & LTQ_DMA_SIZE_MASK); @@ -671,7 +670,7 @@ Signed-off-by: John Crispin netif_tx_stop_queue(txq); return NETDEV_TX_OK; -@@ -499,11 +693,14 @@ ltq_etop_change_mtu(struct net_device *d +@@ -498,11 +693,14 @@ ltq_etop_change_mtu(struct net_device *d { struct ltq_etop_priv *priv = netdev_priv(dev); unsigned long flags; @@ -687,7 +686,7 @@ Signed-off-by: John Crispin spin_unlock_irqrestore(&priv->lock, flags); return 0; -@@ -556,6 +753,9 @@ ltq_etop_init(struct net_device *dev) +@@ -555,6 +753,9 @@ ltq_etop_init(struct net_device *dev) if (err) goto err_hw; ltq_etop_change_mtu(dev, 1500); @@ -697,7 +696,7 @@ Signed-off-by: John Crispin memcpy(&mac, &priv->pldata->mac, sizeof(struct sockaddr)); if (!is_valid_ether_addr(mac.sa_data)) { -@@ -573,9 +773,10 @@ ltq_etop_init(struct net_device *dev) +@@ -572,9 +773,10 @@ ltq_etop_init(struct net_device *dev) dev->addr_assign_type = NET_ADDR_RANDOM; ltq_etop_set_multicast_list(dev); @@ -711,7 +710,7 @@ Signed-off-by: John Crispin return 0; err_netdev: -@@ -595,6 +796,9 @@ ltq_etop_tx_timeout(struct net_device *d +@@ -594,6 +796,9 @@ ltq_etop_tx_timeout(struct net_device *d err = ltq_etop_hw_init(dev); if (err) goto err_hw; @@ -721,7 +720,7 @@ Signed-off-by: John Crispin netif_trans_update(dev); netif_wake_queue(dev); return; -@@ -618,14 +822,19 @@ static const struct net_device_ops ltq_e +@@ -617,14 +822,19 @@ static const struct net_device_ops ltq_e .ndo_tx_timeout = ltq_etop_tx_timeout, }; @@ -745,7 +744,7 @@ Signed-off-by: John Crispin res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { -@@ -651,31 +860,64 @@ ltq_etop_probe(struct platform_device *p +@@ -650,31 +860,64 @@ ltq_etop_probe(struct platform_device *p goto err_out; } @@ -825,7 +824,7 @@ Signed-off-by: John Crispin err = register_netdev(dev); if (err) -@@ -704,31 +946,22 @@ ltq_etop_remove(struct platform_device * +@@ -703,31 +946,22 @@ ltq_etop_remove(struct platform_device * return 0; } diff --git a/target/linux/lantiq/patches-5.4/0028-NET-lantiq-various-etop-fixes.patch b/target/linux/lantiq/patches-5.4/0028-NET-lantiq-various-etop-fixes.patch index 094496a16de4c9..d809e0260881bc 100644 --- a/target/linux/lantiq/patches-5.4/0028-NET-lantiq-various-etop-fixes.patch +++ b/target/linux/lantiq/patches-5.4/0028-NET-lantiq-various-etop-fixes.patch @@ -625,7 +625,7 @@ Signed-off-by: John Crispin return 0; } -@@ -457,16 +651,16 @@ ltq_etop_tx(struct sk_buff *skb, struct +@@ -457,15 +651,16 @@ ltq_etop_tx(struct sk_buff *skb, struct int queue = skb_get_queue_mapping(skb); struct netdev_queue *txq = netdev_get_tx_queue(dev, queue); struct ltq_etop_priv *priv = netdev_priv(dev); @@ -641,13 +641,12 @@ Signed-off-by: John Crispin len = skb->len < ETH_ZLEN ? ETH_ZLEN : skb->len; - if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) || ch->skb[ch->dma.desc]) { -- dev_kfree_skb_any(skb); + if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) || + priv->txch.skb[priv->txch.dma.desc]) { netdev_err(dev, "tx ring full\n"); netif_tx_stop_queue(txq); return NETDEV_TX_BUSY; -@@ -474,7 +668,7 @@ ltq_etop_tx(struct sk_buff *skb, struct +@@ -473,7 +668,7 @@ ltq_etop_tx(struct sk_buff *skb, struct /* dma needs to start on a 16 byte aligned address */ byte_offset = CPHYSADDR(skb->data) % 16; @@ -656,7 +655,7 @@ Signed-off-by: John Crispin netif_trans_update(dev); -@@ -484,11 +678,11 @@ ltq_etop_tx(struct sk_buff *skb, struct +@@ -483,11 +678,11 @@ ltq_etop_tx(struct sk_buff *skb, struct wmb(); desc->ctl = LTQ_DMA_OWN | LTQ_DMA_SOP | LTQ_DMA_EOP | LTQ_DMA_TX_OFFSET(byte_offset) | (len & LTQ_DMA_SIZE_MASK); @@ -671,7 +670,7 @@ Signed-off-by: John Crispin netif_tx_stop_queue(txq); return NETDEV_TX_OK; -@@ -499,11 +693,14 @@ ltq_etop_change_mtu(struct net_device *d +@@ -498,11 +693,14 @@ ltq_etop_change_mtu(struct net_device *d { struct ltq_etop_priv *priv = netdev_priv(dev); unsigned long flags; @@ -687,7 +686,7 @@ Signed-off-by: John Crispin spin_unlock_irqrestore(&priv->lock, flags); return 0; -@@ -563,6 +760,9 @@ ltq_etop_init(struct net_device *dev) +@@ -562,6 +760,9 @@ ltq_etop_init(struct net_device *dev) if (err) goto err_hw; ltq_etop_change_mtu(dev, 1500); @@ -697,7 +696,7 @@ Signed-off-by: John Crispin memcpy(&mac, &priv->pldata->mac, sizeof(struct sockaddr)); if (!is_valid_ether_addr(mac.sa_data)) { -@@ -580,9 +780,10 @@ ltq_etop_init(struct net_device *dev) +@@ -579,9 +780,10 @@ ltq_etop_init(struct net_device *dev) dev->addr_assign_type = NET_ADDR_RANDOM; ltq_etop_set_multicast_list(dev); @@ -711,7 +710,7 @@ Signed-off-by: John Crispin return 0; err_netdev: -@@ -602,6 +803,9 @@ ltq_etop_tx_timeout(struct net_device *d +@@ -601,6 +803,9 @@ ltq_etop_tx_timeout(struct net_device *d err = ltq_etop_hw_init(dev); if (err) goto err_hw; @@ -721,7 +720,7 @@ Signed-off-by: John Crispin netif_trans_update(dev); netif_wake_queue(dev); return; -@@ -625,14 +829,19 @@ static const struct net_device_ops ltq_e +@@ -624,14 +829,19 @@ static const struct net_device_ops ltq_e .ndo_tx_timeout = ltq_etop_tx_timeout, }; @@ -745,7 +744,7 @@ Signed-off-by: John Crispin res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { -@@ -658,31 +867,62 @@ ltq_etop_probe(struct platform_device *p +@@ -657,31 +867,62 @@ ltq_etop_probe(struct platform_device *p goto err_out; } @@ -823,7 +822,7 @@ Signed-off-by: John Crispin err = register_netdev(dev); if (err) -@@ -711,31 +951,22 @@ ltq_etop_remove(struct platform_device * +@@ -710,31 +951,22 @@ ltq_etop_remove(struct platform_device * return 0; } diff --git a/target/linux/layerscape/patches-5.4/701-net-0225-enetc-Configure-the-Time-Aware-Scheduler-via-tc-tapr.patch b/target/linux/layerscape/patches-5.4/701-net-0225-enetc-Configure-the-Time-Aware-Scheduler-via-tc-tapr.patch index e516e1d5b61afb..c67db6ad3da31b 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0225-enetc-Configure-the-Time-Aware-Scheduler-via-tc-tapr.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0225-enetc-Configure-the-Time-Aware-Scheduler-via-tc-tapr.patch @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller fsl-enetc-mdio-y := enetc_pci_mdio.o enetc_mdio.o --- a/drivers/net/ethernet/freescale/enetc/enetc.c +++ b/drivers/net/ethernet/freescale/enetc/enetc.c -@@ -1419,8 +1419,7 @@ int enetc_close(struct net_device *ndev) +@@ -1424,8 +1424,7 @@ int enetc_close(struct net_device *ndev) return 0; } @@ -67,7 +67,7 @@ Signed-off-by: David S. Miller { struct enetc_ndev_priv *priv = netdev_priv(ndev); struct tc_mqprio_qopt *mqprio = type_data; -@@ -1428,9 +1427,6 @@ int enetc_setup_tc(struct net_device *nd +@@ -1433,9 +1432,6 @@ int enetc_setup_tc(struct net_device *nd u8 num_tc; int i; @@ -77,7 +77,7 @@ Signed-off-by: David S. Miller mqprio->hw = TC_MQPRIO_HW_OFFLOAD_TCS; num_tc = mqprio->num_tc; -@@ -1475,6 +1471,19 @@ int enetc_setup_tc(struct net_device *nd +@@ -1480,6 +1476,19 @@ int enetc_setup_tc(struct net_device *nd return 0; } diff --git a/target/linux/layerscape/patches-5.4/701-net-0226-enetc-update-TSN-Qbv-PSPEED-set-according-to-adjust-.patch b/target/linux/layerscape/patches-5.4/701-net-0226-enetc-update-TSN-Qbv-PSPEED-set-according-to-adjust-.patch index b2f229e0029686..99a69c478dff85 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0226-enetc-update-TSN-Qbv-PSPEED-set-according-to-adjust-.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0226-enetc-update-TSN-Qbv-PSPEED-set-according-to-adjust-.patch @@ -42,7 +42,7 @@ Signed-off-by: David S. Miller } static int enetc_dma_alloc_bdr(struct enetc_bdr *r, size_t bd_size) -@@ -1306,8 +1311,12 @@ static void enetc_disable_interrupts(str +@@ -1311,8 +1316,12 @@ static void enetc_disable_interrupts(str static void adjust_link(struct net_device *ndev) { diff --git a/target/linux/layerscape/patches-5.4/701-net-0336-enetc-add-support-Credit-Based-Shaper-CBS-for-hardwa.patch b/target/linux/layerscape/patches-5.4/701-net-0336-enetc-add-support-Credit-Based-Shaper-CBS-for-hardwa.patch index 8b59f994b2be28..bb4e7ebc405947 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0336-enetc-add-support-Credit-Based-Shaper-CBS-for-hardwa.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0336-enetc-add-support-Credit-Based-Shaper-CBS-for-hardwa.patch @@ -47,7 +47,7 @@ Signed-off-by: David S. Miller + taprio(802.1Qbv) and Credit Based Shaper(802.1Qbu). --- a/drivers/net/ethernet/freescale/enetc/enetc.c +++ b/drivers/net/ethernet/freescale/enetc/enetc.c -@@ -1516,6 +1516,8 @@ int enetc_setup_tc(struct net_device *nd +@@ -1521,6 +1521,8 @@ int enetc_setup_tc(struct net_device *nd return enetc_setup_tc_mqprio(ndev, type_data); case TC_SETUP_QDISC_TAPRIO: return enetc_setup_tc_taprio(ndev, type_data); diff --git a/target/linux/layerscape/patches-5.4/701-net-0342-LF-376-enetc-disable-EEE-autoneg-by-default.patch b/target/linux/layerscape/patches-5.4/701-net-0342-LF-376-enetc-disable-EEE-autoneg-by-default.patch index f968080ab8a7d4..9fba6efe8888c4 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0342-LF-376-enetc-disable-EEE-autoneg-by-default.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0342-LF-376-enetc-disable-EEE-autoneg-by-default.patch @@ -17,7 +17,7 @@ Signed-off-by: Yangbo Lu --- a/drivers/net/ethernet/freescale/enetc/enetc.c +++ b/drivers/net/ethernet/freescale/enetc/enetc.c -@@ -1361,6 +1361,7 @@ static int enetc_phy_connect(struct net_ +@@ -1366,6 +1366,7 @@ static int enetc_phy_connect(struct net_ { struct enetc_ndev_priv *priv = netdev_priv(ndev); struct phy_device *phydev; @@ -25,7 +25,7 @@ Signed-off-by: Yangbo Lu if (!priv->phy_node) return 0; /* phy-less mode */ -@@ -1374,6 +1375,10 @@ static int enetc_phy_connect(struct net_ +@@ -1379,6 +1380,10 @@ static int enetc_phy_connect(struct net_ phy_attached_info(phydev); diff --git a/target/linux/layerscape/patches-5.4/701-net-0398-enetc-add-ioctl-support-for-PHY-related-ops.patch b/target/linux/layerscape/patches-5.4/701-net-0398-enetc-add-ioctl-support-for-PHY-related-ops.patch index 6865f2316935b5..2f611dec07d691 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0398-enetc-add-ioctl-support-for-PHY-related-ops.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0398-enetc-add-ioctl-support-for-PHY-related-ops.patch @@ -16,7 +16,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/freescale/enetc/enetc.c +++ b/drivers/net/ethernet/freescale/enetc/enetc.c -@@ -1653,7 +1653,10 @@ int enetc_ioctl(struct net_device *ndev, +@@ -1658,7 +1658,10 @@ int enetc_ioctl(struct net_device *ndev, if (cmd == SIOCGHWTSTAMP) return enetc_hwtstamp_get(ndev, rq); #endif diff --git a/target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch b/target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch index e85d3531f346e1..088efc61286eae 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch @@ -54,7 +54,7 @@ Signed-off-by: Peter Chen * All 3.1 IP version constants are greater than the 3.0 IP --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c -@@ -3706,6 +3706,10 @@ int dwc3_gadget_init(struct dwc3 *dwc) +@@ -3710,6 +3710,10 @@ int dwc3_gadget_init(struct dwc3 *dwc) dwc->gadget.sg_supported = true; dwc->gadget.name = "dwc3-gadget"; dwc->gadget.lpm_capable = true; diff --git a/target/linux/mediatek/patches-5.10/410-bt-mtk-serial-fix.patch b/target/linux/mediatek/patches-5.10/410-bt-mtk-serial-fix.patch index fc9f369509c4cb..6279a8d9070a07 100644 --- a/target/linux/mediatek/patches-5.10/410-bt-mtk-serial-fix.patch +++ b/target/linux/mediatek/patches-5.10/410-bt-mtk-serial-fix.patch @@ -19,7 +19,7 @@ }, [PORT_NPCM] = { .name = "Nuvoton 16550", -@@ -2718,6 +2718,11 @@ serial8250_do_set_termios(struct uart_po +@@ -2723,6 +2723,11 @@ serial8250_do_set_termios(struct uart_po unsigned long flags; unsigned int baud, quot, frac = 0; diff --git a/target/linux/ramips/patches-5.10/830-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch b/target/linux/ramips/patches-5.10/830-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch index 77311c36de2517..544b1d267e5126 100644 --- a/target/linux/ramips/patches-5.10/830-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch +++ b/target/linux/ramips/patches-5.10/830-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch @@ -25,7 +25,7 @@ Signed-off-by: John Crispin --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig -@@ -1101,3 +1101,5 @@ config MMC_OWL +@@ -1102,3 +1102,5 @@ config MMC_OWL config MMC_SDHCI_EXTERNAL_DMA bool