kernel: bump 5.4 to 5.4.119

Removed because in upstream
  generic/backport-5.4/050-gro-fix-napi_gro_frags-Fast-GRO-breakage-due-to-IP-a.patch
  ath79/patches-5.4/0050-spi-ath79-remove-spi-master-setup-and-cleanup-assign.patch
  ramips/patches-5.4/999-fix-pci-init-mt7620.patch

Manually rebased
  ath79/patches-5.4/0033-spi-ath79-drop-pdata-support.patch

All others updated automatically.

Compile-tested on: x86/64, ath79/generic
Runtime-tested on: x86/64, ath79/generic

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Hauke Mehrtens 2021-05-15 16:21:46 +02:00
parent c287500a65
commit 9d21eccc6b
35 changed files with 47 additions and 172 deletions

View File

@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif endif
LINUX_VERSION-5.4 = .117 LINUX_VERSION-5.4 = .119
LINUX_KERNEL_HASH-5.4.117 = 4e989b5775830092e5c76b5cca65ebff862ad0c87d0b58c3a20d415c3d4ec770 LINUX_KERNEL_HASH-5.4.119 = 71e7decf1e8149a8aed88d30df4f2a62a6c6b168111de6b261685ac7c0ecb2a0
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

View File

@ -23,7 +23,7 @@ produce a noisy warning.
xhci->quirks |= XHCI_RESET_ON_RESUME; xhci->quirks |= XHCI_RESET_ON_RESUME;
--- a/drivers/usb/host/xhci.c --- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c
@@ -423,10 +423,14 @@ static int xhci_try_enable_msi(struct us @@ -427,10 +427,14 @@ static int xhci_try_enable_msi(struct us
free_irq(hcd->irq, hcd); free_irq(hcd->irq, hcd);
hcd->irq = 0; hcd->irq = 0;

View File

@ -52,7 +52,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
unsigned long rate; unsigned long rate;
int ret; int ret;
@@ -152,16 +150,10 @@ static int ath79_spi_probe(struct platfo @@ -152,15 +150,9 @@ static int ath79_spi_probe(struct platfo
master->dev.of_node = pdev->dev.of_node; master->dev.of_node = pdev->dev.of_node;
platform_set_drvdata(pdev, sp); platform_set_drvdata(pdev, sp);
@ -60,8 +60,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
- -
master->use_gpio_descriptors = true; master->use_gpio_descriptors = true;
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32); master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32);
master->setup = spi_bitbang_setup; master->flags = SPI_MASTER_GPIO_SS;
master->cleanup = spi_bitbang_cleanup;
- if (pdata) { - if (pdata) {
- master->bus_num = pdata->bus_num; - master->bus_num = pdata->bus_num;
- master->num_chipselect = pdata->num_chipselect; - master->num_chipselect = pdata->num_chipselect;

View File

@ -1,28 +0,0 @@
From b142b1beb199f62d47370c98a3dd8e13f792e9c0 Mon Sep 17 00:00:00 2001
From: David Bauer <mail@david-bauer.net>
Date: Thu, 27 Feb 2020 23:03:20 +0100
Subject: [PATCH] spi: ath79: remove spi-master setup and cleanup assignment
This removes the assignment of setup and cleanup functions for the ath79
target. Assigning the setup-method will lead to 'setup_transfer' not
being assigned in spi_bitbang_init.
Also drop the redundant cleanup assignment, as this also happens in
spi_bitbang_init.
Signed-off-by: David Bauer <mail@david-bauer.net>
---
drivers/spi/spi-ath79.c | 2 --
1 file changed, 2 deletions(-)
--- a/drivers/spi/spi-ath79.c
+++ b/drivers/spi/spi-ath79.c
@@ -152,8 +152,6 @@ static int ath79_spi_probe(struct platfo
master->use_gpio_descriptors = true;
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32);
- master->setup = spi_bitbang_setup;
- master->cleanup = spi_bitbang_cleanup;
sp->bitbang.master = master;
sp->bitbang.chipselect = ath79_spi_chipselect;

View File

@ -58,7 +58,7 @@ Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
static int ath79_spi_probe(struct platform_device *pdev) static int ath79_spi_probe(struct platform_device *pdev)
{ {
struct spi_master *master; struct spi_master *master;
@@ -163,6 +197,7 @@ static int ath79_spi_probe(struct platfo @@ -164,6 +198,7 @@ static int ath79_spi_probe(struct platfo
ret = PTR_ERR(sp->base); ret = PTR_ERR(sp->base);
goto err_put_master; goto err_put_master;
} }

View File

@ -222,7 +222,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
static inline int mmc_blk_part_switch(struct mmc_card *card, static inline int mmc_blk_part_switch(struct mmc_card *card,
unsigned int part_type); unsigned int part_type);
@@ -2868,6 +2875,7 @@ static int mmc_blk_probe(struct mmc_card @@ -2884,6 +2891,7 @@ static int mmc_blk_probe(struct mmc_card
{ {
struct mmc_blk_data *md, *part_md; struct mmc_blk_data *md, *part_md;
char cap_str[10]; char cap_str[10];
@ -230,7 +230,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
/* /*
* Check that the card supports the command class(es) we need. * Check that the card supports the command class(es) we need.
@@ -2875,7 +2883,16 @@ static int mmc_blk_probe(struct mmc_card @@ -2891,7 +2899,16 @@ static int mmc_blk_probe(struct mmc_card
if (!(card->csd.cmdclass & CCC_BLOCK_READ)) if (!(card->csd.cmdclass & CCC_BLOCK_READ))
return -ENODEV; return -ENODEV;
@ -248,7 +248,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
card->complete_wq = alloc_workqueue("mmc_complete", card->complete_wq = alloc_workqueue("mmc_complete",
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0); WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
@@ -2890,9 +2907,14 @@ static int mmc_blk_probe(struct mmc_card @@ -2906,9 +2923,14 @@ static int mmc_blk_probe(struct mmc_card
string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2, string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
cap_str, sizeof(cap_str)); cap_str, sizeof(cap_str));
@ -279,7 +279,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
} }
--- a/drivers/mmc/core/host.c --- a/drivers/mmc/core/host.c
+++ b/drivers/mmc/core/host.c +++ b/drivers/mmc/core/host.c
@@ -397,15 +397,30 @@ struct mmc_host *mmc_alloc_host(int extr @@ -434,15 +434,30 @@ struct mmc_host *mmc_alloc_host(int extr
{ {
int err; int err;
struct mmc_host *host; struct mmc_host *host;

View File

@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
--- a/drivers/usb/host/xhci.c --- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c
@@ -1464,6 +1464,103 @@ command_cleanup: @@ -1468,6 +1468,103 @@ command_cleanup:
} }
/* /*
@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
* non-error returns are a promise to giveback() the urb later * non-error returns are a promise to giveback() the urb later
* we drop ownership so next owner (or urb unlink) can get it * we drop ownership so next owner (or urb unlink) can get it
*/ */
@@ -5345,6 +5442,7 @@ static const struct hc_driver xhci_hc_dr @@ -5357,6 +5454,7 @@ static const struct hc_driver xhci_hc_dr
.endpoint_reset = xhci_endpoint_reset, .endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth, .check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth, .reset_bandwidth = xhci_reset_bandwidth,

View File

@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
#define USB_VENDOR_ID_BELKIN 0x050d #define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201 #define USB_DEVICE_ID_FLIP_KVM 0x3201
@@ -1258,6 +1261,9 @@ @@ -1259,6 +1262,9 @@
#define USB_VENDOR_ID_XAT 0x2505 #define USB_VENDOR_ID_XAT 0x2505
#define USB_DEVICE_ID_XAT_CSR 0x0220 #define USB_DEVICE_ID_XAT_CSR 0x0220

View File

@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
--- a/drivers/usb/host/xhci-mem.c --- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c
@@ -2503,9 +2503,11 @@ int xhci_mem_init(struct xhci_hcd *xhci, @@ -2512,9 +2512,11 @@ int xhci_mem_init(struct xhci_hcd *xhci,
* Event ring setup: Allocate a normal ring, but also setup * Event ring setup: Allocate a normal ring, but also setup
* the event ring segment table (ERST). Section 4.9.3. * the event ring segment table (ERST). Section 4.9.3.
*/ */
@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
if (!xhci->event_ring) if (!xhci->event_ring)
goto fail; goto fail;
if (xhci_check_trb_in_td_math(xhci) < 0) if (xhci_check_trb_in_td_math(xhci) < 0)
@@ -2518,7 +2520,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, @@ -2527,7 +2529,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
/* set ERST count with the number of entries in the segment table */ /* set ERST count with the number of entries in the segment table */
val = readl(&xhci->ir_set->erst_size); val = readl(&xhci->ir_set->erst_size);
val &= ERST_SIZE_MASK; val &= ERST_SIZE_MASK;

View File

@ -31,7 +31,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
--- a/arch/x86/Kconfig --- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig +++ b/arch/x86/Kconfig
@@ -708,7 +708,6 @@ config X86_SUPPORTS_MEMORY_FAILURE @@ -709,7 +709,6 @@ config X86_SUPPORTS_MEMORY_FAILURE
config STA2X11 config STA2X11
bool "STA2X11 Companion Chip Support" bool "STA2X11 Companion Chip Support"
depends on X86_32_NON_STANDARD && PCI depends on X86_32_NON_STANDARD && PCI

View File

@ -39,7 +39,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
default: default:
return -EINVAL; return -EINVAL;
} }
@@ -2423,6 +2429,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s @@ -2431,6 +2437,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s
case V4L2_CTRL_TYPE_VP8_FRAME_HEADER: case V4L2_CTRL_TYPE_VP8_FRAME_HEADER:
elem_size = sizeof(struct v4l2_ctrl_vp8_frame_header); elem_size = sizeof(struct v4l2_ctrl_vp8_frame_header);
break; break;
@ -49,7 +49,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
default: default:
if (type < V4L2_CTRL_COMPOUND_TYPES) if (type < V4L2_CTRL_COMPOUND_TYPES)
elem_size = sizeof(s32); elem_size = sizeof(s32);
@@ -4087,6 +4096,18 @@ int __v4l2_ctrl_s_ctrl_string(struct v4l @@ -4098,6 +4107,18 @@ int __v4l2_ctrl_s_ctrl_string(struct v4l
} }
EXPORT_SYMBOL(__v4l2_ctrl_s_ctrl_string); EXPORT_SYMBOL(__v4l2_ctrl_s_ctrl_string);

View File

@ -820,7 +820,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
default: default:
return -EINVAL; return -EINVAL;
} }
@@ -2434,6 +2532,15 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s @@ -2442,6 +2540,15 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s
case V4L2_CTRL_TYPE_VP8_FRAME_HEADER: case V4L2_CTRL_TYPE_VP8_FRAME_HEADER:
elem_size = sizeof(struct v4l2_ctrl_vp8_frame_header); elem_size = sizeof(struct v4l2_ctrl_vp8_frame_header);
break; break;

View File

@ -106,7 +106,7 @@ Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
case V4L2_CTRL_TYPE_AREA: case V4L2_CTRL_TYPE_AREA:
area = p; area = p;
if (!area->width || !area->height) if (!area->width || !area->height)
@@ -2541,6 +2548,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s @@ -2549,6 +2556,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s
case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS:
elem_size = sizeof(struct v4l2_ctrl_hevc_slice_params); elem_size = sizeof(struct v4l2_ctrl_hevc_slice_params);
break; break;

View File

@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
#define MAX_TUNING_LOOP 40 #define MAX_TUNING_LOOP 40
@@ -2756,7 +2756,7 @@ static void sdhci_timeout_timer(struct t @@ -2758,7 +2758,7 @@ static void sdhci_timeout_timer(struct t
spin_lock_irqsave(&host->lock, flags); spin_lock_irqsave(&host->lock, flags);
if (host->cmd && !sdhci_data_line_cmd(host->cmd)) { if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
@ -31,7 +31,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
mmc_hostname(host->mmc)); mmc_hostname(host->mmc));
sdhci_dumpregs(host); sdhci_dumpregs(host);
@@ -2778,7 +2778,7 @@ static void sdhci_timeout_data_timer(str @@ -2780,7 +2780,7 @@ static void sdhci_timeout_data_timer(str
if (host->data || host->data_cmd || if (host->data || host->data_cmd ||
(host->cmd && sdhci_data_line_cmd(host->cmd))) { (host->cmd && sdhci_data_line_cmd(host->cmd))) {

View File

@ -23,7 +23,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/spi/spi.c --- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c +++ b/drivers/spi/spi.c
@@ -3115,6 +3115,7 @@ static int __spi_validate_bits_per_word( @@ -3110,6 +3110,7 @@ static int __spi_validate_bits_per_word(
*/ */
int spi_setup(struct spi_device *spi) int spi_setup(struct spi_device *spi)
{ {
@ -31,7 +31,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
unsigned bad_bits, ugly_bits; unsigned bad_bits, ugly_bits;
int status; int status;
@@ -3132,6 +3133,14 @@ int spi_setup(struct spi_device *spi) @@ -3127,6 +3128,14 @@ int spi_setup(struct spi_device *spi)
(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL | (SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL |
SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL))) SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL)))
return -EINVAL; return -EINVAL;

View File

@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/spi/spi.c --- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c +++ b/drivers/spi/spi.c
@@ -3127,8 +3127,8 @@ int spi_setup(struct spi_device *spi) @@ -3122,8 +3122,8 @@ int spi_setup(struct spi_device *spi)
if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods && if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods &&
ctlr->cs_gpiods[spi->chip_select] && !(spi->mode & SPI_CS_HIGH)) { ctlr->cs_gpiods[spi->chip_select] && !(spi->mode & SPI_CS_HIGH)) {

View File

@ -29,7 +29,7 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
#define dprintk(vdev, fmt, arg...) do { \ #define dprintk(vdev, fmt, arg...) do { \
if (!WARN_ON(!(vdev)) && ((vdev)->dev_debug & V4L2_DEV_DEBUG_CTRL)) \ if (!WARN_ON(!(vdev)) && ((vdev)->dev_debug & V4L2_DEV_DEBUG_CTRL)) \
@@ -4578,3 +4579,42 @@ __poll_t v4l2_ctrl_poll(struct file *fil @@ -4589,3 +4590,42 @@ __poll_t v4l2_ctrl_poll(struct file *fil
return 0; return 0;
} }
EXPORT_SYMBOL(v4l2_ctrl_poll); EXPORT_SYMBOL(v4l2_ctrl_poll);

View File

@ -90,7 +90,7 @@ it on BCM4708 family.
/* /*
* Reset a halted HC. * Reset a halted HC.
* *
@@ -604,10 +647,20 @@ static int xhci_init(struct usb_hcd *hcd @@ -608,10 +651,20 @@ static int xhci_init(struct usb_hcd *hcd
static int xhci_run_finished(struct xhci_hcd *xhci) static int xhci_run_finished(struct xhci_hcd *xhci)
{ {
@ -114,7 +114,7 @@ it on BCM4708 family.
xhci->shared_hcd->state = HC_STATE_RUNNING; xhci->shared_hcd->state = HC_STATE_RUNNING;
xhci->cmd_ring_state = CMD_RING_STATE_RUNNING; xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
@@ -617,6 +670,10 @@ static int xhci_run_finished(struct xhci @@ -621,6 +674,10 @@ static int xhci_run_finished(struct xhci
xhci_dbg_trace(xhci, trace_xhci_dbg_init, xhci_dbg_trace(xhci, trace_xhci_dbg_init,
"Finished xhci_run for USB3 roothub"); "Finished xhci_run for USB3 roothub");
return 0; return 0;

View File

@ -183,7 +183,7 @@ Link: https://lore.kernel.org/linux-mtd/20200522121524.4161539-6-noltari@gmail.c
nand_writereg(ctrl, acc_control_offs, tmp); nand_writereg(ctrl, acc_control_offs, tmp);
brcmnand_set_sector_size_1k(host, cfg->sector_size_1k); brcmnand_set_sector_size_1k(host, cfg->sector_size_1k);
@@ -2524,6 +2589,8 @@ const struct dev_pm_ops brcmnand_pm_ops @@ -2530,6 +2595,8 @@ const struct dev_pm_ops brcmnand_pm_ops
EXPORT_SYMBOL_GPL(brcmnand_pm_ops); EXPORT_SYMBOL_GPL(brcmnand_pm_ops);
static const struct of_device_id brcmnand_of_match[] = { static const struct of_device_id brcmnand_of_match[] = {

View File

@ -19,9 +19,9 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
@@ -2426,6 +2426,12 @@ static int brcmnand_attach_chip(struct n @@ -2432,6 +2432,12 @@ static int brcmnand_attach_chip(struct n
chip->ecc.read_oob = brcmnand_read_oob_raw;
ret = brcmstb_choose_ecc_layout(host); }
+ /* If OOB is written with ECC enabled it will cause ECC errors */ + /* If OOB is written with ECC enabled it will cause ECC errors */
+ if (is_hamming_ecc(host->ctrl, &host->hwcfg)) { + if (is_hamming_ecc(host->ctrl, &host->hwcfg)) {

View File

@ -1,75 +0,0 @@
From 3007b05df4301aad179acc6ca1c3645785576df6 Mon Sep 17 00:00:00 2001
From: Alexander Lobakin <alobakin@pm.me>
Date: Mon, 19 Apr 2021 12:53:06 +0000
Subject: gro: fix napi_gro_frags() Fast GRO breakage due to IP
alignment check
Commit 7ad18ff6449cbd6beb26b53128ddf56d2685aa93 upstream.
Commit 38ec4944b593 ("gro: ensure frag0 meets IP header alignment")
did the right thing, but missed the fact that napi_gro_frags() logics
calls for skb_gro_reset_offset() *before* pulling Ethernet header
to the skb linear space.
That said, the introduced check for frag0 address being aligned to 4
always fails for it as Ethernet header is obviously 14 bytes long,
and in case with NET_IP_ALIGN its start is not aligned to 4.
Fix this by adding @nhoff argument to skb_gro_reset_offset() which
tells if an IP header is placed right at the start of frag0 or not.
This restores Fast GRO for napi_gro_frags() that became very slow
after the mentioned commit, and preserves the introduced check to
avoid silent unaligned accesses.
From v1 [0]:
- inline tiny skb_gro_reset_offset() to let the code be optimized
more efficively (esp. for the !NET_IP_ALIGN case) (Eric);
- pull in Reviewed-by from Eric.
[0] https://lore.kernel.org/netdev/20210418114200.5839-1-alobakin@pm.me
Fixes: 38ec4944b593 ("gro: ensure frag0 meets IP header alignment")
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Alexander Lobakin <alobakin@pm.me>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
net/core/dev.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5395,7 +5395,7 @@ static struct list_head *gro_list_prepar
return head;
}
-static void skb_gro_reset_offset(struct sk_buff *skb)
+static inline void skb_gro_reset_offset(struct sk_buff *skb, u32 nhoff)
{
const struct skb_shared_info *pinfo = skb_shinfo(skb);
const skb_frag_t *frag0 = &pinfo->frags[0];
@@ -5407,7 +5407,7 @@ static void skb_gro_reset_offset(struct
if (skb_mac_header(skb) == skb_tail_pointer(skb) &&
pinfo->nr_frags &&
!PageHighMem(skb_frag_page(frag0)) &&
- (!NET_IP_ALIGN || !(skb_frag_off(frag0) & 3))) {
+ (!NET_IP_ALIGN || !((skb_frag_off(frag0) + nhoff) & 3))) {
NAPI_GRO_CB(skb)->frag0 = skb_frag_address(frag0);
NAPI_GRO_CB(skb)->frag0_len = min_t(unsigned int,
skb_frag_size(frag0),
@@ -5640,7 +5640,7 @@ gro_result_t napi_gro_receive(struct nap
skb_mark_napi_id(skb, napi);
trace_napi_gro_receive_entry(skb);
- skb_gro_reset_offset(skb);
+ skb_gro_reset_offset(skb, 0);
ret = napi_skb_finish(napi, skb, dev_gro_receive(napi, skb));
trace_napi_gro_receive_exit(ret);
@@ -5733,7 +5733,7 @@ static struct sk_buff *napi_frags_skb(st
napi->skb = NULL;
skb_reset_mac_header(skb);
- skb_gro_reset_offset(skb);
+ skb_gro_reset_offset(skb, hlen);
if (unlikely(skb_gro_header_hard(skb, hlen))) {
eth = skb_gro_header_slow(skb, hlen, 0);

View File

@ -24,7 +24,7 @@ Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
--- a/arch/x86/Makefile --- a/arch/x86/Makefile
+++ b/arch/x86/Makefile +++ b/arch/x86/Makefile
@@ -197,9 +197,10 @@ avx2_instr :=$(call as-instr,vpbroadcast @@ -198,9 +198,10 @@ avx2_instr :=$(call as-instr,vpbroadcast
avx512_instr :=$(call as-instr,vpmovm2b %k1$(comma)%zmm5,-DCONFIG_AS_AVX512=1) avx512_instr :=$(call as-instr,vpmovm2b %k1$(comma)%zmm5,-DCONFIG_AS_AVX512=1)
sha1_ni_instr :=$(call as-instr,sha1msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA1_NI=1) sha1_ni_instr :=$(call as-instr,sha1msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA1_NI=1)
sha256_ni_instr :=$(call as-instr,sha256msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA256_NI=1) sha256_ni_instr :=$(call as-instr,sha256msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA256_NI=1)

View File

@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
config MODULES_TREE_LOOKUP config MODULES_TREE_LOOKUP
--- a/kernel/module.c --- a/kernel/module.c
+++ b/kernel/module.c +++ b/kernel/module.c
@@ -3224,9 +3224,11 @@ static int setup_load_info(struct load_i @@ -3252,9 +3252,11 @@ static int setup_load_info(struct load_i
static int check_modinfo(struct module *mod, struct load_info *info, int flags) static int check_modinfo(struct module *mod, struct load_info *info, int flags)
{ {
@ -125,7 +125,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (flags & MODULE_INIT_IGNORE_VERMAGIC) if (flags & MODULE_INIT_IGNORE_VERMAGIC)
modmagic = NULL; modmagic = NULL;
@@ -3247,6 +3249,7 @@ static int check_modinfo(struct module * @@ -3275,6 +3277,7 @@ static int check_modinfo(struct module *
mod->name); mod->name);
add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK); add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
} }

View File

@ -396,7 +396,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
} }
--- a/net/ipv4/route.c --- a/net/ipv4/route.c
+++ b/net/ipv4/route.c +++ b/net/ipv4/route.c
@@ -409,6 +409,9 @@ static struct pernet_operations ip_rt_pr @@ -410,6 +410,9 @@ static struct pernet_operations ip_rt_pr
static int __init ip_rt_proc_init(void) static int __init ip_rt_proc_init(void)
{ {

View File

@ -17,7 +17,7 @@ Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
--- a/drivers/mtd/mtdcore.c --- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c
@@ -1050,6 +1050,44 @@ out_unlock: @@ -1053,6 +1053,44 @@ out_unlock:
} }
EXPORT_SYMBOL_GPL(get_mtd_device_nm); EXPORT_SYMBOL_GPL(get_mtd_device_nm);

View File

@ -4133,7 +4133,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ +
--- a/arch/mips/pci/pci-legacy.c --- a/arch/mips/pci/pci-legacy.c
+++ b/arch/mips/pci/pci-legacy.c +++ b/arch/mips/pci/pci-legacy.c
@@ -308,3 +308,30 @@ char *__init pcibios_setup(char *str) @@ -313,3 +313,30 @@ char *__init pcibios_setup(char *str)
return pcibios_plat_setup(str); return pcibios_plat_setup(str);
return str; return str;
} }

View File

@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/net/phy/intel-xway.c --- a/drivers/net/phy/intel-xway.c
+++ b/drivers/net/phy/intel-xway.c +++ b/drivers/net/phy/intel-xway.c
@@ -145,6 +145,51 @@ @@ -157,6 +157,51 @@
#define PHY_ID_PHY11G_VR9_1_2 0xD565A409 #define PHY_ID_PHY11G_VR9_1_2 0xD565A409
#define PHY_ID_PHY22F_VR9_1_2 0xD565A419 #define PHY_ID_PHY22F_VR9_1_2 0xD565A419
@ -65,7 +65,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
static int xway_gphy_config_init(struct phy_device *phydev) static int xway_gphy_config_init(struct phy_device *phydev)
{ {
int err; int err;
@@ -183,6 +228,7 @@ static int xway_gphy_config_init(struct @@ -204,6 +249,7 @@ static int xway_gphy_config_init(struct
phy_write_mmd(phydev, MDIO_MMD_VEND2, XWAY_MMD_LED2H, ledxh); phy_write_mmd(phydev, MDIO_MMD_VEND2, XWAY_MMD_LED2H, ledxh);
phy_write_mmd(phydev, MDIO_MMD_VEND2, XWAY_MMD_LED2L, ledxl); phy_write_mmd(phydev, MDIO_MMD_VEND2, XWAY_MMD_LED2L, ledxl);

View File

@ -54,7 +54,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
* All 3.1 IP version constants are greater than the 3.0 IP * All 3.1 IP version constants are greater than the 3.0 IP
--- a/drivers/usb/dwc3/gadget.c --- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c
@@ -3558,6 +3558,10 @@ int dwc3_gadget_init(struct dwc3 *dwc) @@ -3568,6 +3568,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
dwc->gadget.sg_supported = true; dwc->gadget.sg_supported = true;
dwc->gadget.name = "dwc3-gadget"; dwc->gadget.name = "dwc3-gadget";
dwc->gadget.lpm_capable = true; dwc->gadget.lpm_capable = true;

View File

@ -174,7 +174,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
* bursts that are required to move all packets in this TD. Only SuperSpeed * bursts that are required to move all packets in this TD. Only SuperSpeed
--- a/drivers/usb/host/xhci.c --- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c
@@ -5372,6 +5372,7 @@ static const struct hc_driver xhci_hc_dr @@ -5384,6 +5384,7 @@ static const struct hc_driver xhci_hc_dr
.disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout, .disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout,
.find_raw_port_number = xhci_find_raw_port_number, .find_raw_port_number = xhci_find_raw_port_number,
.clear_tt_buffer_complete = xhci_clear_tt_buffer_complete, .clear_tt_buffer_complete = xhci_clear_tt_buffer_complete,

View File

@ -24,7 +24,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
--- a/drivers/usb/host/xhci.c --- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c
@@ -5393,6 +5393,8 @@ void xhci_init_driver(struct hc_driver * @@ -5405,6 +5405,8 @@ void xhci_init_driver(struct hc_driver *
drv->check_bandwidth = over->check_bandwidth; drv->check_bandwidth = over->check_bandwidth;
if (over->reset_bandwidth) if (over->reset_bandwidth)
drv->reset_bandwidth = over->reset_bandwidth; drv->reset_bandwidth = over->reset_bandwidth;

View File

@ -82,7 +82,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>; pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
@@ -317,7 +317,7 @@ @@ -318,7 +318,7 @@
pcie_reset_pins: pcie-reset-pins { pcie_reset_pins: pcie-reset-pins {
groups = "pcie1"; groups = "pcie1";

View File

@ -47,7 +47,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
status = "disabled"; status = "disabled";
--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
@@ -493,6 +493,7 @@ @@ -494,6 +494,7 @@
<0 0 0 2 &pcie_intc 1>, <0 0 0 2 &pcie_intc 1>,
<0 0 0 3 &pcie_intc 2>, <0 0 0 3 &pcie_intc 2>,
<0 0 0 4 &pcie_intc 3>; <0 0 0 4 &pcie_intc 3>;

View File

@ -34,7 +34,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
/* enabled by U-Boot if PCIe module is present */ /* enabled by U-Boot if PCIe module is present */
--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
@@ -493,6 +493,7 @@ @@ -494,6 +494,7 @@
<0 0 0 2 &pcie_intc 1>, <0 0 0 2 &pcie_intc 1>,
<0 0 0 3 &pcie_intc 2>, <0 0 0 3 &pcie_intc 2>,
<0 0 0 4 &pcie_intc 3>; <0 0 0 4 &pcie_intc 3>;

View File

@ -1,21 +0,0 @@
--- a/arch/mips/pci/pci-mt7620.c
+++ b/arch/mips/pci/pci-mt7620.c
@@ -32,6 +32,7 @@
#define PPLL_CFG1 0x9c
#define PPLL_DRV 0xa0
+#define PPLL_LD BIT(23)
#define PDRV_SW_SET BIT(31)
#define LC_CKDRVPD BIT(19)
#define LC_CKDRVOHZ BIT(18)
@@ -239,8 +240,8 @@ static int mt7620_pci_hw_init(struct pla
rt_sysc_m32(0, RALINK_PCIE0_CLK_EN, RALINK_CLKCFG1);
mdelay(100);
- if (!(rt_sysc_r32(PPLL_CFG1) & PDRV_SW_SET)) {
- dev_err(&pdev->dev, "MT7620 PPLL unlock\n");
+ if (!(rt_sysc_r32(PPLL_CFG1) & PPLL_LD)) {
+ dev_err(&pdev->dev, "MT7620 PPLL is unlocked, aborting init\n");
reset_control_assert(rstpcie0);
rt_sysc_m32(RALINK_PCIE0_CLK_EN, 0, RALINK_CLKCFG1);
return -1;

View File

@ -10,7 +10,7 @@
platforms += sgi-ip27 platforms += sgi-ip27
--- a/arch/mips/Kconfig --- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig +++ b/arch/mips/Kconfig
@@ -630,6 +630,26 @@ config RALINK @@ -631,6 +631,26 @@ config RALINK
select ARCH_HAS_RESET_CONTROLLER select ARCH_HAS_RESET_CONTROLLER
select RESET_CONTROLLER select RESET_CONTROLLER