endif
LINUX_VERSION-5.4 = .134
-LINUX_VERSION-5.10 = .53
+LINUX_VERSION-5.10 = .54
LINUX_KERNEL_HASH-5.4.134 = c9fb861642161c256e10c97c35ccce18831e688d87ead53c18e3226778e05841
-LINUX_KERNEL_HASH-5.10.53 = f0058d902933986dbaf03b2a0304d2babe5fe1c8e3f41f156ffd3c3f210106dc
+LINUX_KERNEL_HASH-5.10.54 = bf50c63261847187eca4a1793e5df5c1355b21697409589f6ca03e32b629be44
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
hcd->msi_enabled = 1;
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1887,6 +1887,7 @@ struct xhci_hcd {
+@@ -1888,6 +1888,7 @@ struct xhci_hcd {
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
/* support xHCI 1.0 spec USB2 hardware LPM */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6779,15 +6779,10 @@ void __netif_napi_del(struct napi_struct
+@@ -6793,15 +6793,10 @@ void __netif_napi_del(struct napi_struct
}
EXPORT_SYMBOL(__netif_napi_del);
weight = n->weight;
/* This NAPI_STATE_SCHED test is for avoiding a race
-@@ -6807,7 +6802,7 @@ static int napi_poll(struct napi_struct
+@@ -6821,7 +6816,7 @@ static int napi_poll(struct napi_struct
n->poll, work, weight);
if (likely(work < weight))
/* Drivers must not modify the NAPI state if they
* consume the entire weight. In such cases this code
-@@ -6816,7 +6811,7 @@ static int napi_poll(struct napi_struct
+@@ -6830,7 +6825,7 @@ static int napi_poll(struct napi_struct
*/
if (unlikely(napi_disable_pending(n))) {
napi_complete(n);
}
if (n->gro_bitmask) {
-@@ -6834,12 +6829,29 @@ static int napi_poll(struct napi_struct
+@@ -6848,12 +6843,29 @@ static int napi_poll(struct napi_struct
if (unlikely(!list_empty(&n->poll_list))) {
pr_warn_once("%s: Budget exhausted after napi rescheduled\n",
n->dev ? n->dev->name : "backlog");
list_add_tail(&napi->poll_list, &sd->poll_list);
__raise_softirq_irqoff(NET_RX_SOFTIRQ);
}
-@@ -6732,6 +6769,12 @@ void netif_napi_add(struct net_device *d
+@@ -6746,6 +6783,12 @@ void netif_napi_add(struct net_device *d
set_bit(NAPI_STATE_NPSVC, &napi->state);
list_add_rcu(&napi->dev_list, &dev->napi_list);
napi_hash_add(napi);
}
EXPORT_SYMBOL(netif_napi_add);
-@@ -6748,9 +6791,28 @@ void napi_disable(struct napi_struct *n)
+@@ -6762,9 +6805,28 @@ void napi_disable(struct napi_struct *n)
hrtimer_cancel(&n->timer);
clear_bit(NAPI_STATE_DISABLE, &n->state);
static void flush_gro_hash(struct napi_struct *napi)
{
int i;
-@@ -6776,6 +6838,11 @@ void __netif_napi_del(struct napi_struct
+@@ -6790,6 +6852,11 @@ void __netif_napi_del(struct napi_struct
flush_gro_hash(napi);
napi->gro_bitmask = 0;
}
EXPORT_SYMBOL(__netif_napi_del);
-@@ -6857,6 +6924,51 @@ static int napi_poll(struct napi_struct
+@@ -6871,6 +6938,51 @@ static int napi_poll(struct napi_struct
return work;
}
* wake_up_process() when it's not NULL.
*/
thread = READ_ONCE(napi->thread);
-@@ -6742,6 +6743,49 @@ static void init_gro_hash(struct napi_st
+@@ -6756,6 +6757,49 @@ static void init_gro_hash(struct napi_st
napi->gro_bitmask = 0;
}
wake_up_process(thread);
return;
}
-@@ -6534,7 +6536,8 @@ bool napi_complete_done(struct napi_stru
+@@ -6548,7 +6550,8 @@ bool napi_complete_done(struct napi_stru
WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));
/* If STATE_MISSED was set, leave STATE_SCHED set,
* because we will call napi->poll() one more time.
-@@ -6970,16 +6973,25 @@ static int napi_poll(struct napi_struct
+@@ -6984,16 +6987,25 @@ static int napi_poll(struct napi_struct
static int napi_thread_wait(struct napi_struct *napi)
{
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6977,7 +6977,7 @@ static int napi_thread_wait(struct napi_
+@@ -6991,7 +6991,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE);
/* Testing SCHED_THREADED bit here to make sure the current
* kthread owns this napi and could poll on this napi.
* Testing SCHED bit is not enough because SCHED bit might be
-@@ -6995,6 +6995,7 @@ static int napi_thread_wait(struct napi_
+@@ -7009,6 +7009,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE);
}
__set_current_state(TASK_RUNNING);
__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6037,6 +6037,9 @@ static enum gro_result dev_gro_receive(s
+@@ -6050,6 +6050,9 @@ static enum gro_result dev_gro_receive(s
int same_flow;
int grow;
if (netif_elide_gro(skb->dev))
goto normal;
-@@ -8013,6 +8016,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -8027,6 +8030,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info,
-@@ -8064,6 +8109,7 @@ static int __netdev_upper_dev_link(struc
+@@ -8078,6 +8123,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -8160,6 +8206,7 @@ static void __netdev_upper_dev_unlink(st
+@@ -8174,6 +8220,7 @@ static void __netdev_upper_dev_unlink(st
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
-@@ -8946,6 +8993,7 @@ int dev_set_mac_address(struct net_devic
+@@ -8960,6 +9007,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -5409,6 +5409,7 @@ static int mv88e6xxx_register_switch(str
+@@ -5419,6 +5419,7 @@ static int mv88e6xxx_register_switch(str
ds->ops = &mv88e6xxx_switch_ops;
ds->ageing_time_min = chip->info->age_time_coeff;
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
+++ /dev/null
-From 3a70dd2d050331ee4cf5ad9d5c0a32d83ead9a43 Mon Sep 17 00:00:00 2001
-From: Peter Hess <peter.hess@ph-home.de>
-Date: Tue, 6 Jul 2021 14:16:09 +0200
-Subject: spi: mediatek: fix fifo rx mode
-
-In FIFO mode were two problems:
-- RX mode was never handled and
-- in this case the tx_buf pointer was NULL and caused an exception
-
-fix this by handling RX mode in mtk_spi_fifo_transfer
-
-Fixes: a568231f4632 ("spi: mediatek: Add spi bus for Mediatek MT8173")
-Signed-off-by: Peter Hess <peter.hess@ph-home.de>
-Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
-Link: https://lore.kernel.org/r/20210706121609.680534-1-linux@fw-web.de
-Signed-off-by: Mark Brown <broonie@kernel.org>
----
- drivers/spi/spi-mt65xx.c | 16 +++++++++++++---
- 1 file changed, 13 insertions(+), 3 deletions(-)
-
---- a/drivers/spi/spi-mt65xx.c
-+++ b/drivers/spi/spi-mt65xx.c
-@@ -434,13 +434,23 @@ static int mtk_spi_fifo_transfer(struct
- mtk_spi_setup_packet(master);
-
- cnt = xfer->len / 4;
-- iowrite32_rep(mdata->base + SPI_TX_DATA_REG, xfer->tx_buf, cnt);
-+ if (xfer->tx_buf)
-+ iowrite32_rep(mdata->base + SPI_TX_DATA_REG, xfer->tx_buf, cnt);
-+
-+ if (xfer->rx_buf)
-+ ioread32_rep(mdata->base + SPI_RX_DATA_REG, xfer->rx_buf, cnt);
-
- remainder = xfer->len % 4;
- if (remainder > 0) {
- reg_val = 0;
-- memcpy(®_val, xfer->tx_buf + (cnt * 4), remainder);
-- writel(reg_val, mdata->base + SPI_TX_DATA_REG);
-+ if (xfer->tx_buf) {
-+ memcpy(®_val, xfer->tx_buf + (cnt * 4), remainder);
-+ writel(reg_val, mdata->base + SPI_TX_DATA_REG);
-+ }
-+ if (xfer->rx_buf) {
-+ reg_val = readl(mdata->base + SPI_RX_DATA_REG);
-+ memcpy(xfer->rx_buf + (cnt * 4), ®_val, remainder);
-+ }
- }
-
- mtk_spi_enable_transfer(master);