-LINUX_VERSION-5.10 = .216
-LINUX_KERNEL_HASH-5.10.216 = e310588c4b23f0959614e60f007afc20e9b1a8f296d682b041fa129f96fbe151
+LINUX_VERSION-5.10 = .217
+LINUX_KERNEL_HASH-5.10.217 = c52bc1ffc396c11bce335c9ee5cd55fe4213cbc1fb4026ff62bb90c864c61f62
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
-@@ -3078,7 +3078,8 @@ static int _regulator_list_voltage(struc
+@@ -3083,7 +3083,8 @@ static int _regulator_list_voltage(struc
return rdev->desc->fixed_uV;
if (ops->list_voltage) {
return -EINVAL;
if (lock)
regulator_lock(rdev);
-@@ -3229,7 +3230,8 @@ int regulator_list_hardware_vsel(struct
+@@ -3234,7 +3235,8 @@ int regulator_list_hardware_vsel(struct
struct regulator_dev *rdev = regulator->rdev;
const struct regulator_ops *ops = rdev->desc->ops;
return -EINVAL;
if (ops->set_voltage_sel != regulator_set_voltage_sel_regmap)
return -EOPNOTSUPP;
-@@ -4152,6 +4154,9 @@ int regulator_set_voltage_time(struct re
+@@ -4157,6 +4159,9 @@ int regulator_set_voltage_time(struct re
for (i = 0; i < rdev->desc->n_voltages; i++) {
/* We only look for exact voltage matches here */
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
-@@ -4157,6 +4157,9 @@ int regulator_set_voltage_time(struct re
+@@ -4162,6 +4162,9 @@ int regulator_set_voltage_time(struct re
if (i < rdev->desc->linear_min_sel)
continue;
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
-@@ -3078,9 +3078,10 @@ static int _regulator_list_voltage(struc
+@@ -3083,9 +3083,10 @@ static int _regulator_list_voltage(struc
return rdev->desc->fixed_uV;
if (ops->list_voltage) {
if (lock)
regulator_lock(rdev);
ret = ops->list_voltage(rdev, selector);
-@@ -3230,9 +3231,10 @@ int regulator_list_hardware_vsel(struct
+@@ -3235,9 +3236,10 @@ int regulator_list_hardware_vsel(struct
struct regulator_dev *rdev = regulator->rdev;
const struct regulator_ops *ops = rdev->desc->ops;
}
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
-@@ -5680,7 +5680,7 @@ static void port_event(struct usb_hub *h
+@@ -5681,7 +5681,7 @@ static void port_event(struct usb_hub *h
port_dev->over_current_count++;
port_over_current_notify(port_dev);
/* Disable rate control for now */
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
TDMA_FLOW_PERIOD);
-@@ -4081,9 +4081,12 @@ static int bcmgenet_probe(struct platfor
+@@ -4091,9 +4091,12 @@ static int bcmgenet_probe(struct platfor
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
/* Set default coalescing parameters */
+++ /dev/null
-From eccfde35476213d30a67dedb63f007e7ae8da78c 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
-@@ -3260,7 +3260,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;
-@@ -3285,6 +3285,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;
- }
-
-@@ -3348,8 +3356,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);
-@@ -4210,7 +4218,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);
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2726,6 +2726,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2741,6 +2741,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
-@@ -2857,16 +2861,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2872,16 +2876,6 @@ static inline struct sk_buff *dev_alloc_
}
trace_net_dev_start_xmit(skb, dev);
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
-@@ -60,6 +60,7 @@
- #include <linux/prefetch.h>
+@@ -61,6 +61,7 @@
#include <linux/if_vlan.h>
#include <linux/mpls.h>
+ #include <linux/kcov.h>
+#include <linux/if.h>
#include <net/protocol.h>
#include <net/dst.h>
-@@ -553,6 +554,22 @@ skb_fail:
+@@ -554,6 +555,22 @@ skb_fail:
}
EXPORT_SYMBOL(__napi_alloc_skb);
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2692,7 +2692,7 @@ static inline int pskb_network_may_pull(
+@@ -2707,7 +2707,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD
if (priv && (priv->quirks & XHCI_SG_TRB_CACHE_SIZE_QUIRK))
--- a/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 {
const char *firmware_name;
unsigned long long quirks;