mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
kernel: bump 5.15 to 5.15.148 (#11832)
This commit is contained in:
parent
a96f1c3ec1
commit
edb87675dd
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.15 = .147
|
||||
LINUX_KERNEL_HASH-5.15.147 = 56c1e65625d201db431efda7a3816e7b424071e7cb0245b2ba594d15b1fdfcd4
|
||||
LINUX_VERSION-5.15 = .148
|
||||
LINUX_KERNEL_HASH-5.15.148 = c48575c97fd9f4767cbe50a13b1b2b40ee42830aba3182fabd35a03259a6e5d8
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
|
||||
--- a/drivers/leds/Kconfig
|
||||
+++ b/drivers/leds/Kconfig
|
||||
@@ -876,6 +876,17 @@ source "drivers/leds/blink/Kconfig"
|
||||
@@ -877,6 +877,17 @@ source "drivers/leds/blink/Kconfig"
|
||||
comment "Flash and Torch LED drivers"
|
||||
source "drivers/leds/flash/Kconfig"
|
||||
|
||||
|
@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/net/bluetooth/smp.c
|
||||
+++ b/net/bluetooth/smp.c
|
||||
@@ -2207,7 +2207,7 @@ mackey_and_ltk:
|
||||
@@ -2214,7 +2214,7 @@ mackey_and_ltk:
|
||||
if (err)
|
||||
return SMP_UNSPECIFIED;
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
if (hcon->out) {
|
||||
sc_dhkey_check(smp);
|
||||
SMP_ALLOW_CMD(smp, SMP_CMD_DHKEY_CHECK);
|
||||
@@ -2222,9 +2222,6 @@ mackey_and_ltk:
|
||||
@@ -2229,9 +2229,6 @@ mackey_and_ltk:
|
||||
confirm_hint = 0;
|
||||
|
||||
confirm:
|
||||
|
@ -36,7 +36,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
|
||||
#define SECS_TO_WDOG_TICKS(x) ((x) << 16)
|
||||
#define WDOG_TICKS_TO_SECS(x) ((x) >> 16)
|
||||
@@ -97,9 +91,24 @@ static unsigned int bcm2835_wdt_get_time
|
||||
@@ -98,9 +92,24 @@ static unsigned int bcm2835_wdt_get_time
|
||||
return WDOG_TICKS_TO_SECS(ret & PM_WDOG_TIME_SET);
|
||||
}
|
||||
|
||||
@ -63,7 +63,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
|
||||
/* use a timeout of 10 ticks (~150us) */
|
||||
writel_relaxed(10 | PM_PASSWORD, wdt->base + PM_WDOG);
|
||||
@@ -117,7 +126,13 @@ static int bcm2835_restart(struct watchd
|
||||
@@ -118,7 +127,13 @@ static int bcm2835_restart(struct watchd
|
||||
{
|
||||
struct bcm2835_wdt *wdt = watchdog_get_drvdata(wdog);
|
||||
|
||||
@ -78,7 +78,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -152,19 +167,9 @@ static struct watchdog_device bcm2835_wd
|
||||
@@ -153,19 +168,9 @@ static struct watchdog_device bcm2835_wd
|
||||
static void bcm2835_power_off(void)
|
||||
{
|
||||
struct bcm2835_wdt *wdt = bcm2835_power_off_wdt;
|
||||
|
@ -244,7 +244,7 @@ bcm2835-mmc: uninitialized_var is no more
|
||||
static inline int mmc_blk_part_switch(struct mmc_card *card,
|
||||
unsigned int part_type);
|
||||
static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
|
||||
@@ -2944,6 +2951,8 @@ static int mmc_blk_probe(struct mmc_card
|
||||
@@ -2946,6 +2953,8 @@ static int mmc_blk_probe(struct mmc_card
|
||||
{
|
||||
struct mmc_blk_data *md;
|
||||
int ret = 0;
|
||||
@ -253,7 +253,7 @@ bcm2835-mmc: uninitialized_var is no more
|
||||
|
||||
/*
|
||||
* Check that the card supports the command class(es) we need.
|
||||
@@ -2951,7 +2960,16 @@ static int mmc_blk_probe(struct mmc_card
|
||||
@@ -2953,7 +2962,16 @@ static int mmc_blk_probe(struct mmc_card
|
||||
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
|
||||
return -ENODEV;
|
||||
|
||||
@ -271,7 +271,7 @@ bcm2835-mmc: uninitialized_var is no more
|
||||
|
||||
card->complete_wq = alloc_workqueue("mmc_complete",
|
||||
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
|
||||
@@ -2966,6 +2984,17 @@ static int mmc_blk_probe(struct mmc_card
|
||||
@@ -2968,6 +2986,17 @@ static int mmc_blk_probe(struct mmc_card
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/tty/serial/sc16is7xx.c
|
||||
+++ b/drivers/tty/serial/sc16is7xx.c
|
||||
@@ -708,6 +708,8 @@ static bool sc16is7xx_port_irq(struct sc
|
||||
@@ -709,6 +709,8 @@ static bool sc16is7xx_port_irq(struct sc
|
||||
|
||||
if (rxlen)
|
||||
sc16is7xx_handle_rx(port, rxlen, iir);
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
||||
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
||||
@@ -2616,7 +2616,7 @@ static void bcmgenet_init_tx_ring(struct
|
||||
@@ -2618,7 +2618,7 @@ static void bcmgenet_init_tx_ring(struct
|
||||
|
||||
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
|
||||
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
|
||||
@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
/* Disable rate control for now */
|
||||
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
|
||||
TDMA_FLOW_PERIOD);
|
||||
@@ -4084,9 +4084,12 @@ static int bcmgenet_probe(struct platfor
|
||||
@@ -4086,9 +4086,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 */
|
||||
|
@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
|
||||
{
|
||||
@@ -2447,6 +2450,11 @@ static void reset_umac(struct bcmgenet_p
|
||||
@@ -2449,6 +2452,11 @@ static void reset_umac(struct bcmgenet_p
|
||||
bcmgenet_rbuf_ctrl_set(priv, 0);
|
||||
udelay(10);
|
||||
|
||||
|
@ -32,7 +32,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/spi/spi.c
|
||||
+++ b/drivers/spi/spi.c
|
||||
@@ -3480,6 +3480,7 @@ static int __spi_validate_bits_per_word(
|
||||
@@ -3492,6 +3492,7 @@ static int __spi_validate_bits_per_word(
|
||||
*/
|
||||
int spi_setup(struct spi_device *spi)
|
||||
{
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
unsigned bad_bits, ugly_bits;
|
||||
int status;
|
||||
|
||||
@@ -3501,6 +3502,14 @@ int spi_setup(struct spi_device *spi)
|
||||
@@ -3513,6 +3514,14 @@ int spi_setup(struct spi_device *spi)
|
||||
(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL |
|
||||
SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL)))
|
||||
return -EINVAL;
|
||||
|
@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/tty/serial/sc16is7xx.c
|
||||
+++ b/drivers/tty/serial/sc16is7xx.c
|
||||
@@ -523,8 +523,9 @@ static int sc16is7xx_set_baud(struct uar
|
||||
@@ -524,8 +524,9 @@ static int sc16is7xx_set_baud(struct uar
|
||||
|
||||
/* Enable enhanced features */
|
||||
regcache_cache_bypass(s->regmap, true);
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
regcache_cache_bypass(s->regmap, false);
|
||||
|
||||
/* Put LCR back to the normal mode */
|
||||
@@ -854,7 +855,7 @@ static unsigned int sc16is7xx_get_mctrl(
|
||||
@@ -855,7 +856,7 @@ static unsigned int sc16is7xx_get_mctrl(
|
||||
/* DCD and DSR are not wired and CTS/RTS is handled automatically
|
||||
* so just indicate DSR and CAR asserted
|
||||
*/
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
}
|
||||
|
||||
static void sc16is7xx_set_mctrl(struct uart_port *port, unsigned int mctrl)
|
||||
@@ -941,14 +942,19 @@ static void sc16is7xx_set_termios(struct
|
||||
@@ -942,14 +943,19 @@ static void sc16is7xx_set_termios(struct
|
||||
regcache_cache_bypass(s->regmap, true);
|
||||
sc16is7xx_port_write(port, SC16IS7XX_XON1_REG, termios->c_cc[VSTART]);
|
||||
sc16is7xx_port_write(port, SC16IS7XX_XOFF1_REG, termios->c_cc[VSTOP]);
|
||||
|
@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
||||
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
||||
@@ -3265,7 +3265,7 @@ static void bcmgenet_get_hw_addr(struct
|
||||
@@ -3267,7 +3267,7 @@ static void bcmgenet_get_hw_addr(struct
|
||||
}
|
||||
|
||||
/* Returns a reusable dma control register value */
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
{
|
||||
unsigned int i;
|
||||
u32 reg;
|
||||
@@ -3290,6 +3290,14 @@ static u32 bcmgenet_dma_disable(struct b
|
||||
@@ -3292,6 +3292,14 @@ static u32 bcmgenet_dma_disable(struct b
|
||||
udelay(10);
|
||||
bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH);
|
||||
|
||||
@ -48,7 +48,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
return dma_ctrl;
|
||||
}
|
||||
|
||||
@@ -3353,8 +3361,8 @@ static int bcmgenet_open(struct net_devi
|
||||
@@ -3355,8 +3363,8 @@ static int bcmgenet_open(struct net_devi
|
||||
|
||||
bcmgenet_set_hw_addr(priv, dev->dev_addr);
|
||||
|
||||
@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
/* Reinitialize TDMA and RDMA and SW housekeeping */
|
||||
ret = bcmgenet_init_dma(priv);
|
||||
@@ -4213,7 +4221,7 @@ static int bcmgenet_resume(struct device
|
||||
@@ -4215,7 +4223,7 @@ static int bcmgenet_resume(struct device
|
||||
bcmgenet_hfb_create_rxnfc_filter(priv, rule);
|
||||
|
||||
/* Disable RX/TX DMA and flush TX queues */
|
||||
|
@ -12,7 +12,7 @@ which are only relevant to other reboot notifiers.
|
||||
|
||||
--- a/drivers/watchdog/bcm2835_wdt.c
|
||||
+++ b/drivers/watchdog/bcm2835_wdt.c
|
||||
@@ -126,10 +126,12 @@ static int bcm2835_restart(struct watchd
|
||||
@@ -127,10 +127,12 @@ static int bcm2835_restart(struct watchd
|
||||
{
|
||||
struct bcm2835_wdt *wdt = watchdog_get_drvdata(wdog);
|
||||
|
||||
|
@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/mmc/core/block.c
|
||||
+++ b/drivers/mmc/core/block.c
|
||||
@@ -1888,7 +1888,11 @@ static void mmc_blk_mq_rw_recovery(struc
|
||||
@@ -1890,7 +1890,11 @@ static void mmc_blk_mq_rw_recovery(struc
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
|
||||
--- a/drivers/leds/Kconfig
|
||||
+++ b/drivers/leds/Kconfig
|
||||
@@ -288,6 +288,15 @@ config LEDS_COBALT_RAQ
|
||||
@@ -289,6 +289,15 @@ config LEDS_COBALT_RAQ
|
||||
help
|
||||
This option enables support for the Cobalt Raq series LEDs.
|
||||
|
||||
|
@ -62,7 +62,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
tx_q->dma_tx_phy, chan);
|
||||
stmmac_start_tx_dma(priv, chan);
|
||||
@@ -3782,6 +3773,8 @@ static int stmmac_open(struct net_device
|
||||
@@ -3783,6 +3774,8 @@ static int stmmac_open(struct net_device
|
||||
}
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
ret = stmmac_hw_setup(dev, true);
|
||||
if (ret < 0) {
|
||||
netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
|
||||
@@ -6429,6 +6422,7 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
@@ -6430,6 +6423,7 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
return;
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
stmmac_clear_rx_descriptors(priv, queue);
|
||||
|
||||
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
@@ -6490,6 +6484,7 @@ void stmmac_enable_tx_queue(struct stmma
|
||||
@@ -6491,6 +6485,7 @@ void stmmac_enable_tx_queue(struct stmma
|
||||
return;
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
stmmac_clear_tx_descriptors(priv, queue);
|
||||
|
||||
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
@@ -7414,6 +7409,25 @@ int stmmac_suspend(struct device *dev)
|
||||
@@ -7415,6 +7410,25 @@ int stmmac_suspend(struct device *dev)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(stmmac_suspend);
|
||||
|
||||
@ -113,7 +113,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
/**
|
||||
* stmmac_reset_queues_param - reset queue parameters
|
||||
* @priv: device pointer
|
||||
@@ -7424,22 +7438,11 @@ static void stmmac_reset_queues_param(st
|
||||
@@ -7425,22 +7439,11 @@ static void stmmac_reset_queues_param(st
|
||||
u32 tx_cnt = priv->plat->tx_queues_to_use;
|
||||
u32 queue;
|
||||
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
@@ -3834,8 +3834,6 @@ static int stmmac_release(struct net_dev
|
||||
@@ -3835,8 +3835,6 @@ static int stmmac_release(struct net_dev
|
||||
struct stmmac_priv *priv = netdev_priv(dev);
|
||||
u32 chan;
|
||||
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
if (device_may_wakeup(priv->device))
|
||||
phylink_speed_down(priv->phylink, false);
|
||||
/* Stop and disconnect the PHY */
|
||||
@@ -3847,6 +3845,8 @@ static int stmmac_release(struct net_dev
|
||||
@@ -3848,6 +3846,8 @@ static int stmmac_release(struct net_dev
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
hrtimer_cancel(&priv->tx_queue[chan].txtimer);
|
||||
|
||||
|
@ -719,7 +719,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3575,7 +3575,7 @@ static int stmmac_request_irq_multi_msi(
|
||||
@@ -3576,7 +3576,7 @@ static int stmmac_request_irq_multi_msi(
|
||||
sprintf(int_name, "%s:%s-%d", dev->name, "rx", i);
|
||||
ret = request_irq(priv->rx_irq[i],
|
||||
stmmac_msi_intr_rx,
|
||||
@ -728,7 +728,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
if (unlikely(ret < 0)) {
|
||||
netdev_err(priv->dev,
|
||||
"%s: alloc rx-%d MSI %d (error: %d)\n",
|
||||
@@ -3598,7 +3598,7 @@ static int stmmac_request_irq_multi_msi(
|
||||
@@ -3599,7 +3599,7 @@ static int stmmac_request_irq_multi_msi(
|
||||
sprintf(int_name, "%s:%s-%d", dev->name, "tx", i);
|
||||
ret = request_irq(priv->tx_irq[i],
|
||||
stmmac_msi_intr_tx,
|
||||
@ -737,7 +737,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
if (unlikely(ret < 0)) {
|
||||
netdev_err(priv->dev,
|
||||
"%s: alloc tx-%d MSI %d (error: %d)\n",
|
||||
@@ -3729,21 +3729,21 @@ static int stmmac_open(struct net_device
|
||||
@@ -3730,21 +3730,21 @@ static int stmmac_open(struct net_device
|
||||
bfsize = 0;
|
||||
|
||||
if (bfsize < BUF_SIZE_16KiB)
|
||||
@ -766,7 +766,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
int tbs_en = priv->plat->tx_queues_cfg[chan].tbs_en;
|
||||
|
||||
/* Setup per-TXQ tbs flag before TX descriptor alloc */
|
||||
@@ -3801,7 +3801,7 @@ irq_error:
|
||||
@@ -3802,7 +3802,7 @@ irq_error:
|
||||
phylink_stop(priv->phylink);
|
||||
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -775,7 +775,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_hw_teardown(dev);
|
||||
init_error:
|
||||
@@ -3843,7 +3843,7 @@ static int stmmac_release(struct net_dev
|
||||
@@ -3844,7 +3844,7 @@ static int stmmac_release(struct net_dev
|
||||
stmmac_disable_all_queues(priv);
|
||||
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -784,7 +784,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
netif_tx_disable(dev);
|
||||
|
||||
@@ -3907,7 +3907,7 @@ static bool stmmac_vlan_insert(struct st
|
||||
@@ -3908,7 +3908,7 @@ static bool stmmac_vlan_insert(struct st
|
||||
return false;
|
||||
|
||||
stmmac_set_tx_owner(priv, p);
|
||||
@ -793,7 +793,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -3925,7 +3925,7 @@ static bool stmmac_vlan_insert(struct st
|
||||
@@ -3926,7 +3926,7 @@ static bool stmmac_vlan_insert(struct st
|
||||
static void stmmac_tso_allocator(struct stmmac_priv *priv, dma_addr_t des,
|
||||
int total_len, bool last_segment, u32 queue)
|
||||
{
|
||||
@ -802,7 +802,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
struct dma_desc *desc;
|
||||
u32 buff_size;
|
||||
int tmp_len;
|
||||
@@ -3936,7 +3936,7 @@ static void stmmac_tso_allocator(struct
|
||||
@@ -3937,7 +3937,7 @@ static void stmmac_tso_allocator(struct
|
||||
dma_addr_t curr_addr;
|
||||
|
||||
tx_q->cur_tx = STMMAC_GET_ENTRY(tx_q->cur_tx,
|
||||
@ -811,7 +811,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
WARN_ON(tx_q->tx_skbuff[tx_q->cur_tx]);
|
||||
|
||||
if (tx_q->tbs & STMMAC_TBS_AVAIL)
|
||||
@@ -3964,7 +3964,7 @@ static void stmmac_tso_allocator(struct
|
||||
@@ -3965,7 +3965,7 @@ static void stmmac_tso_allocator(struct
|
||||
|
||||
static void stmmac_flush_tx_descriptors(struct stmmac_priv *priv, int queue)
|
||||
{
|
||||
@ -820,7 +820,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
int desc_size;
|
||||
|
||||
if (likely(priv->extend_desc))
|
||||
@@ -4026,7 +4026,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
|
||||
@@ -4027,7 +4027,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
|
||||
dma_addr_t des;
|
||||
int i;
|
||||
|
||||
@ -829,7 +829,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
first_tx = tx_q->cur_tx;
|
||||
|
||||
/* Compute header lengths */
|
||||
@@ -4066,7 +4066,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
|
||||
@@ -4067,7 +4067,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
|
||||
stmmac_set_mss(priv, mss_desc, mss);
|
||||
tx_q->mss = mss;
|
||||
tx_q->cur_tx = STMMAC_GET_ENTRY(tx_q->cur_tx,
|
||||
@ -838,7 +838,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
WARN_ON(tx_q->tx_skbuff[tx_q->cur_tx]);
|
||||
}
|
||||
|
||||
@@ -4178,7 +4178,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
|
||||
@@ -4179,7 +4179,7 @@ static netdev_tx_t stmmac_tso_xmit(struc
|
||||
* ndo_start_xmit will fill this descriptor the next time it's
|
||||
* called and stmmac_tx_clean may clean up to this descriptor.
|
||||
*/
|
||||
@ -847,7 +847,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (unlikely(stmmac_tx_avail(priv, queue) <= (MAX_SKB_FRAGS + 1))) {
|
||||
netif_dbg(priv, hw, priv->dev, "%s: stop transmitted packets\n",
|
||||
@@ -4266,7 +4266,7 @@ static netdev_tx_t stmmac_xmit(struct sk
|
||||
@@ -4267,7 +4267,7 @@ static netdev_tx_t stmmac_xmit(struct sk
|
||||
int entry, first_tx;
|
||||
dma_addr_t des;
|
||||
|
||||
@ -856,7 +856,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
first_tx = tx_q->cur_tx;
|
||||
|
||||
if (priv->tx_path_in_lpi_mode && priv->eee_sw_timer_en)
|
||||
@@ -4329,7 +4329,7 @@ static netdev_tx_t stmmac_xmit(struct sk
|
||||
@@ -4330,7 +4330,7 @@ static netdev_tx_t stmmac_xmit(struct sk
|
||||
int len = skb_frag_size(frag);
|
||||
bool last_segment = (i == (nfrags - 1));
|
||||
|
||||
@ -865,7 +865,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
WARN_ON(tx_q->tx_skbuff[entry]);
|
||||
|
||||
if (likely(priv->extend_desc))
|
||||
@@ -4400,7 +4400,7 @@ static netdev_tx_t stmmac_xmit(struct sk
|
||||
@@ -4401,7 +4401,7 @@ static netdev_tx_t stmmac_xmit(struct sk
|
||||
* ndo_start_xmit will fill this descriptor the next time it's
|
||||
* called and stmmac_tx_clean may clean up to this descriptor.
|
||||
*/
|
||||
@ -874,7 +874,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
tx_q->cur_tx = entry;
|
||||
|
||||
if (netif_msg_pktdata(priv)) {
|
||||
@@ -4512,7 +4512,7 @@ static void stmmac_rx_vlan(struct net_de
|
||||
@@ -4513,7 +4513,7 @@ static void stmmac_rx_vlan(struct net_de
|
||||
*/
|
||||
static inline void stmmac_rx_refill(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
@ -883,7 +883,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
int dirty = stmmac_rx_dirty(priv, queue);
|
||||
unsigned int entry = rx_q->dirty_rx;
|
||||
|
||||
@@ -4562,7 +4562,7 @@ static inline void stmmac_rx_refill(stru
|
||||
@@ -4563,7 +4563,7 @@ static inline void stmmac_rx_refill(stru
|
||||
dma_wmb();
|
||||
stmmac_set_rx_owner(priv, p, use_rx_wd);
|
||||
|
||||
@ -892,7 +892,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
rx_q->dirty_rx = entry;
|
||||
rx_q->rx_tail_addr = rx_q->dma_rx_phy +
|
||||
@@ -4590,12 +4590,12 @@ static unsigned int stmmac_rx_buf1_len(s
|
||||
@@ -4591,12 +4591,12 @@ static unsigned int stmmac_rx_buf1_len(s
|
||||
|
||||
/* First descriptor, not last descriptor and not split header */
|
||||
if (status & rx_not_ls)
|
||||
@ -907,7 +907,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
|
||||
static unsigned int stmmac_rx_buf2_len(struct stmmac_priv *priv,
|
||||
@@ -4611,7 +4611,7 @@ static unsigned int stmmac_rx_buf2_len(s
|
||||
@@ -4612,7 +4612,7 @@ static unsigned int stmmac_rx_buf2_len(s
|
||||
|
||||
/* Not last descriptor */
|
||||
if (status & rx_not_ls)
|
||||
@ -916,7 +916,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
plen = stmmac_get_rx_frame_len(priv, p, coe);
|
||||
|
||||
@@ -4622,7 +4622,7 @@ static unsigned int stmmac_rx_buf2_len(s
|
||||
@@ -4623,7 +4623,7 @@ static unsigned int stmmac_rx_buf2_len(s
|
||||
static int stmmac_xdp_xmit_xdpf(struct stmmac_priv *priv, int queue,
|
||||
struct xdp_frame *xdpf, bool dma_map)
|
||||
{
|
||||
@ -925,7 +925,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
unsigned int entry = tx_q->cur_tx;
|
||||
struct dma_desc *tx_desc;
|
||||
dma_addr_t dma_addr;
|
||||
@@ -4685,7 +4685,7 @@ static int stmmac_xdp_xmit_xdpf(struct s
|
||||
@@ -4686,7 +4686,7 @@ static int stmmac_xdp_xmit_xdpf(struct s
|
||||
|
||||
stmmac_enable_dma_transmission(priv, priv->ioaddr);
|
||||
|
||||
@ -934,7 +934,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
tx_q->cur_tx = entry;
|
||||
|
||||
return STMMAC_XDP_TX;
|
||||
@@ -4859,7 +4859,7 @@ static void stmmac_dispatch_skb_zc(struc
|
||||
@@ -4860,7 +4860,7 @@ static void stmmac_dispatch_skb_zc(struc
|
||||
|
||||
static bool stmmac_rx_refill_zc(struct stmmac_priv *priv, u32 queue, u32 budget)
|
||||
{
|
||||
@ -943,7 +943,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
unsigned int entry = rx_q->dirty_rx;
|
||||
struct dma_desc *rx_desc = NULL;
|
||||
bool ret = true;
|
||||
@@ -4902,7 +4902,7 @@ static bool stmmac_rx_refill_zc(struct s
|
||||
@@ -4903,7 +4903,7 @@ static bool stmmac_rx_refill_zc(struct s
|
||||
dma_wmb();
|
||||
stmmac_set_rx_owner(priv, rx_desc, use_rx_wd);
|
||||
|
||||
@ -952,7 +952,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
|
||||
if (rx_desc) {
|
||||
@@ -4917,7 +4917,7 @@ static bool stmmac_rx_refill_zc(struct s
|
||||
@@ -4918,7 +4918,7 @@ static bool stmmac_rx_refill_zc(struct s
|
||||
|
||||
static int stmmac_rx_zc(struct stmmac_priv *priv, int limit, u32 queue)
|
||||
{
|
||||
@ -961,7 +961,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
unsigned int count = 0, error = 0, len = 0;
|
||||
int dirty = stmmac_rx_dirty(priv, queue);
|
||||
unsigned int next_entry = rx_q->cur_rx;
|
||||
@@ -4939,7 +4939,7 @@ static int stmmac_rx_zc(struct stmmac_pr
|
||||
@@ -4940,7 +4940,7 @@ static int stmmac_rx_zc(struct stmmac_pr
|
||||
desc_size = sizeof(struct dma_desc);
|
||||
}
|
||||
|
||||
@ -970,7 +970,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
rx_q->dma_rx_phy, desc_size);
|
||||
}
|
||||
while (count < limit) {
|
||||
@@ -4986,7 +4986,7 @@ read_again:
|
||||
@@ -4987,7 +4987,7 @@ read_again:
|
||||
|
||||
/* Prefetch the next RX descriptor */
|
||||
rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx,
|
||||
@ -979,7 +979,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
next_entry = rx_q->cur_rx;
|
||||
|
||||
if (priv->extend_desc)
|
||||
@@ -5107,7 +5107,7 @@ read_again:
|
||||
@@ -5108,7 +5108,7 @@ read_again:
|
||||
*/
|
||||
static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue)
|
||||
{
|
||||
@ -988,7 +988,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
struct stmmac_channel *ch = &priv->channel[queue];
|
||||
unsigned int count = 0, error = 0, len = 0;
|
||||
int status = 0, coe = priv->hw->rx_csum;
|
||||
@@ -5120,7 +5120,7 @@ static int stmmac_rx(struct stmmac_priv
|
||||
@@ -5121,7 +5121,7 @@ static int stmmac_rx(struct stmmac_priv
|
||||
int buf_sz;
|
||||
|
||||
dma_dir = page_pool_get_dma_dir(rx_q->page_pool);
|
||||
@ -997,7 +997,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (netif_msg_rx_status(priv)) {
|
||||
void *rx_head;
|
||||
@@ -5134,7 +5134,7 @@ static int stmmac_rx(struct stmmac_priv
|
||||
@@ -5135,7 +5135,7 @@ static int stmmac_rx(struct stmmac_priv
|
||||
desc_size = sizeof(struct dma_desc);
|
||||
}
|
||||
|
||||
@ -1006,7 +1006,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
rx_q->dma_rx_phy, desc_size);
|
||||
}
|
||||
while (count < limit) {
|
||||
@@ -5178,7 +5178,7 @@ read_again:
|
||||
@@ -5179,7 +5179,7 @@ read_again:
|
||||
break;
|
||||
|
||||
rx_q->cur_rx = STMMAC_GET_ENTRY(rx_q->cur_rx,
|
||||
@ -1015,7 +1015,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
next_entry = rx_q->cur_rx;
|
||||
|
||||
if (priv->extend_desc)
|
||||
@@ -5312,7 +5312,7 @@ read_again:
|
||||
@@ -5313,7 +5313,7 @@ read_again:
|
||||
buf1_len, dma_dir);
|
||||
skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
|
||||
buf->page, buf->page_offset, buf1_len,
|
||||
@ -1024,7 +1024,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/* Data payload appended into SKB */
|
||||
page_pool_release_page(rx_q->page_pool, buf->page);
|
||||
@@ -5324,7 +5324,7 @@ read_again:
|
||||
@@ -5325,7 +5325,7 @@ read_again:
|
||||
buf2_len, dma_dir);
|
||||
skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
|
||||
buf->sec_page, 0, buf2_len,
|
||||
@ -1033,7 +1033,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/* Data payload appended into SKB */
|
||||
page_pool_release_page(rx_q->page_pool, buf->sec_page);
|
||||
@@ -5767,11 +5767,13 @@ static irqreturn_t stmmac_safety_interru
|
||||
@@ -5768,11 +5768,13 @@ static irqreturn_t stmmac_safety_interru
|
||||
static irqreturn_t stmmac_msi_intr_tx(int irq, void *data)
|
||||
{
|
||||
struct stmmac_tx_queue *tx_q = (struct stmmac_tx_queue *)data;
|
||||
@ -1048,7 +1048,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (unlikely(!data)) {
|
||||
netdev_err(priv->dev, "%s: invalid dev pointer\n", __func__);
|
||||
@@ -5811,10 +5813,12 @@ static irqreturn_t stmmac_msi_intr_tx(in
|
||||
@@ -5812,10 +5814,12 @@ static irqreturn_t stmmac_msi_intr_tx(in
|
||||
static irqreturn_t stmmac_msi_intr_rx(int irq, void *data)
|
||||
{
|
||||
struct stmmac_rx_queue *rx_q = (struct stmmac_rx_queue *)data;
|
||||
@ -1062,7 +1062,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (unlikely(!data)) {
|
||||
netdev_err(priv->dev, "%s: invalid dev pointer\n", __func__);
|
||||
@@ -5845,10 +5849,10 @@ static void stmmac_poll_controller(struc
|
||||
@@ -5846,10 +5850,10 @@ static void stmmac_poll_controller(struc
|
||||
|
||||
if (priv->plat->multi_msi_en) {
|
||||
for (i = 0; i < priv->plat->rx_queues_to_use; i++)
|
||||
@ -1075,7 +1075,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
} else {
|
||||
disable_irq(dev->irq);
|
||||
stmmac_interrupt(dev->irq, dev);
|
||||
@@ -6029,34 +6033,34 @@ static int stmmac_rings_status_show(stru
|
||||
@@ -6030,34 +6034,34 @@ static int stmmac_rings_status_show(stru
|
||||
return 0;
|
||||
|
||||
for (queue = 0; queue < rx_count; queue++) {
|
||||
@ -1116,7 +1116,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6403,7 +6407,7 @@ void stmmac_disable_rx_queue(struct stmm
|
||||
@@ -6404,7 +6408,7 @@ void stmmac_disable_rx_queue(struct stmm
|
||||
|
||||
void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
@ -1125,7 +1125,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
struct stmmac_channel *ch = &priv->channel[queue];
|
||||
unsigned long flags;
|
||||
u32 buf_size;
|
||||
@@ -6440,7 +6444,7 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
@@ -6441,7 +6445,7 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
rx_q->queue_index);
|
||||
} else {
|
||||
stmmac_set_dma_bfsize(priv, priv->ioaddr,
|
||||
@ -1134,7 +1134,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
rx_q->queue_index);
|
||||
}
|
||||
|
||||
@@ -6466,7 +6470,7 @@ void stmmac_disable_tx_queue(struct stmm
|
||||
@@ -6467,7 +6471,7 @@ void stmmac_disable_tx_queue(struct stmm
|
||||
|
||||
void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
@ -1143,7 +1143,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
struct stmmac_channel *ch = &priv->channel[queue];
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
@@ -6516,7 +6520,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
@@ -6517,7 +6521,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
stmmac_disable_all_queues(priv);
|
||||
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -1152,7 +1152,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/* Free the IRQ lines */
|
||||
stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0);
|
||||
@@ -6575,7 +6579,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6576,7 +6580,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
|
||||
/* DMA RX Channel Configuration */
|
||||
for (chan = 0; chan < rx_cnt; chan++) {
|
||||
@ -1161,7 +1161,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
rx_q->dma_rx_phy, chan);
|
||||
@@ -6593,7 +6597,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6594,7 +6598,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
rx_q->queue_index);
|
||||
} else {
|
||||
stmmac_set_dma_bfsize(priv, priv->ioaddr,
|
||||
@ -1170,7 +1170,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
rx_q->queue_index);
|
||||
}
|
||||
|
||||
@@ -6602,7 +6606,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6603,7 +6607,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
|
||||
/* DMA TX Channel Configuration */
|
||||
for (chan = 0; chan < tx_cnt; chan++) {
|
||||
@ -1179,7 +1179,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
tx_q->dma_tx_phy, chan);
|
||||
@@ -6635,7 +6639,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6636,7 +6640,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
|
||||
irq_error:
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -1188,7 +1188,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_hw_teardown(dev);
|
||||
init_error:
|
||||
@@ -6662,8 +6666,8 @@ int stmmac_xsk_wakeup(struct net_device
|
||||
@@ -6663,8 +6667,8 @@ int stmmac_xsk_wakeup(struct net_device
|
||||
queue >= priv->plat->tx_queues_to_use)
|
||||
return -EINVAL;
|
||||
|
||||
@ -1199,7 +1199,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
ch = &priv->channel[queue];
|
||||
|
||||
if (!rx_q->xsk_pool && !tx_q->xsk_pool)
|
||||
@@ -6923,8 +6927,8 @@ int stmmac_reinit_ringparam(struct net_d
|
||||
@@ -6924,8 +6928,8 @@ int stmmac_reinit_ringparam(struct net_d
|
||||
if (netif_running(dev))
|
||||
stmmac_release(dev);
|
||||
|
||||
@ -1210,7 +1210,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (netif_running(dev))
|
||||
ret = stmmac_open(dev);
|
||||
@@ -7359,7 +7363,7 @@ int stmmac_suspend(struct device *dev)
|
||||
@@ -7360,7 +7364,7 @@ int stmmac_suspend(struct device *dev)
|
||||
stmmac_disable_all_queues(priv);
|
||||
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -1219,7 +1219,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (priv->eee_enabled) {
|
||||
priv->tx_path_in_lpi_mode = false;
|
||||
@@ -7411,7 +7415,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
|
||||
@@ -7412,7 +7416,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
|
||||
|
||||
static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
@ -1228,7 +1228,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
rx_q->cur_rx = 0;
|
||||
rx_q->dirty_rx = 0;
|
||||
@@ -7419,7 +7423,7 @@ static void stmmac_reset_rx_queue(struct
|
||||
@@ -7420,7 +7424,7 @@ static void stmmac_reset_rx_queue(struct
|
||||
|
||||
static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
|
@ -860,7 +860,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
stmmac_reset_tx_queue(priv, chan);
|
||||
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
tx_q->dma_tx_phy, chan);
|
||||
@@ -3685,19 +3748,93 @@ static int stmmac_request_irq(struct net
|
||||
@@ -3686,19 +3749,93 @@ static int stmmac_request_irq(struct net
|
||||
}
|
||||
|
||||
/**
|
||||
@ -957,7 +957,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
u32 chan;
|
||||
int ret;
|
||||
|
||||
@@ -3724,45 +3861,10 @@ static int stmmac_open(struct net_device
|
||||
@@ -3725,45 +3862,10 @@ static int stmmac_open(struct net_device
|
||||
memset(&priv->xstats, 0, sizeof(struct stmmac_extra_stats));
|
||||
priv->xstats.threshold = tc;
|
||||
|
||||
@ -1005,7 +1005,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (priv->plat->serdes_powerup) {
|
||||
ret = priv->plat->serdes_powerup(dev, priv->plat->bsp_priv);
|
||||
@@ -3805,14 +3907,28 @@ irq_error:
|
||||
@@ -3806,14 +3908,28 @@ irq_error:
|
||||
|
||||
stmmac_hw_teardown(dev);
|
||||
init_error:
|
||||
@ -1036,7 +1036,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
static void stmmac_fpe_stop_wq(struct stmmac_priv *priv)
|
||||
{
|
||||
set_bit(__FPE_REMOVING, &priv->fpe_task_state);
|
||||
@@ -3859,7 +3975,7 @@ static int stmmac_release(struct net_dev
|
||||
@@ -3860,7 +3976,7 @@ static int stmmac_release(struct net_dev
|
||||
stmmac_stop_all_dma(priv);
|
||||
|
||||
/* Release and free the Rx/Tx resources */
|
||||
@ -1045,7 +1045,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/* Disable the MAC Rx/Tx */
|
||||
stmmac_mac_set(priv, priv->ioaddr, false);
|
||||
@@ -6402,7 +6518,7 @@ void stmmac_disable_rx_queue(struct stmm
|
||||
@@ -6403,7 +6519,7 @@ void stmmac_disable_rx_queue(struct stmm
|
||||
spin_unlock_irqrestore(&ch->lock, flags);
|
||||
|
||||
stmmac_stop_rx_dma(priv, queue);
|
||||
@ -1054,7 +1054,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
|
||||
void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
@@ -6413,21 +6529,21 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
@@ -6414,21 +6530,21 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
u32 buf_size;
|
||||
int ret;
|
||||
|
||||
@ -1080,7 +1080,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
rx_q->dma_rx_phy, rx_q->queue_index);
|
||||
@@ -6465,7 +6581,7 @@ void stmmac_disable_tx_queue(struct stmm
|
||||
@@ -6466,7 +6582,7 @@ void stmmac_disable_tx_queue(struct stmm
|
||||
spin_unlock_irqrestore(&ch->lock, flags);
|
||||
|
||||
stmmac_stop_tx_dma(priv, queue);
|
||||
@ -1089,7 +1089,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
|
||||
void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
@@ -6475,21 +6591,21 @@ void stmmac_enable_tx_queue(struct stmma
|
||||
@@ -6476,21 +6592,21 @@ void stmmac_enable_tx_queue(struct stmma
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
|
||||
@ -1115,7 +1115,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
tx_q->dma_tx_phy, tx_q->queue_index);
|
||||
@@ -6529,7 +6645,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
@@ -6530,7 +6646,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
stmmac_stop_all_dma(priv);
|
||||
|
||||
/* Release and free the Rx/Tx resources */
|
||||
@ -1124,7 +1124,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/* Disable the MAC Rx/Tx */
|
||||
stmmac_mac_set(priv, priv->ioaddr, false);
|
||||
@@ -6554,14 +6670,14 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6555,14 +6671,14 @@ int stmmac_xdp_open(struct net_device *d
|
||||
u32 chan;
|
||||
int ret;
|
||||
|
||||
@ -1141,7 +1141,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
if (ret < 0) {
|
||||
netdev_err(dev, "%s: DMA descriptors initialization failed\n",
|
||||
__func__);
|
||||
@@ -6643,7 +6759,7 @@ irq_error:
|
||||
@@ -6644,7 +6760,7 @@ irq_error:
|
||||
|
||||
stmmac_hw_teardown(dev);
|
||||
init_error:
|
||||
@ -1150,7 +1150,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
dma_desc_error:
|
||||
return ret;
|
||||
}
|
||||
@@ -7506,7 +7622,7 @@ int stmmac_resume(struct device *dev)
|
||||
@@ -7507,7 +7623,7 @@ int stmmac_resume(struct device *dev)
|
||||
stmmac_reset_queues_param(priv);
|
||||
|
||||
stmmac_free_tx_skbufs(priv);
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
@@ -5624,18 +5624,15 @@ static int stmmac_change_mtu(struct net_
|
||||
@@ -5625,18 +5625,15 @@ static int stmmac_change_mtu(struct net_
|
||||
{
|
||||
struct stmmac_priv *priv = netdev_priv(dev);
|
||||
int txfifosz = priv->plat->tx_fifo_size;
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
if (stmmac_xdp_is_enabled(priv) && new_mtu > ETH_DATA_LEN) {
|
||||
netdev_dbg(priv->dev, "Jumbo frames not supported for XDP\n");
|
||||
return -EINVAL;
|
||||
@@ -5647,8 +5644,29 @@ static int stmmac_change_mtu(struct net_
|
||||
@@ -5648,8 +5645,29 @@ static int stmmac_change_mtu(struct net_
|
||||
if ((txfifosz < new_mtu) || (new_mtu > BUF_SIZE_16KiB))
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -1,38 +0,0 @@
|
||||
From 107c0964cb8db7ca28ac5199426414fdab3c274d Mon Sep 17 00:00:00 2001
|
||||
From: "Alexandros C. Couloumbis" <alex@ozo.com>
|
||||
Date: Fri, 7 Jul 2017 17:14:51 +0200
|
||||
Subject: hack: arch: powerpc: drop register save/restore library from modules
|
||||
|
||||
Upstream GCC uses a libgcc function for saving/restoring registers. This
|
||||
makes the code bigger, and upstream kernels need to carry that function
|
||||
for every single kernel module. Our GCC is patched to avoid those
|
||||
references, so we can drop the extra bloat for modules.
|
||||
|
||||
lede-commit: e8e1084654f50904e6bf77b70b2de3f137d7b3ec
|
||||
Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
|
||||
---
|
||||
arch/powerpc/Makefile | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
--- a/arch/powerpc/Makefile
|
||||
+++ b/arch/powerpc/Makefile
|
||||
@@ -44,19 +44,6 @@ machine-$(CONFIG_PPC64) += 64
|
||||
machine-$(CONFIG_CPU_LITTLE_ENDIAN) += le
|
||||
UTS_MACHINE := $(subst $(space),,$(machine-y))
|
||||
|
||||
-# XXX This needs to be before we override LD below
|
||||
-ifdef CONFIG_PPC32
|
||||
-KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
|
||||
-else
|
||||
-ifeq ($(call ld-ifversion, -ge, 22500, y),y)
|
||||
-# Have the linker provide sfpr if possible.
|
||||
-# There is a corresponding test in arch/powerpc/lib/Makefile
|
||||
-KBUILD_LDFLAGS_MODULE += --save-restore-funcs
|
||||
-else
|
||||
-KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
|
||||
-endif
|
||||
-endif
|
||||
-
|
||||
ifdef CONFIG_CPU_LITTLE_ENDIAN
|
||||
KBUILD_CFLAGS += -mlittle-endian
|
||||
KBUILD_LDFLAGS += -EL
|
@ -116,7 +116,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
help
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -3612,6 +3612,11 @@ static int xmit_one(struct sk_buff *skb,
|
||||
@@ -3615,6 +3615,11 @@ static int xmit_one(struct sk_buff *skb,
|
||||
if (dev_nit_active(dev))
|
||||
dev_queue_xmit_nit(skb, dev);
|
||||
|
||||
|
@ -92,7 +92,7 @@
|
||||
struct net_bridge_port *p;
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -3608,9 +3608,17 @@ static int xmit_one(struct sk_buff *skb,
|
||||
@@ -3611,9 +3611,17 @@ static int xmit_one(struct sk_buff *skb,
|
||||
{
|
||||
unsigned int len;
|
||||
int rc;
|
||||
@ -111,7 +111,7 @@
|
||||
|
||||
#ifdef CONFIG_ETHERNET_PACKET_MANGLE
|
||||
if (dev->eth_mangle_tx && !(skb = dev->eth_mangle_tx(dev, skb)))
|
||||
@@ -5241,6 +5249,11 @@ void netdev_rx_handler_unregister(struct
|
||||
@@ -5244,6 +5252,11 @@ void netdev_rx_handler_unregister(struct
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister);
|
||||
|
||||
@ -123,7 +123,7 @@
|
||||
/*
|
||||
* Limit the use of PFMEMALLOC reserves to those protocols that implement
|
||||
* the special handling of PFMEMALLOC skbs.
|
||||
@@ -5289,6 +5302,10 @@ static int __netif_receive_skb_core(stru
|
||||
@@ -5292,6 +5305,10 @@ static int __netif_receive_skb_core(stru
|
||||
int ret = NET_RX_DROP;
|
||||
__be16 type;
|
||||
|
||||
@ -134,7 +134,7 @@
|
||||
net_timestamp_check(!READ_ONCE(netdev_tstamp_prequeue), skb);
|
||||
|
||||
trace_netif_receive_skb(skb);
|
||||
@@ -5326,6 +5343,15 @@ another_round:
|
||||
@@ -5329,6 +5346,15 @@ another_round:
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
__u8 inner_protocol_type:1;
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -6089,6 +6089,9 @@ static enum gro_result dev_gro_receive(s
|
||||
@@ -6092,6 +6092,9 @@ static enum gro_result dev_gro_receive(s
|
||||
int same_flow;
|
||||
int grow;
|
||||
|
||||
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (netif_elide_gro(skb->dev))
|
||||
goto normal;
|
||||
|
||||
@@ -8103,6 +8106,48 @@ static void __netdev_adjacent_dev_unlink
|
||||
@@ -8106,6 +8109,48 @@ static void __netdev_adjacent_dev_unlink
|
||||
&upper_dev->adj_list.lower);
|
||||
}
|
||||
|
||||
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static int __netdev_upper_dev_link(struct net_device *dev,
|
||||
struct net_device *upper_dev, bool master,
|
||||
void *upper_priv, void *upper_info,
|
||||
@@ -8154,6 +8199,7 @@ static int __netdev_upper_dev_link(struc
|
||||
@@ -8157,6 +8202,7 @@ static int __netdev_upper_dev_link(struc
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
||||
&changeupper_info.info);
|
||||
ret = notifier_to_errno(ret);
|
||||
@@ -8250,6 +8296,7 @@ static void __netdev_upper_dev_unlink(st
|
||||
@@ -8253,6 +8299,7 @@ static void __netdev_upper_dev_unlink(st
|
||||
|
||||
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
|
||||
|
||||
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
||||
&changeupper_info.info);
|
||||
|
||||
@@ -9069,6 +9116,7 @@ int dev_set_mac_address(struct net_devic
|
||||
@@ -9072,6 +9119,7 @@ int dev_set_mac_address(struct net_devic
|
||||
if (err)
|
||||
return err;
|
||||
dev->addr_assign_type = NET_ADDR_SET;
|
||||
|
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#endif
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -4598,7 +4598,7 @@ static int rps_ipi_queued(struct softnet
|
||||
@@ -4601,7 +4601,7 @@ static int rps_ipi_queued(struct softnet
|
||||
#ifdef CONFIG_RPS
|
||||
struct softnet_data *mysd = this_cpu_ptr(&softnet_data);
|
||||
|
||||
@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
sd->rps_ipi_next = mysd->rps_ipi_list;
|
||||
mysd->rps_ipi_list = sd;
|
||||
|
||||
@@ -5779,6 +5779,8 @@ static DEFINE_PER_CPU(struct work_struct
|
||||
@@ -5782,6 +5782,8 @@ static DEFINE_PER_CPU(struct work_struct
|
||||
/* Network device is going away, flush any packets still pending */
|
||||
static void flush_backlog(struct work_struct *work)
|
||||
{
|
||||
@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
struct sk_buff *skb, *tmp;
|
||||
struct softnet_data *sd;
|
||||
|
||||
@@ -5794,9 +5796,18 @@ static void flush_backlog(struct work_st
|
||||
@@ -5797,9 +5799,18 @@ static void flush_backlog(struct work_st
|
||||
input_queue_head_incr(sd);
|
||||
}
|
||||
}
|
||||
@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
|
||||
if (skb->dev->reg_state == NETREG_UNREGISTERING) {
|
||||
__skb_unlink(skb, &sd->process_queue);
|
||||
@@ -5804,7 +5815,18 @@ static void flush_backlog(struct work_st
|
||||
@@ -5807,7 +5818,18 @@ static void flush_backlog(struct work_st
|
||||
input_queue_head_incr(sd);
|
||||
}
|
||||
}
|
||||
@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
}
|
||||
|
||||
static bool flush_required(int cpu)
|
||||
@@ -6487,6 +6509,7 @@ static int process_backlog(struct napi_s
|
||||
@@ -6490,6 +6512,7 @@ static int process_backlog(struct napi_s
|
||||
|
||||
local_irq_disable();
|
||||
rps_lock(sd);
|
||||
@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (skb_queue_empty(&sd->input_pkt_queue)) {
|
||||
/*
|
||||
* Inline a custom version of __napi_complete().
|
||||
@@ -6496,7 +6519,8 @@ static int process_backlog(struct napi_s
|
||||
@@ -6499,7 +6522,8 @@ static int process_backlog(struct napi_s
|
||||
* We can use a plain write instead of clear_bit(),
|
||||
* and we dont need an smp_mb() memory barrier.
|
||||
*/
|
||||
@ -104,7 +104,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
again = false;
|
||||
} else {
|
||||
skb_queue_splice_tail_init(&sd->input_pkt_queue,
|
||||
@@ -6913,6 +6937,57 @@ int dev_set_threaded(struct net_device *
|
||||
@@ -6916,6 +6940,57 @@ int dev_set_threaded(struct net_device *
|
||||
}
|
||||
EXPORT_SYMBOL(dev_set_threaded);
|
||||
|
||||
@ -162,7 +162,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
void netif_napi_add(struct net_device *dev, struct napi_struct *napi,
|
||||
int (*poll)(struct napi_struct *, int), int weight)
|
||||
{
|
||||
@@ -11393,6 +11468,9 @@ static int dev_cpu_dead(unsigned int old
|
||||
@@ -11396,6 +11471,9 @@ static int dev_cpu_dead(unsigned int old
|
||||
raise_softirq_irqoff(NET_TX_SOFTIRQ);
|
||||
local_irq_enable();
|
||||
|
||||
@ -172,7 +172,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#ifdef CONFIG_RPS
|
||||
remsd = oldsd->rps_ipi_list;
|
||||
oldsd->rps_ipi_list = NULL;
|
||||
@@ -11732,6 +11810,7 @@ static int __init net_dev_init(void)
|
||||
@@ -11735,6 +11813,7 @@ static int __init net_dev_init(void)
|
||||
sd->cpu = i;
|
||||
#endif
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
{QMI_GOBI1K_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -2266,6 +2266,12 @@ static const struct usb_device_id option
|
||||
@@ -2271,6 +2271,12 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a2, 0xff) }, /* Fibocom FM101-GL (laptop MBIM) */
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a4, 0xff), /* Fibocom FM101-GL (laptop MBIM) */
|
||||
.driver_info = RSVD(4) },
|
||||
|
@ -430,7 +430,7 @@
|
||||
#endif
|
||||
--- a/net/core/neighbour.c
|
||||
+++ b/net/core/neighbour.c
|
||||
@@ -1204,7 +1204,21 @@ static void neigh_update_hhs(struct neig
|
||||
@@ -1211,7 +1211,21 @@ static void neigh_update_hhs(struct neig
|
||||
}
|
||||
}
|
||||
|
||||
@ -452,7 +452,7 @@
|
||||
|
||||
/* Generic update routine.
|
||||
-- lladdr is new lladdr or NULL, if it is not supplied.
|
||||
@@ -1235,6 +1249,7 @@ static int __neigh_update(struct neighbo
|
||||
@@ -1242,6 +1256,7 @@ static int __neigh_update(struct neighbo
|
||||
int notify = 0;
|
||||
struct net_device *dev;
|
||||
int update_isrouter = 0;
|
||||
@ -460,7 +460,7 @@
|
||||
|
||||
trace_neigh_update(neigh, lladdr, new, flags, nlmsg_pid);
|
||||
|
||||
@@ -1249,6 +1264,8 @@ static int __neigh_update(struct neighbo
|
||||
@@ -1256,6 +1271,8 @@ static int __neigh_update(struct neighbo
|
||||
new = old;
|
||||
goto out;
|
||||
}
|
||||
@ -469,7 +469,7 @@
|
||||
if (!(flags & NEIGH_UPDATE_F_ADMIN) &&
|
||||
(old & (NUD_NOARP | NUD_PERMANENT)))
|
||||
goto out;
|
||||
@@ -1286,6 +1303,11 @@ static int __neigh_update(struct neighbo
|
||||
@@ -1293,6 +1310,11 @@ static int __neigh_update(struct neighbo
|
||||
- compare new & old
|
||||
- if they are different, check override flag
|
||||
*/
|
||||
@ -481,7 +481,7 @@
|
||||
if ((old & NUD_VALID) &&
|
||||
!memcmp(lladdr, neigh->ha, dev->addr_len))
|
||||
lladdr = neigh->ha;
|
||||
@@ -1408,8 +1430,11 @@ out:
|
||||
@@ -1415,8 +1437,11 @@ out:
|
||||
if (((new ^ old) & NUD_PERMANENT) || ext_learn_change)
|
||||
neigh_update_gc_list(neigh);
|
||||
|
||||
@ -561,7 +561,7 @@
|
||||
#endif
|
||||
--- a/net/ipv6/route.c
|
||||
+++ b/net/ipv6/route.c
|
||||
@@ -3878,6 +3878,9 @@ out_free:
|
||||
@@ -3875,6 +3875,9 @@ out_free:
|
||||
return ERR_PTR(err);
|
||||
}
|
||||
|
||||
@ -571,7 +571,7 @@
|
||||
int ip6_route_add(struct fib6_config *cfg, gfp_t gfp_flags,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
@@ -3889,6 +3892,10 @@ int ip6_route_add(struct fib6_config *cf
|
||||
@@ -3886,6 +3889,10 @@ int ip6_route_add(struct fib6_config *cf
|
||||
return PTR_ERR(rt);
|
||||
|
||||
err = __ip6_ins_rt(rt, &cfg->fc_nlinfo, extack);
|
||||
@ -582,7 +582,7 @@
|
||||
fib6_info_release(rt);
|
||||
|
||||
return err;
|
||||
@@ -3910,6 +3917,9 @@ static int __ip6_del_rt(struct fib6_info
|
||||
@@ -3907,6 +3914,9 @@ static int __ip6_del_rt(struct fib6_info
|
||||
err = fib6_del(rt, info);
|
||||
spin_unlock_bh(&table->tb6_lock);
|
||||
|
||||
@ -592,7 +592,7 @@
|
||||
out:
|
||||
fib6_info_release(rt);
|
||||
return err;
|
||||
@@ -6353,6 +6363,20 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6350,6 +6360,20 @@ static int ip6_route_dev_notify(struct n
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
|
@ -430,7 +430,7 @@
|
||||
#endif
|
||||
--- a/net/core/neighbour.c
|
||||
+++ b/net/core/neighbour.c
|
||||
@@ -1204,7 +1204,21 @@ static void neigh_update_hhs(struct neig
|
||||
@@ -1211,7 +1211,21 @@ static void neigh_update_hhs(struct neig
|
||||
}
|
||||
}
|
||||
|
||||
@ -452,7 +452,7 @@
|
||||
|
||||
/* Generic update routine.
|
||||
-- lladdr is new lladdr or NULL, if it is not supplied.
|
||||
@@ -1235,6 +1249,7 @@ static int __neigh_update(struct neighbo
|
||||
@@ -1242,6 +1256,7 @@ static int __neigh_update(struct neighbo
|
||||
int notify = 0;
|
||||
struct net_device *dev;
|
||||
int update_isrouter = 0;
|
||||
@ -460,7 +460,7 @@
|
||||
|
||||
trace_neigh_update(neigh, lladdr, new, flags, nlmsg_pid);
|
||||
|
||||
@@ -1249,6 +1264,8 @@ static int __neigh_update(struct neighbo
|
||||
@@ -1256,6 +1271,8 @@ static int __neigh_update(struct neighbo
|
||||
new = old;
|
||||
goto out;
|
||||
}
|
||||
@ -469,7 +469,7 @@
|
||||
if (!(flags & NEIGH_UPDATE_F_ADMIN) &&
|
||||
(old & (NUD_NOARP | NUD_PERMANENT)))
|
||||
goto out;
|
||||
@@ -1286,6 +1303,11 @@ static int __neigh_update(struct neighbo
|
||||
@@ -1293,6 +1310,11 @@ static int __neigh_update(struct neighbo
|
||||
- compare new & old
|
||||
- if they are different, check override flag
|
||||
*/
|
||||
@ -481,7 +481,7 @@
|
||||
if ((old & NUD_VALID) &&
|
||||
!memcmp(lladdr, neigh->ha, dev->addr_len))
|
||||
lladdr = neigh->ha;
|
||||
@@ -1408,8 +1430,11 @@ out:
|
||||
@@ -1415,8 +1437,11 @@ out:
|
||||
if (((new ^ old) & NUD_PERMANENT) || ext_learn_change)
|
||||
neigh_update_gc_list(neigh);
|
||||
|
||||
@ -561,7 +561,7 @@
|
||||
#endif
|
||||
--- a/net/ipv6/route.c
|
||||
+++ b/net/ipv6/route.c
|
||||
@@ -3878,6 +3878,9 @@ out_free:
|
||||
@@ -3875,6 +3875,9 @@ out_free:
|
||||
return ERR_PTR(err);
|
||||
}
|
||||
|
||||
@ -571,7 +571,7 @@
|
||||
int ip6_route_add(struct fib6_config *cfg, gfp_t gfp_flags,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
@@ -3889,6 +3892,10 @@ int ip6_route_add(struct fib6_config *cf
|
||||
@@ -3886,6 +3889,10 @@ int ip6_route_add(struct fib6_config *cf
|
||||
return PTR_ERR(rt);
|
||||
|
||||
err = __ip6_ins_rt(rt, &cfg->fc_nlinfo, extack);
|
||||
@ -582,7 +582,7 @@
|
||||
fib6_info_release(rt);
|
||||
|
||||
return err;
|
||||
@@ -3910,6 +3917,9 @@ static int __ip6_del_rt(struct fib6_info
|
||||
@@ -3907,6 +3914,9 @@ static int __ip6_del_rt(struct fib6_info
|
||||
err = fib6_del(rt, info);
|
||||
spin_unlock_bh(&table->tb6_lock);
|
||||
|
||||
@ -592,7 +592,7 @@
|
||||
out:
|
||||
fib6_info_release(rt);
|
||||
return err;
|
||||
@@ -6353,6 +6363,20 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6350,6 +6360,20 @@ static int ip6_route_dev_notify(struct n
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ Acked-by: Pali Rohár <pali@kernel.org>
|
||||
|
||||
--- a/drivers/pci/controller/pcie-mediatek.c
|
||||
+++ b/drivers/pci/controller/pcie-mediatek.c
|
||||
@@ -702,6 +702,13 @@ static int mtk_pcie_startup_port_v2(stru
|
||||
@@ -708,6 +708,13 @@ static int mtk_pcie_startup_port_v2(stru
|
||||
*/
|
||||
writel(PCIE_LINKDOWN_RST_EN, port->base + PCIE_RST_CTRL);
|
||||
|
||||
|
@ -52,7 +52,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
struct mtk_pcie_port;
|
||||
|
||||
/**
|
||||
@@ -1054,6 +1060,27 @@ static int mtk_pcie_setup(struct mtk_pci
|
||||
@@ -1060,6 +1066,27 @@ static int mtk_pcie_setup(struct mtk_pci
|
||||
struct mtk_pcie_port *port, *tmp;
|
||||
int err, slot;
|
||||
|
||||
|
@ -458,7 +458,7 @@ Signed-off-by: Wolfram Sang <wsa@kernel.org>
|
||||
adap->dev.parent = &pdev->dev;
|
||||
--- a/drivers/i2c/busses/i2c-rk3x.c
|
||||
+++ b/drivers/i2c/busses/i2c-rk3x.c
|
||||
@@ -1240,7 +1240,7 @@ static int rk3x_i2c_probe(struct platfor
|
||||
@@ -1247,7 +1247,7 @@ static int rk3x_i2c_probe(struct platfor
|
||||
/* use common interface to get I2C timing properties */
|
||||
i2c_parse_fw_timings(&pdev->dev, &i2c->t, true);
|
||||
|
||||
@ -469,7 +469,7 @@ Signed-off-by: Wolfram Sang <wsa@kernel.org>
|
||||
i2c->adap.retries = 3;
|
||||
--- a/drivers/i2c/busses/i2c-s3c2410.c
|
||||
+++ b/drivers/i2c/busses/i2c-s3c2410.c
|
||||
@@ -1076,7 +1076,7 @@ static int s3c24xx_i2c_probe(struct plat
|
||||
@@ -1078,7 +1078,7 @@ static int s3c24xx_i2c_probe(struct plat
|
||||
else
|
||||
s3c24xx_i2c_parse_dt(pdev->dev.of_node, i2c);
|
||||
|
||||
|
@ -44,7 +44,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
--- a/drivers/leds/Kconfig
|
||||
+++ b/drivers/leds/Kconfig
|
||||
@@ -163,6 +163,7 @@ config LEDS_TURRIS_OMNIA
|
||||
@@ -164,6 +164,7 @@ config LEDS_TURRIS_OMNIA
|
||||
depends on I2C
|
||||
depends on MACH_ARMADA_38X || COMPILE_TEST
|
||||
depends on OF
|
||||
|
@ -30,7 +30,7 @@ Cc: Robert Marko <robert.marko@sartura.hr>
|
||||
|
||||
--- a/drivers/leds/Kconfig
|
||||
+++ b/drivers/leds/Kconfig
|
||||
@@ -306,6 +306,14 @@ config LEDS_IPAQ_MICRO
|
||||
@@ -307,6 +307,14 @@ config LEDS_IPAQ_MICRO
|
||||
Choose this option if you want to use the notification LED on
|
||||
Compaq/HP iPAQ h3100 and h3600.
|
||||
|
||||
|
@ -25,7 +25,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
--- a/drivers/mmc/host/Kconfig
|
||||
+++ b/drivers/mmc/host/Kconfig
|
||||
@@ -1093,3 +1093,5 @@ config MMC_OWL
|
||||
@@ -1095,3 +1095,5 @@ config MMC_OWL
|
||||
|
||||
config MMC_SDHCI_EXTERNAL_DMA
|
||||
bool
|
||||
|
@ -38,7 +38,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
if (!buf->sec_page)
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -4631,6 +4635,10 @@ static inline void stmmac_rx_refill(stru
|
||||
@@ -4632,6 +4636,10 @@ static inline void stmmac_rx_refill(stru
|
||||
struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue];
|
||||
int dirty = stmmac_rx_dirty(priv, queue);
|
||||
unsigned int entry = rx_q->dirty_rx;
|
||||
@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
while (dirty-- > 0) {
|
||||
struct stmmac_rx_buffer *buf = &rx_q->buf_pool[entry];
|
||||
@@ -4643,13 +4651,13 @@ static inline void stmmac_rx_refill(stru
|
||||
@@ -4644,13 +4652,13 @@ static inline void stmmac_rx_refill(stru
|
||||
p = rx_q->dma_rx + entry;
|
||||
|
||||
if (!buf->page) {
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
--- a/drivers/usb/dwc3/core.c
|
||||
+++ b/drivers/usb/dwc3/core.c
|
||||
@@ -1127,6 +1127,11 @@ static int dwc3_core_init(struct dwc3 *d
|
||||
@@ -1090,6 +1090,11 @@ static int dwc3_core_init(struct dwc3 *d
|
||||
if (dwc->parkmode_disable_ss_quirk)
|
||||
reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS;
|
||||
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: jensen <jensenhuang@friendlyarm.com>
|
||||
|
||||
--- a/net/rfkill/rfkill-gpio.c
|
||||
+++ b/net/rfkill/rfkill-gpio.c
|
||||
@@ -156,6 +156,13 @@ static const struct acpi_device_id rfkil
|
||||
@@ -164,6 +164,13 @@ static const struct acpi_device_id rfkil
|
||||
};
|
||||
MODULE_DEVICE_TABLE(acpi, rfkill_acpi_match);
|
||||
#endif
|
||||
@ -24,7 +24,7 @@ Signed-off-by: jensen <jensenhuang@friendlyarm.com>
|
||||
|
||||
static struct platform_driver rfkill_gpio_driver = {
|
||||
.probe = rfkill_gpio_probe,
|
||||
@@ -163,6 +170,7 @@ static struct platform_driver rfkill_gpi
|
||||
@@ -171,6 +178,7 @@ static struct platform_driver rfkill_gpi
|
||||
.driver = {
|
||||
.name = "rfkill_gpio",
|
||||
.acpi_match_table = ACPI_PTR(rfkill_acpi_match),
|
||||
|
Loading…
Reference in New Issue
Block a user