kernel: bump to 4.9.223, 4.14.180, 4.19.122 (#4600)

* kernel: bump 4.9 to 4.9.223

Refreshed all patches.

Fixes:
- CVE-2020-12114

Compile-tested on: ar71xx
Runtime-tested on: ar71xx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>

* kernel: bump 4.14 to 4.14.180

Refreshed all patches.

Fixes:
- CVE-2020-12114
- CVE-2020-11669

Compile-tested on: pistachio
Runtime-tested on: none

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>

* kernel: bump 4.19 to 4.19.122

Refreshed all patches.

Remove upstreamed:
- 551-loop-Better-discard-support-for-block-devices.patch

Fixed:
- CVE-2020-11884
- CVE-2020-12114
- CVE-2019-3016
- CVE-2020-11669

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>

Co-authored-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
AmadeusGhost 2020-05-13 13:28:43 +08:00 committed by GitHub
parent 8ad037aed4
commit c985a54a61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
34 changed files with 87 additions and 191 deletions

View File

@ -6,13 +6,13 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
LINUX_VERSION-4.9 = .219
LINUX_VERSION-4.14 = .176
LINUX_VERSION-4.19 = .115
LINUX_VERSION-4.9 = .223
LINUX_VERSION-4.14 = .180
LINUX_VERSION-4.19 = .122
LINUX_KERNEL_HASH-4.9.219 = 6b17238cced3e1c2753d6d5b4f662bd347d4651f07c35506b849eb10aea7bc44
LINUX_KERNEL_HASH-4.14.176 = bcae0956baaeb55dab5bad0401873fbc5baaa7fbe957ea6d27a5ab241cec5ca2
LINUX_KERNEL_HASH-4.19.115 = 11b2d97c8ea5ceb40c5e1d0bb87ad5b2b8c84560181bc60c0d28ec3a3e3801c2
LINUX_KERNEL_HASH-4.9.223 = cf5300e6f5d8c66c2bed8f00d53f9c58103731809862427012e4010f5d782ae5
LINUX_KERNEL_HASH-4.14.180 = 444ef973d9b6a6ea174e4a9086f0aea980d8575d13302e431ad688f22e27ed0e
LINUX_KERNEL_HASH-4.19.122 = 5050268ec5cf003d96366d1611ecfa4ab6974125d6fa26cea1ccb81dd4df00a5
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

View File

@ -43,7 +43,7 @@
static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
unsigned long adr, const u_char *buf,
int len)
@@ -1926,7 +1931,6 @@ static int __xipram do_write_buffer(stru
@@ -1930,7 +1935,6 @@ static int __xipram do_write_buffer(stru
return ret;
}
@ -51,7 +51,7 @@
static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
size_t *retlen, const u_char *buf)
{
@@ -2001,6 +2005,7 @@ static int cfi_amdstd_write_buffers(stru
@@ -2005,6 +2009,7 @@ static int cfi_amdstd_write_buffers(stru
return 0;
}

View File

@ -325,7 +325,7 @@
for (p = *head; p; p = p->next) {
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -466,7 +466,7 @@ static struct neighbour *ipv4_neigh_look
@@ -464,7 +464,7 @@ static struct neighbour *ipv4_neigh_look
else if (skb)
pkey = &ip_hdr(skb)->daddr;

View File

@ -18,7 +18,7 @@
xip_enable(map, chip, adr);
op_done:
if (mode == FL_OTP_WRITE)
@@ -2232,7 +2234,6 @@ static int cfi_amdstd_panic_write(struct
@@ -2236,7 +2238,6 @@ static int cfi_amdstd_panic_write(struct
return 0;
}
@ -26,7 +26,7 @@
/*
* Handle devices with one erase region, that only implement
* the chip erase command.
@@ -2300,7 +2301,7 @@ static int __xipram do_erase_chip(struct
@@ -2304,7 +2305,7 @@ static int __xipram do_erase_chip(struct
}
if (chip_good(map, adr, map_word_ff(map)))
@ -35,7 +35,7 @@
if (time_after(jiffies, timeo)) {
printk(KERN_WARNING "MTD %s(): software timeout\n",
@@ -2324,6 +2325,7 @@ static int __xipram do_erase_chip(struct
@@ -2328,6 +2329,7 @@ static int __xipram do_erase_chip(struct
}
}
@ -43,7 +43,7 @@
chip->state = FL_READY;
xip_enable(map, chip, adr);
DISABLE_VPP(map);
@@ -2397,7 +2399,7 @@ static int __xipram do_erase_oneblock(st
@@ -2401,7 +2403,7 @@ static int __xipram do_erase_oneblock(st
if (chip_good(map, adr, map_word_ff(map))) {
xip_enable(map, chip, adr);
@ -52,7 +52,7 @@
}
if (time_after(jiffies, timeo)) {
@@ -2423,6 +2425,7 @@ static int __xipram do_erase_oneblock(st
@@ -2427,6 +2429,7 @@ static int __xipram do_erase_oneblock(st
}
}

View File

@ -43,7 +43,7 @@
static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
unsigned long adr, const u_char *buf,
int len)
@@ -1924,7 +1929,6 @@ static int __xipram do_write_buffer(stru
@@ -1928,7 +1933,6 @@ static int __xipram do_write_buffer(stru
return ret;
}
@ -51,7 +51,7 @@
static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
size_t *retlen, const u_char *buf)
{
@@ -1999,6 +2003,7 @@ static int cfi_amdstd_write_buffers(stru
@@ -2003,6 +2007,7 @@ static int cfi_amdstd_write_buffers(stru
return 0;
}

View File

@ -316,7 +316,7 @@
for (p = *head; p; p = p->next) {
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -461,7 +461,7 @@ static struct neighbour *ipv4_neigh_look
@@ -459,7 +459,7 @@ static struct neighbour *ipv4_neigh_look
else if (skb)
pkey = &ip_hdr(skb)->daddr;

View File

@ -917,7 +917,7 @@ Fixes https://github.com/raspberrypi/linux/issues/2408
}
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -5228,7 +5228,7 @@ static void port_event(struct usb_hub *h
@@ -5246,7 +5246,7 @@ static void port_event(struct usb_hub *h
u16 status = 0, unused;
port_dev->over_current_count++;
@ -928,7 +928,7 @@ Fixes https://github.com/raspberrypi/linux/issues/2408
USB_PORT_FEAT_C_OVER_CURRENT);
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -1993,6 +1993,85 @@ free_interfaces:
@@ -2000,6 +2000,85 @@ free_interfaces:
if (cp->string == NULL &&
!(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS))
cp->string = usb_cache_string(dev, cp->desc.iConfiguration);

View File

@ -156,7 +156,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
+};
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -565,6 +565,32 @@
@@ -566,6 +566,32 @@
status = "disabled";
};

View File

@ -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
@@ -2147,7 +2147,7 @@ static void bcmgenet_init_tx_ring(struct
@@ -2150,7 +2150,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);
@@ -3576,9 +3576,12 @@ static int bcmgenet_probe(struct platfor
@@ -3580,9 +3580,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 */

View File

@ -159,8 +159,8 @@ Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
jtag_gpio22: jtag_gpio22 {
brcm,pins = <22 23 24 25 26 27>;
brcm,function = <BCM2835_FSEL_ALT4>;
@@ -487,14 +460,6 @@
@@ -488,14 +461,6 @@
status = "disabled";
};
- thermal: thermal@7e212000 {
@ -174,7 +174,7 @@ Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
aux: aux@7e215000 {
compatible = "brcm,bcm2835-aux";
#clock-cells = <1>;
@@ -660,12 +625,6 @@
@@ -661,12 +626,6 @@
phy-names = "usb2-phy";
};

View File

@ -46,7 +46,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
* have been called previously. Use for set_configuration, set_interface,
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -1113,6 +1113,21 @@ static void remove_intf_ep_devs(struct u
@@ -1120,6 +1120,21 @@ static void remove_intf_ep_devs(struct u
intf->ep_devs_created = 0;
}

View File

@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -1425,6 +1425,103 @@ command_cleanup:
@@ -1427,6 +1427,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
* we drop ownership so next owner (or urb unlink) can get it
*/
@@ -5217,6 +5314,7 @@ static const struct hc_driver xhci_hc_dr
@@ -5219,6 +5316,7 @@ static const struct hc_driver xhci_hc_dr
.endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth,

View File

@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1087,10 +1087,12 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1099,10 +1099,12 @@ static int vc4_hdmi_audio_init(struct vc
struct device *dev = &hdmi->pdev->dev;
const __be32 *addr;
int ret;

View File

@ -38,7 +38,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
{
/* MIPS chips strapped for BE will automagically configure the
@@ -1993,6 +1997,11 @@ static void reset_umac(struct bcmgenet_p
@@ -1996,6 +2000,11 @@ static void reset_umac(struct bcmgenet_p
bcmgenet_rbuf_ctrl_set(priv, 0);
udelay(10);

View File

@ -488,7 +488,7 @@
uasm_i_eret(&p); /* return from trap */
}
#ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT
@@ -2046,6 +2055,9 @@ build_r4000_tlbchange_handler_head(u32 *
@@ -2049,6 +2058,9 @@ build_r4000_tlbchange_handler_head(u32 *
#ifdef CONFIG_64BIT
build_get_pmde64(p, l, r, wr.r1, wr.r2); /* get pmd in ptr */
#else
@ -498,7 +498,7 @@
build_get_pgde32(p, wr.r1, wr.r2); /* get pgd in ptr */
#endif
@@ -2092,6 +2104,9 @@ build_r4000_tlbchange_handler_tail(u32 *
@@ -2095,6 +2107,9 @@ build_r4000_tlbchange_handler_tail(u32 *
build_tlb_write_entry(p, l, r, tlb_indexed);
uasm_l_leave(l, *p);
build_restore_work_registers(p);

View File

@ -89,7 +89,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1958,7 +1958,8 @@ int gpiochip_add_pingroup_range(struct g
@@ -1941,7 +1941,8 @@ int gpiochip_add_pingroup_range(struct g
list_add_tail(&pin_range->node, &gdev->pin_ranges);
@ -99,7 +99,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
}
EXPORT_SYMBOL_GPL(gpiochip_add_pingroup_range);
@@ -2010,7 +2011,7 @@ int gpiochip_add_pin_range(struct gpio_c
@@ -1993,7 +1994,7 @@ int gpiochip_add_pin_range(struct gpio_c
list_add_tail(&pin_range->node, &gdev->pin_ranges);

View File

@ -48,7 +48,7 @@ Reviewed-by: John Gilmore <gnu@toad.com>
#define INADDR_ANY ((unsigned long int) 0x00000000)
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -929,7 +929,7 @@ static int inet_abc_len(__be32 addr)
@@ -934,7 +934,7 @@ static int inet_abc_len(__be32 addr)
{
int rc = -1; /* Something else, probably a multicast. */
@ -57,7 +57,7 @@ Reviewed-by: John Gilmore <gnu@toad.com>
rc = 0;
else {
__u32 haddr = ntohl(addr);
@@ -940,6 +940,8 @@ static int inet_abc_len(__be32 addr)
@@ -945,6 +945,8 @@ static int inet_abc_len(__be32 addr)
rc = 16;
else if (IN_CLASSC(haddr))
rc = 24;

View File

@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/net/ip6_route.h
+++ b/include/net/ip6_route.h
@@ -252,4 +252,26 @@ static inline bool rt6_duplicate_nexthop
@@ -253,4 +253,26 @@ static inline bool rt6_duplicate_nexthop
ipv6_addr_equal(&a->rt6i_gateway, &b->rt6i_gateway) &&
!lwtunnel_cmp_encap(a->dst.lwtstate, b->dst.lwtstate);
}

View File

@ -48,7 +48,7 @@ Reviewed-by: John Gilmore <gnu@toad.com>
#define INADDR_ANY ((unsigned long int) 0x00000000)
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -949,7 +949,7 @@ static int inet_abc_len(__be32 addr)
@@ -954,7 +954,7 @@ static int inet_abc_len(__be32 addr)
{
int rc = -1; /* Something else, probably a multicast. */
@ -57,7 +57,7 @@ Reviewed-by: John Gilmore <gnu@toad.com>
rc = 0;
else {
__u32 haddr = ntohl(addr);
@@ -960,6 +960,8 @@ static int inet_abc_len(__be32 addr)
@@ -965,6 +965,8 @@ static int inet_abc_len(__be32 addr)
rc = 16;
else if (IN_CLASSC(haddr))
rc = 24;

View File

@ -28,7 +28,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -764,6 +764,7 @@ static const struct nand_ops spinand_ops
@@ -762,6 +762,7 @@ static const struct nand_ops spinand_ops
static const struct spinand_manufacturer *spinand_manufacturers[] = {
&macronix_spinand_manufacturer,
&micron_spinand_manufacturer,

View File

@ -25,7 +25,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -762,6 +762,7 @@ static const struct nand_ops spinand_ops
@@ -760,6 +760,7 @@ static const struct nand_ops spinand_ops
};
static const struct spinand_manufacturer *spinand_manufacturers[] = {

View File

@ -17,7 +17,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -853,7 +853,7 @@ spinand_select_op_variant(struct spinand
@@ -851,7 +851,7 @@ spinand_select_op_variant(struct spinand
*/
int spinand_match_and_init(struct spinand_device *spinand,
const struct spinand_info *table,

View File

@ -33,7 +33,7 @@ ADOPTED FROM UPSTREAM due to upstream commit 377e517b5fa5 in Linux 5.2
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -765,6 +765,7 @@ static const struct spinand_manufacturer
@@ -763,6 +763,7 @@ static const struct spinand_manufacturer
&gigadevice_spinand_manufacturer,
&macronix_spinand_manufacturer,
&micron_spinand_manufacturer,

View File

@ -232,7 +232,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
return -ENOMEM;
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -2786,6 +2786,8 @@ static const struct file_operations proc
@@ -2798,6 +2798,8 @@ static const struct file_operations proc
static int __init proc_vmalloc_init(void)
{
@ -393,7 +393,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -428,6 +428,9 @@ static struct pernet_operations ip_rt_pr
@@ -426,6 +426,9 @@ static struct pernet_operations ip_rt_pr
static int __init ip_rt_proc_init(void)
{

View File

@ -1,101 +0,0 @@
From 3117c3f45edbcc269baaebd3d13f39b7bf884aa6 Mon Sep 17 00:00:00 2001
From: Evan Green <evgreen@chromium.org>
Date: Thu, 14 Nov 2019 15:50:08 -0800
Subject: loop: Better discard support for block devices
If the backing device for a loop device is itself a block device,
then mirror the "write zeroes" capabilities of the underlying
block device into the loop device. Copy this capability into both
max_write_zeroes_sectors and max_discard_sectors of the loop device.
The reason for this is that REQ_OP_DISCARD on a loop device translates
into blkdev_issue_zeroout(), rather than blkdev_issue_discard(). This
presents a consistent interface for loop devices (that discarded data
is zeroed), regardless of the backing device type of the loop device.
There should be no behavior change for loop devices backed by regular
files.
This change fixes blktest block/003, and removes an extraneous
error print in block/013 when testing on a loop device backed
by a block device that does not support discard.
Signed-off-by: Evan Green <evgreen@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
drivers/block/loop.c | 40 +++++++++++++++++++++++++++++-----------
1 file changed, 29 insertions(+), 11 deletions(-)
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -426,11 +426,12 @@ static int lo_fallocate(struct loop_devi
* information.
*/
struct file *file = lo->lo_backing_file;
+ struct request_queue *q = lo->lo_queue;
int ret;
mode |= FALLOC_FL_KEEP_SIZE;
- if ((!file->f_op->fallocate) || lo->lo_encrypt_key_size) {
+ if (!blk_queue_discard(q)) {
ret = -EOPNOTSUPP;
goto out;
}
@@ -863,6 +864,21 @@ static void loop_config_discard(struct l
struct file *file = lo->lo_backing_file;
struct inode *inode = file->f_mapping->host;
struct request_queue *q = lo->lo_queue;
+ struct request_queue *backingq;
+
+ /*
+ * If the backing device is a block device, mirror its zeroing
+ * capability. REQ_OP_DISCARD translates to a zero-out even when backed
+ * by block devices to keep consistent behavior with file-backed loop
+ * devices.
+ */
+ if (S_ISBLK(inode->i_mode) && !lo->lo_encrypt_key_size) {
+ backingq = bdev_get_queue(inode->i_bdev);
+ blk_queue_max_discard_sectors(q,
+ backingq->limits.max_write_zeroes_sectors);
+
+ blk_queue_max_write_zeroes_sectors(q,
+ backingq->limits.max_write_zeroes_sectors);
/*
* We use punch hole to reclaim the free space used by the
@@ -870,22 +886,24 @@ static void loop_config_discard(struct l
* encryption is enabled, because it may give an attacker
* useful information.
*/
- if ((!file->f_op->fallocate) ||
- lo->lo_encrypt_key_size) {
+ } else if ((!file->f_op->fallocate) || lo->lo_encrypt_key_size) {
q->limits.discard_granularity = 0;
q->limits.discard_alignment = 0;
blk_queue_max_discard_sectors(q, 0);
blk_queue_max_write_zeroes_sectors(q, 0);
- blk_queue_flag_clear(QUEUE_FLAG_DISCARD, q);
- return;
- }
- q->limits.discard_granularity = inode->i_sb->s_blocksize;
- q->limits.discard_alignment = 0;
+ } else {
+ q->limits.discard_granularity = inode->i_sb->s_blocksize;
+ q->limits.discard_alignment = 0;
- blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
- blk_queue_max_write_zeroes_sectors(q, UINT_MAX >> 9);
- blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
+ blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
+ blk_queue_max_write_zeroes_sectors(q, UINT_MAX >> 9);
+ }
+
+ if (q->limits.max_write_zeroes_sectors)
+ blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
+ else
+ blk_queue_flag_clear(QUEUE_FLAG_DISCARD, q);
}
static void loop_unprepare_queue(struct loop_device *lo)

View File

@ -232,7 +232,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!pe)
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -2752,6 +2752,8 @@ static const struct seq_operations vmall
@@ -2764,6 +2764,8 @@ static const struct seq_operations vmall
static int __init proc_vmalloc_init(void)
{

View File

@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4805,6 +4805,9 @@ static enum gro_result dev_gro_receive(s
@@ -4806,6 +4806,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (netif_elide_gro(skb->dev))
goto normal;
@@ -6282,6 +6285,48 @@ static void __netdev_adjacent_dev_unlink
@@ -6283,6 +6286,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)
@@ -6320,6 +6365,7 @@ static int __netdev_upper_dev_link(struc
@@ -6321,6 +6366,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, dev,
&changeupper_info.info);
ret = notifier_to_errno(ret);
@@ -6397,6 +6443,7 @@ void netdev_upper_dev_unlink(struct net_
@@ -6398,6 +6444,7 @@ void netdev_upper_dev_unlink(struct net_
__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, dev,
&changeupper_info.info);
}
@@ -6961,6 +7008,7 @@ int dev_set_mac_address(struct net_devic
@@ -6962,6 +7009,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;

View File

@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5456,6 +5456,9 @@ static enum gro_result dev_gro_receive(s
@@ -5457,6 +5457,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;
@@ -7114,6 +7117,48 @@ static void __netdev_adjacent_dev_unlink
@@ -7115,6 +7118,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,
@@ -7164,6 +7209,7 @@ static int __netdev_upper_dev_link(struc
@@ -7165,6 +7210,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);
@@ -7256,6 +7302,7 @@ void netdev_upper_dev_unlink(struct net_
@@ -7257,6 +7303,7 @@ void netdev_upper_dev_unlink(struct net_
__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);
@@ -7895,6 +7942,7 @@ int dev_set_mac_address(struct net_devic
@@ -7896,6 +7943,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;

View File

@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/*
* The Mellanox Tavor device gives false positive parity errors. Mark this
* device with a broken_parity_status to allow PCI scanning code to "skip"
@@ -3147,6 +3148,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
@@ -3213,6 +3214,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
@ -42,7 +42,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/*
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.
* To work around this, query the size it should be configured to by the
@@ -3172,6 +3175,8 @@ static void quirk_intel_ntb(struct pci_d
@@ -3238,6 +3241,8 @@ static void quirk_intel_ntb(struct pci_d
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
@ -51,7 +51,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/*
* Some BIOS implementations leave the Intel GPU interrupts enabled, even
* though no one is handling them (e.g., if the i915 driver is never
@@ -3210,6 +3215,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
@@ -3276,6 +3281,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);

View File

@ -442,7 +442,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
--- a/drivers/soc/imx/gpc.c
+++ b/drivers/soc/imx/gpc.c
@@ -209,7 +209,7 @@ static int imx_pgc_power_domain_probe(st
@@ -210,7 +210,7 @@ static int imx_pgc_power_domain_probe(st
goto genpd_err;
}
@ -713,7 +713,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
}
#ifdef CONFIG_NET_INGRESS
@@ -6341,7 +6342,15 @@ static int __netdev_upper_dev_link(struc
@@ -6342,7 +6343,15 @@ static int __netdev_upper_dev_link(struc
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info)
{
@ -730,7 +730,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
int ret = 0;
ASSERT_RTNL();
@@ -6359,12 +6368,7 @@ static int __netdev_upper_dev_link(struc
@@ -6360,12 +6369,7 @@ static int __netdev_upper_dev_link(struc
if (master && netdev_master_upper_dev_get(dev))
return -EBUSY;
@ -744,7 +744,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
&changeupper_info.info);
ret = notifier_to_errno(ret);
if (ret)
@@ -6376,7 +6380,7 @@ static int __netdev_upper_dev_link(struc
@@ -6377,7 +6381,7 @@ static int __netdev_upper_dev_link(struc
return ret;
netdev_update_addr_mask(dev);
@ -753,7 +753,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
&changeupper_info.info);
ret = notifier_to_errno(ret);
if (ret)
@@ -6440,21 +6444,25 @@ EXPORT_SYMBOL(netdev_master_upper_dev_li
@@ -6441,21 +6445,25 @@ EXPORT_SYMBOL(netdev_master_upper_dev_li
void netdev_upper_dev_unlink(struct net_device *dev,
struct net_device *upper_dev)
{
@ -784,7 +784,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
&changeupper_info.info);
}
EXPORT_SYMBOL(netdev_upper_dev_unlink);
@@ -6470,11 +6478,13 @@ EXPORT_SYMBOL(netdev_upper_dev_unlink);
@@ -6471,11 +6479,13 @@ EXPORT_SYMBOL(netdev_upper_dev_unlink);
void netdev_bonding_info_change(struct net_device *dev,
struct netdev_bonding_info *bonding_info)
{
@ -800,7 +800,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
&info.info);
}
EXPORT_SYMBOL(netdev_bonding_info_change);
@@ -6600,11 +6610,13 @@ EXPORT_SYMBOL(dev_get_nest_level);
@@ -6601,11 +6611,13 @@ EXPORT_SYMBOL(dev_get_nest_level);
void netdev_lower_state_changed(struct net_device *lower_dev,
void *lower_state_info)
{
@ -816,7 +816,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
&changelowerstate_info.info);
}
EXPORT_SYMBOL(netdev_lower_state_changed);
@@ -6895,11 +6907,14 @@ void __dev_notify_flags(struct net_devic
@@ -6896,11 +6908,14 @@ void __dev_notify_flags(struct net_devic
if (dev->flags & IFF_UP &&
(changes & ~(IFF_UP | IFF_PROMISC | IFF_ALLMULTI | IFF_VOLATILE))) {

View File

@ -323,7 +323,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
usb_phy_set_suspend(dwc->usb2_phy, 0);
usb_phy_set_suspend(dwc->usb3_phy, 0);
ret = phy_power_on(dwc->usb2_generic_phy);
@@ -870,6 +1006,22 @@ static int dwc3_core_init(struct dwc3 *d
@@ -873,6 +1009,22 @@ static int dwc3_core_init(struct dwc3 *d
dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
}
@ -346,7 +346,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
return 0;
err4:
@@ -1076,6 +1228,8 @@ static void dwc3_get_properties(struct d
@@ -1079,6 +1231,8 @@ static void dwc3_get_properties(struct d
&hird_threshold);
dwc->usb3_lpm_capable = device_property_read_bool(dev,
"snps,usb3_lpm_capable");
@ -355,9 +355,9 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
dwc->disable_scramble_quirk = device_property_read_bool(dev,
"snps,disable_scramble_quirk");
@@ -1108,8 +1262,16 @@ static void dwc3_get_properties(struct d
dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev,
"snps,dis-tx-ipgap-linecheck-quirk");
@@ -1113,8 +1267,16 @@ static void dwc3_get_properties(struct d
dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev,
"snps,parkmode-disable-ss-quirk");
+ dwc->quirk_reverse_in_out = device_property_read_bool(dev,
+ "snps,quirk_reverse_in_out");
@ -372,7 +372,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
device_property_read_u8(dev, "snps,tx_de_emphasis",
&tx_de_emphasis);
device_property_read_string(dev, "snps,hsphy_interface",
@@ -1120,6 +1282,9 @@ static void dwc3_get_properties(struct d
@@ -1125,6 +1287,9 @@ static void dwc3_get_properties(struct d
dwc->dis_metastability_quirk = device_property_read_bool(dev,
"snps,dis_metastability_quirk");
@ -382,7 +382,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
dwc->lpm_nyet_threshold = lpm_nyet_threshold;
dwc->tx_de_emphasis = tx_de_emphasis;
@@ -1371,12 +1536,14 @@ static int dwc3_resume_common(struct dwc
@@ -1376,12 +1541,14 @@ static int dwc3_resume_common(struct dwc
switch (dwc->dr_mode) {
case USB_DR_MODE_PERIPHERAL:
@ -440,9 +440,9 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
+#define DWC3_GUCTL_HSTINAUTORETRY BIT(14)
+
/* Global User Control 1 Register */
#define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17)
#define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS BIT(28)
#define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW BIT(24)
@@ -477,6 +506,14 @@
@@ -478,6 +507,14 @@
#define DWC3_DEV_IMOD_INTERVAL_SHIFT 0
#define DWC3_DEV_IMOD_INTERVAL_MASK (0xffff << 0)
@ -457,7 +457,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
/* Structures */
struct dwc3_trb;
@@ -788,6 +825,7 @@ struct dwc3_scratchpad_array {
@@ -789,6 +826,7 @@ struct dwc3_scratchpad_array {
* @regs: base address for our registers
* @regs_size: address space size
* @fladj: frame length adjustment
@ -465,7 +465,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
* @irq_gadget: peripheral controller's IRQ number
* @nr_scratch: number of scratch buffers
* @u1u2: only used on revisions <1.83a for workaround
@@ -843,6 +881,7 @@ struct dwc3_scratchpad_array {
@@ -844,6 +882,7 @@ struct dwc3_scratchpad_array {
* @setup_packet_pending: true when there's a Setup Packet in FIFO. Workaround
* @three_stage_setup: set if we perform a three phase setup
* @usb3_lpm_capable: set if hadrware supports Link Power Management
@ -473,7 +473,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
* @disable_scramble_quirk: set if we enable the disable scramble quirk
* @u2exit_lfps_quirk: set if we enable u2exit lfps quirk
* @u2ss_inp3_quirk: set if we enable P3 OK for U2/SS Inactive quirk
@@ -922,6 +961,12 @@ struct dwc3 {
@@ -925,6 +964,12 @@ struct dwc3 {
enum usb_phy_interface hsphy_mode;
u32 fladj;
@ -486,7 +486,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
u32 irq_gadget;
u32 nr_scratch;
u32 u1u2;
@@ -1006,6 +1051,7 @@ struct dwc3 {
@@ -1009,6 +1054,7 @@ struct dwc3 {
unsigned setup_packet_pending:1;
unsigned three_stage_setup:1;
unsigned usb3_lpm_capable:1;
@ -494,7 +494,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
unsigned disable_scramble_quirk:1;
unsigned u2exit_lfps_quirk:1;
@@ -1025,6 +1071,11 @@ struct dwc3 {
@@ -1029,6 +1075,11 @@ struct dwc3 {
unsigned tx_de_emphasis_quirk:1;
unsigned tx_de_emphasis:2;
@ -528,7 +528,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
reg &= ~DWC3_DCTL_INITU2ENA;
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -3220,6 +3220,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
@@ -3216,6 +3216,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
{
int ret;
int irq;
@ -536,7 +536,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
irq = dwc3_gadget_get_irq(dwc);
if (irq < 0) {
@@ -3298,6 +3299,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
@@ -3294,6 +3295,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
dwc3_gadget_set_speed(&dwc->gadget, dwc->maximum_speed);

View File

@ -5715,7 +5715,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
int (*start)(struct pci_epc *epc);
void (*stop)(struct pci_epc *epc);
struct module *owner;
@@ -91,8 +97,17 @@ struct pci_epc {
@@ -94,8 +100,17 @@ struct pci_epc {
struct config_group *group;
/* spinlock to protect against concurrent access of EP controller */
spinlock_t lock;
@ -5733,7 +5733,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
#define to_pci_epc(device) container_of((device), struct pci_epc, dev)
#define pci_epc_create(dev, ops) \
@@ -124,17 +139,23 @@ void pci_epc_destroy(struct pci_epc *epc
@@ -127,17 +142,23 @@ void pci_epc_destroy(struct pci_epc *epc
int pci_epc_add_epf(struct pci_epc *epc, struct pci_epf *epf);
void pci_epc_linkup(struct pci_epc *epc);
void pci_epc_remove_epf(struct pci_epc *epc, struct pci_epf *epf);

View File

@ -31,10 +31,7 @@ platform_do_upgrade() {
default_do_upgrade "$1"
;;
xiaomi,miwifi-r3)
# this make it compatible with breed
dd if=/dev/mtd0 bs=64 count=1 2>/dev/null | grep -qi breed && CI_KERNPART_EXT="kernel_stock"
dd if=/dev/mtd7 bs=64 count=1 2>/dev/null | grep -o MIPS.*Linux | grep -qi X-WRT && CI_KERNPART_EXT="kernel_stock"
dd if=/dev/mtd7 bs=64 count=1 2>/dev/null | grep -o MIPS.*Linux | grep -qi NATCAP && CI_KERNPART_EXT="kernel0_rsvd"
nand_do_upgrade "$1"
;;
*)

View File

@ -52,7 +52,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write
static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
unsigned long adr, const u_char *buf,
int len)
@@ -1926,7 +1931,6 @@ static int __xipram do_write_buffer(stru
@@ -1930,7 +1935,6 @@ static int __xipram do_write_buffer(stru
return ret;
}
@ -60,7 +60,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write
static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
size_t *retlen, const u_char *buf)
{
@@ -2001,6 +2005,7 @@ static int cfi_amdstd_write_buffers(stru
@@ -2005,6 +2009,7 @@ static int cfi_amdstd_write_buffers(stru
return 0;
}