kernel: bump 5.15 to 5.15.159
Removed because they are upstream:
generic/pending-5.15/778-net-l2tp-drop-flow-hash-on-forward.patch
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=e97e0051056b6dbcc43ae1862dcfcb05d06517c3
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 6cfa186544)
This commit is contained in:
@@ -1,2 +1,2 @@
|
|||||||
LINUX_VERSION-5.15 = .158
|
LINUX_VERSION-5.15 = .159
|
||||||
LINUX_KERNEL_HASH-5.15.158 = f9071c83a4fd8b80af026b48cfc1869bfa25883f9148b92b5dc1e1e1e26dd5c6
|
LINUX_KERNEL_HASH-5.15.159 = 3478fe50225e9c88e09cf114f38e3fb71e82d9fdcc356aa1257d721199b341c5
|
||||||
|
|||||||
@@ -1123,7 +1123,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
}
|
}
|
||||||
--- a/drivers/usb/core/hub.c
|
--- a/drivers/usb/core/hub.c
|
||||||
+++ b/drivers/usb/core/hub.c
|
+++ b/drivers/usb/core/hub.c
|
||||||
@@ -5676,7 +5676,7 @@ static void port_event(struct usb_hub *h
|
@@ -5677,7 +5677,7 @@ static void port_event(struct usb_hub *h
|
||||||
port_dev->over_current_count++;
|
port_dev->over_current_count++;
|
||||||
port_over_current_notify(port_dev);
|
port_over_current_notify(port_dev);
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
/* Disable rate control for now */
|
/* Disable rate control for now */
|
||||||
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
|
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
|
||||||
TDMA_FLOW_PERIOD);
|
TDMA_FLOW_PERIOD);
|
||||||
@@ -4083,9 +4083,12 @@ static int bcmgenet_probe(struct platfor
|
@@ -4093,9 +4093,12 @@ static int bcmgenet_probe(struct platfor
|
||||||
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
|
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
|
||||||
|
|
||||||
/* Set default coalescing parameters */
|
/* Set default coalescing parameters */
|
||||||
|
|||||||
@@ -1,70 +0,0 @@
|
|||||||
From 87bb6f0edf9a4a14d9b41bcfe97216f74f730b43 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Phil Elwell <phil@raspberrypi.com>
|
|
||||||
Date: Fri, 25 Sep 2020 15:07:23 +0100
|
|
||||||
Subject: [PATCH] net: bcmgenet: Reset RBUF on first open
|
|
||||||
|
|
||||||
If the RBUF logic is not reset when the kernel starts then there
|
|
||||||
may be some data left over from any network boot loader. If the
|
|
||||||
64-byte packet headers are enabled then this can be fatal.
|
|
||||||
|
|
||||||
Extend bcmgenet_dma_disable to do perform the reset, but not when
|
|
||||||
called from bcmgenet_resume in order to preserve a wake packet.
|
|
||||||
|
|
||||||
N.B. This different handling of resume is just based on a hunch -
|
|
||||||
why else wouldn't one reset the RBUF as well as the TBUF? If this
|
|
||||||
isn't the case then it's easy to change the patch to make the RBUF
|
|
||||||
reset unconditional.
|
|
||||||
|
|
||||||
See: https://github.com/raspberrypi/linux/issues/3850
|
|
||||||
|
|
||||||
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|
||||||
---
|
|
||||||
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 16 ++++++++++++----
|
|
||||||
1 file changed, 12 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
|
||||||
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
|
||||||
@@ -3264,7 +3264,7 @@ static void bcmgenet_get_hw_addr(struct
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns a reusable dma control register value */
|
|
||||||
-static u32 bcmgenet_dma_disable(struct bcmgenet_priv *priv)
|
|
||||||
+static u32 bcmgenet_dma_disable(struct bcmgenet_priv *priv, bool flush_rx)
|
|
||||||
{
|
|
||||||
unsigned int i;
|
|
||||||
u32 reg;
|
|
||||||
@@ -3289,6 +3289,14 @@ static u32 bcmgenet_dma_disable(struct b
|
|
||||||
udelay(10);
|
|
||||||
bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH);
|
|
||||||
|
|
||||||
+ if (flush_rx) {
|
|
||||||
+ reg = bcmgenet_rbuf_ctrl_get(priv);
|
|
||||||
+ bcmgenet_rbuf_ctrl_set(priv, reg | BIT(0));
|
|
||||||
+ udelay(10);
|
|
||||||
+ bcmgenet_rbuf_ctrl_set(priv, reg);
|
|
||||||
+ udelay(10);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return dma_ctrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -3352,8 +3360,8 @@ static int bcmgenet_open(struct net_devi
|
|
||||||
|
|
||||||
bcmgenet_set_hw_addr(priv, dev->dev_addr);
|
|
||||||
|
|
||||||
- /* Disable RX/TX DMA and flush TX queues */
|
|
||||||
- dma_ctrl = bcmgenet_dma_disable(priv);
|
|
||||||
+ /* Disable RX/TX DMA and flush TX and RX queues */
|
|
||||||
+ dma_ctrl = bcmgenet_dma_disable(priv, true);
|
|
||||||
|
|
||||||
/* Reinitialize TDMA and RDMA and SW housekeeping */
|
|
||||||
ret = bcmgenet_init_dma(priv);
|
|
||||||
@@ -4212,7 +4220,7 @@ static int bcmgenet_resume(struct device
|
|
||||||
bcmgenet_hfb_create_rxnfc_filter(priv, rule);
|
|
||||||
|
|
||||||
/* Disable RX/TX DMA and flush TX queues */
|
|
||||||
- dma_ctrl = bcmgenet_dma_disable(priv);
|
|
||||||
+ dma_ctrl = bcmgenet_dma_disable(priv, false);
|
|
||||||
|
|
||||||
/* Reinitialize TDMA and RDMA and SW housekeeping */
|
|
||||||
ret = bcmgenet_init_dma(priv);
|
|
||||||
@@ -104,8 +104,8 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|||||||
+ if (clk->min_rate > 0 || clk->max_rate < ULONG_MAX)
|
+ if (clk->min_rate > 0 || clk->max_rate < ULONG_MAX)
|
||||||
+ clk_set_rate_range_nolock(clk, 0, ULONG_MAX);
|
+ clk_set_rate_range_nolock(clk, 0, ULONG_MAX);
|
||||||
|
|
||||||
owner = clk->core->owner;
|
clk_prepare_unlock();
|
||||||
kref_put(&clk->core->ref, __clk_release);
|
|
||||||
--- a/drivers/clk/clk_test.c
|
--- a/drivers/clk/clk_test.c
|
||||||
+++ b/drivers/clk/clk_test.c
|
+++ b/drivers/clk/clk_test.c
|
||||||
@@ -760,9 +760,65 @@ static void clk_range_test_multiple_set_
|
@@ -760,9 +760,65 @@ static void clk_range_test_multiple_set_
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
|||||||
if (priv && (priv->quirks & XHCI_SG_TRB_CACHE_SIZE_QUIRK))
|
if (priv && (priv->quirks & XHCI_SG_TRB_CACHE_SIZE_QUIRK))
|
||||||
--- a/drivers/usb/host/xhci-plat.h
|
--- a/drivers/usb/host/xhci-plat.h
|
||||||
+++ b/drivers/usb/host/xhci-plat.h
|
+++ b/drivers/usb/host/xhci-plat.h
|
||||||
@@ -13,7 +13,6 @@
|
@@ -15,7 +15,6 @@ struct usb_hcd;
|
||||||
struct xhci_plat_priv {
|
struct xhci_plat_priv {
|
||||||
const char *firmware_name;
|
const char *firmware_name;
|
||||||
unsigned long long quirks;
|
unsigned long long quirks;
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
*/
|
*/
|
||||||
--- a/include/linux/skbuff.h
|
--- a/include/linux/skbuff.h
|
||||||
+++ b/include/linux/skbuff.h
|
+++ b/include/linux/skbuff.h
|
||||||
@@ -2855,6 +2855,10 @@ static inline int pskb_trim(struct sk_bu
|
@@ -2870,6 +2870,10 @@ static inline int pskb_trim(struct sk_bu
|
||||||
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
|
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
/**
|
/**
|
||||||
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
|
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
|
||||||
* @skb: buffer to alter
|
* @skb: buffer to alter
|
||||||
@@ -3005,16 +3009,6 @@ static inline struct sk_buff *dev_alloc_
|
@@ -3020,16 +3024,6 @@ static inline struct sk_buff *dev_alloc_
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/include/linux/skbuff.h
|
--- a/include/linux/skbuff.h
|
||||||
+++ b/include/linux/skbuff.h
|
+++ b/include/linux/skbuff.h
|
||||||
@@ -2821,7 +2821,7 @@ static inline int pskb_network_may_pull(
|
@@ -2836,7 +2836,7 @@ static inline int pskb_network_may_pull(
|
||||||
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
|
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
|
||||||
*/
|
*/
|
||||||
#ifndef NET_SKB_PAD
|
#ifndef NET_SKB_PAD
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ Signed-off-by: Alexander Duyck <alexanderduyck@fb.com>
|
|||||||
|
|
||||||
--- a/net/core/skbuff.c
|
--- a/net/core/skbuff.c
|
||||||
+++ b/net/core/skbuff.c
|
+++ b/net/core/skbuff.c
|
||||||
@@ -4360,6 +4360,15 @@ int skb_gro_receive(struct sk_buff *p, s
|
@@ -4371,6 +4371,15 @@ int skb_gro_receive(struct sk_buff *p, s
|
||||||
if (unlikely(p->len + len >= 65536 || NAPI_GRO_CB(skb)->flush))
|
if (unlikely(p->len + len >= 65536 || NAPI_GRO_CB(skb)->flush))
|
||||||
return -E2BIG;
|
return -E2BIG;
|
||||||
|
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
From 4a44a52f16ccd3d03e0cb5fb437a5eb31a5f9f05 Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Bauer <mail@david-bauer.net>
|
|
||||||
Date: Mon, 26 Feb 2024 21:39:34 +0100
|
|
||||||
Subject: [PATCH] net l2tp: drop flow hash on forward
|
|
||||||
|
|
||||||
Drop the flow-hash of the skb when forwarding to the L2TP netdev.
|
|
||||||
|
|
||||||
This avoids the L2TP qdisc from using the flow-hash from the outer
|
|
||||||
packet, which is identical for every flow within the tunnel.
|
|
||||||
|
|
||||||
This does not affect every platform but is specific for the ethernet
|
|
||||||
driver. It depends on the platform including L4 information in the
|
|
||||||
flow-hash.
|
|
||||||
|
|
||||||
Signed-off-by: David Bauer <mail@david-bauer.net>
|
|
||||||
---
|
|
||||||
net/l2tp/l2tp_eth.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
--- a/net/l2tp/l2tp_eth.c
|
|
||||||
+++ b/net/l2tp/l2tp_eth.c
|
|
||||||
@@ -136,6 +136,9 @@ static void l2tp_eth_dev_recv(struct l2t
|
|
||||||
/* checksums verified by L2TP */
|
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
|
||||||
|
|
||||||
+ /* drop outer flow-hash */
|
|
||||||
+ skb_clear_hash(skb);
|
|
||||||
+
|
|
||||||
skb_dst_drop(skb);
|
|
||||||
nf_reset_ct(skb);
|
|
||||||
|
|
||||||
@@ -365,7 +365,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
|||||||
void mtk_rmw(struct mtk_pinctrl *pctl, u8 i, u32 reg, u32 mask, u32 set);
|
void mtk_rmw(struct mtk_pinctrl *pctl, u8 i, u32 reg, u32 mask, u32 set);
|
||||||
--- a/drivers/pinctrl/mediatek/pinctrl-paris.c
|
--- a/drivers/pinctrl/mediatek/pinctrl-paris.c
|
||||||
+++ b/drivers/pinctrl/mediatek/pinctrl-paris.c
|
+++ b/drivers/pinctrl/mediatek/pinctrl-paris.c
|
||||||
@@ -574,8 +574,9 @@ static int mtk_hw_get_value_wrap(struct
|
@@ -538,8 +538,9 @@ static int mtk_hw_get_value_wrap(struct
|
||||||
ssize_t mtk_pctrl_show_one_pin(struct mtk_pinctrl *hw,
|
ssize_t mtk_pctrl_show_one_pin(struct mtk_pinctrl *hw,
|
||||||
unsigned int gpio, char *buf, unsigned int buf_len)
|
unsigned int gpio, char *buf, unsigned int buf_len)
|
||||||
{
|
{
|
||||||
@@ -376,7 +376,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
|||||||
|
|
||||||
if (gpio >= hw->soc->npins)
|
if (gpio >= hw->soc->npins)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@@ -589,24 +590,39 @@ ssize_t mtk_pctrl_show_one_pin(struct mt
|
@@ -553,24 +554,39 @@ ssize_t mtk_pctrl_show_one_pin(struct mt
|
||||||
pinmux -= hw->soc->nfuncs;
|
pinmux -= hw->soc->nfuncs;
|
||||||
|
|
||||||
mtk_pinconf_bias_get_combo(hw, desc, &pullup, &pullen);
|
mtk_pinconf_bias_get_combo(hw, desc, &pullup, &pullen);
|
||||||
@@ -433,7 +433,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
|||||||
}
|
}
|
||||||
len += scnprintf(buf + len, buf_len - len,
|
len += scnprintf(buf + len, buf_len - len,
|
||||||
"%03d: %1d%1d%1d%1d%02d%1d%1d%1d%1d",
|
"%03d: %1d%1d%1d%1d%02d%1d%1d%1d%1d",
|
||||||
@@ -624,6 +640,8 @@ ssize_t mtk_pctrl_show_one_pin(struct mt
|
@@ -588,6 +604,8 @@ ssize_t mtk_pctrl_show_one_pin(struct mt
|
||||||
if (r1 != -1) {
|
if (r1 != -1) {
|
||||||
len += scnprintf(buf + len, buf_len - len, " (%1d %1d)\n",
|
len += scnprintf(buf + len, buf_len - len, " (%1d %1d)\n",
|
||||||
r1, r0);
|
r1, r0);
|
||||||
@@ -442,7 +442,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
|||||||
} else {
|
} else {
|
||||||
len += scnprintf(buf + len, buf_len - len, "\n");
|
len += scnprintf(buf + len, buf_len - len, "\n");
|
||||||
}
|
}
|
||||||
@@ -966,6 +984,12 @@ int mtk_paris_pinctrl_probe(struct platf
|
@@ -930,6 +948,12 @@ int mtk_paris_pinctrl_probe(struct platf
|
||||||
|
|
||||||
hw->nbase = hw->soc->nbase_names;
|
hw->nbase = hw->soc->nbase_names;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user