From 7dd2d7289a06ac742cfce5dbc9c583146b2c4a9c Mon Sep 17 00:00:00 2001 From: Koen Vandeputte Date: Mon, 11 May 2020 12:07:06 +0200 Subject: [PATCH] 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 --- include/kernel-version.mk | 4 +- .../404-mtd-cybertan-trx-parser.patch | 3 +- .../950-0039-Add-dwc_otg-driver.patch | 4 +- ...-DT-Add-CSI-nodes-to-the-device-tree.patch | 2 +- ...Better-coalescing-parameter-defaults.patch | 4 +- ...Move-BCM2835-6-7-specific-to-bcm2835.patch | 6 +- ...-for-updating-interrupt-endpoint-int.patch | 2 +- ...hci_fixup_endpoint-for-interval-adju.patch | 4 +- ...resent-but-empty-dmas-disables-audio.patch | 2 +- ...t-Workaround-2-for-Pi4-Ethernet-fail.patch | 2 +- .../bcm47xx/patches-4.19/159-cpu_fixes.patch | 4 +- ...ddress-assignment-via-ifconfig-ioctl.patch | 4 +- ...initial-support-for-Toshiba-TC58CVG2.patch | 2 +- ...dd-support-for-GigaDevice-GD5FxGQ4xA.patch | 2 +- ...-Add-support-for-two-byte-device-IDs.patch | 2 +- ...initial-support-for-Paragon-PN26G0xA.patch | 2 +- .../550-loop-Report-EOPNOTSUPP-properly.patch | 4 +- ...er-discard-support-for-block-devices.patch | 101 ------------------ .../generic/hack-4.19/902-debloat_proc.patch | 2 +- .../270-platform-mikrotik-build-bits.patch | 13 +-- ...mtd-add-routerbootpart-parser-config.patch | 6 +- ...T-skip-GRO-for-foreign-MAC-addresses.patch | 10 +- .../810-pci_disable_common_quirks.patch | 6 +- 23 files changed, 40 insertions(+), 151 deletions(-) delete mode 100644 target/linux/generic/hack-4.19/551-loop-Better-discard-support-for-block-devices.patch diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 21883edacd..968743ef52 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -7,11 +7,11 @@ ifdef CONFIG_TESTING_KERNEL endif LINUX_VERSION-4.14 = .180 -LINUX_VERSION-4.19 = .115 +LINUX_VERSION-4.19 = .122 LINUX_VERSION-5.4 = .39 LINUX_KERNEL_HASH-4.14.180 = 444ef973d9b6a6ea174e4a9086f0aea980d8575d13302e431ad688f22e27ed0e -LINUX_KERNEL_HASH-4.19.115 = 11b2d97c8ea5ceb40c5e1d0bb87ad5b2b8c84560181bc60c0d28ec3a3e3801c2 +LINUX_KERNEL_HASH-4.19.122 = 5050268ec5cf003d96366d1611ecfa4ab6974125d6fa26cea1ccb81dd4df00a5 LINUX_KERNEL_HASH-5.4.39 = 5141965a61a7b1c538443782ec3ef25fe0c3f9cd4d70c4e9f969d16883f365c8 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) diff --git a/target/linux/ath79/patches-4.19/404-mtd-cybertan-trx-parser.patch b/target/linux/ath79/patches-4.19/404-mtd-cybertan-trx-parser.patch index 22e31db3fa..fcfe72e287 100644 --- a/target/linux/ath79/patches-4.19/404-mtd-cybertan-trx-parser.patch +++ b/target/linux/ath79/patches-4.19/404-mtd-cybertan-trx-parser.patch @@ -1,9 +1,10 @@ --- a/drivers/mtd/parsers/Makefile +++ b/drivers/mtd/parsers/Makefile -@@ -1,2 +1,3 @@ +@@ -1,3 +1,4 @@ +obj-$(CONFIG_MTD_PARSER_CYBERTAN) += parser_cybertan.o obj-$(CONFIG_MTD_PARSER_TRX) += parser_trx.o obj-$(CONFIG_MTD_SHARPSL_PARTS) += sharpslpart.o + obj-$(CONFIG_MTD_ROUTERBOOT_PARTS) += routerbootpart.o --- a/drivers/mtd/parsers/Kconfig +++ b/drivers/mtd/parsers/Kconfig @@ -1,3 +1,11 @@ diff --git a/target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch b/target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch index 35eb49209e..ff062ffdf1 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch @@ -917,7 +917,7 @@ Fixes https://github.com/raspberrypi/linux/issues/2408 } --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -5232,7 +5232,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); diff --git a/target/linux/bcm27xx/patches-4.19/950-0179-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch b/target/linux/bcm27xx/patches-4.19/950-0179-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch index 551a60ce9e..cf59fff9ae 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0179-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0179-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch @@ -156,7 +156,7 @@ Signed-off-by: Dave Stevenson +}; --- a/arch/arm/boot/dts/bcm283x.dtsi +++ b/arch/arm/boot/dts/bcm283x.dtsi -@@ -565,6 +565,32 @@ +@@ -566,6 +566,32 @@ status = "disabled"; }; diff --git a/target/linux/bcm27xx/patches-4.19/950-0470-bcmgenet-Better-coalescing-parameter-defaults.patch b/target/linux/bcm27xx/patches-4.19/950-0470-bcmgenet-Better-coalescing-parameter-defaults.patch index e045886c78..43a8a698f4 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0470-bcmgenet-Better-coalescing-parameter-defaults.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0470-bcmgenet-Better-coalescing-parameter-defaults.patch @@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell --- 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 /* 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 */ diff --git a/target/linux/bcm27xx/patches-4.19/950-0556-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch b/target/linux/bcm27xx/patches-4.19/950-0556-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch index e3ee39abba..900bc4911c 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0556-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0556-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch @@ -159,8 +159,8 @@ Signed-off-by: Stefan Wahren jtag_gpio22: jtag_gpio22 { brcm,pins = <22 23 24 25 26 27>; brcm,function = ; -@@ -487,14 +460,6 @@ - +@@ -488,14 +461,6 @@ + status = "disabled"; }; - thermal: thermal@7e212000 { @@ -174,7 +174,7 @@ Signed-off-by: Stefan Wahren aux: aux@7e215000 { compatible = "brcm,bcm2835-aux"; #clock-cells = <1>; -@@ -660,12 +625,6 @@ +@@ -661,12 +626,6 @@ phy-names = "usb2-phy"; }; diff --git a/target/linux/bcm27xx/patches-4.19/950-0572-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch b/target/linux/bcm27xx/patches-4.19/950-0572-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch index 99c4e4df3f..07e0fbd144 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0572-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0572-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch @@ -46,7 +46,7 @@ Signed-off-by: Jonathan Bell * 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; } diff --git a/target/linux/bcm27xx/patches-4.19/950-0573-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/target/linux/bcm27xx/patches-4.19/950-0573-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch index d66b9716a1..5df9ceca9c 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0573-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0573-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch @@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell --- 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 * 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, diff --git a/target/linux/bcm27xx/patches-4.19/950-0630-drm-vc4-A-present-but-empty-dmas-disables-audio.patch b/target/linux/bcm27xx/patches-4.19/950-0630-drm-vc4-A-present-but-empty-dmas-disables-audio.patch index 2d38456ae6..080a7d991a 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0630-drm-vc4-A-present-but-empty-dmas-disables-audio.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0630-drm-vc4-A-present-but-empty-dmas-disables-audio.patch @@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell --- 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; diff --git a/target/linux/bcm27xx/patches-4.19/950-0658-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch b/target/linux/bcm27xx/patches-4.19/950-0658-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch index beeeb2f9f1..5b7f16cdb0 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0658-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0658-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch @@ -38,7 +38,7 @@ Signed-off-by: Phil Elwell 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); diff --git a/target/linux/bcm47xx/patches-4.19/159-cpu_fixes.patch b/target/linux/bcm47xx/patches-4.19/159-cpu_fixes.patch index 75e493b2dd..8ce76839c7 100644 --- a/target/linux/bcm47xx/patches-4.19/159-cpu_fixes.patch +++ b/target/linux/bcm47xx/patches-4.19/159-cpu_fixes.patch @@ -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); diff --git a/target/linux/generic/backport-4.19/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch b/target/linux/generic/backport-4.19/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch index bf6d9aca34..24f796dcfa 100644 --- a/target/linux/generic/backport-4.19/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch +++ b/target/linux/generic/backport-4.19/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch @@ -48,7 +48,7 @@ Reviewed-by: John Gilmore #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 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; diff --git a/target/linux/generic/backport-4.19/451-v5.0-mtd-spinand-Add-initial-support-for-Toshiba-TC58CVG2.patch b/target/linux/generic/backport-4.19/451-v5.0-mtd-spinand-Add-initial-support-for-Toshiba-TC58CVG2.patch index ed42f0024b..288fdbf267 100644 --- a/target/linux/generic/backport-4.19/451-v5.0-mtd-spinand-Add-initial-support-for-Toshiba-TC58CVG2.patch +++ b/target/linux/generic/backport-4.19/451-v5.0-mtd-spinand-Add-initial-support-for-Toshiba-TC58CVG2.patch @@ -28,7 +28,7 @@ Signed-off-by: Miquel Raynal 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[] = { ¯onix_spinand_manufacturer, µn_spinand_manufacturer, diff --git a/target/linux/generic/backport-4.19/452-v5.0-mtd-spinand-add-support-for-GigaDevice-GD5FxGQ4xA.patch b/target/linux/generic/backport-4.19/452-v5.0-mtd-spinand-add-support-for-GigaDevice-GD5FxGQ4xA.patch index 4e6f18a4cb..d3ded95ccb 100644 --- a/target/linux/generic/backport-4.19/452-v5.0-mtd-spinand-add-support-for-GigaDevice-GD5FxGQ4xA.patch +++ b/target/linux/generic/backport-4.19/452-v5.0-mtd-spinand-add-support-for-GigaDevice-GD5FxGQ4xA.patch @@ -25,7 +25,7 @@ Signed-off-by: Miquel Raynal 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[] = { diff --git a/target/linux/generic/backport-4.19/461-v5.3-mtd-spinand-Add-support-for-two-byte-device-IDs.patch b/target/linux/generic/backport-4.19/461-v5.3-mtd-spinand-Add-support-for-two-byte-device-IDs.patch index fcbecbb762..ee81f97f4e 100644 --- a/target/linux/generic/backport-4.19/461-v5.3-mtd-spinand-Add-support-for-two-byte-device-IDs.patch +++ b/target/linux/generic/backport-4.19/461-v5.3-mtd-spinand-Add-support-for-two-byte-device-IDs.patch @@ -17,7 +17,7 @@ Signed-off-by: Miquel Raynal --- 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, diff --git a/target/linux/generic/backport-4.19/463-v5.3-mtd-spinand-Add-initial-support-for-Paragon-PN26G0xA.patch b/target/linux/generic/backport-4.19/463-v5.3-mtd-spinand-Add-initial-support-for-Paragon-PN26G0xA.patch index 17b8e779bc..d30abdc143 100644 --- a/target/linux/generic/backport-4.19/463-v5.3-mtd-spinand-Add-initial-support-for-Paragon-PN26G0xA.patch +++ b/target/linux/generic/backport-4.19/463-v5.3-mtd-spinand-Add-initial-support-for-Paragon-PN26G0xA.patch @@ -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, ¯onix_spinand_manufacturer, µn_spinand_manufacturer, diff --git a/target/linux/generic/hack-4.19/550-loop-Report-EOPNOTSUPP-properly.patch b/target/linux/generic/hack-4.19/550-loop-Report-EOPNOTSUPP-properly.patch index 023de0078d..c05297f45a 100644 --- a/target/linux/generic/hack-4.19/550-loop-Report-EOPNOTSUPP-properly.patch +++ b/target/linux/generic/hack-4.19/550-loop-Report-EOPNOTSUPP-properly.patch @@ -18,7 +18,7 @@ Reviewed-by: Bart Van Assche --- a/drivers/block/loop.c +++ b/drivers/block/loop.c -@@ -460,7 +460,7 @@ static void lo_complete_rq(struct reques +@@ -461,7 +461,7 @@ static void lo_complete_rq(struct reques if (!cmd->use_aio || cmd->ret < 0 || cmd->ret == blk_rq_bytes(rq) || req_op(rq) != REQ_OP_READ) { if (cmd->ret < 0) @@ -27,7 +27,7 @@ Reviewed-by: Bart Van Assche goto end_io; } -@@ -1904,7 +1904,10 @@ static void loop_handle_cmd(struct loop_ +@@ -1924,7 +1924,10 @@ static void loop_handle_cmd(struct loop_ failed: /* complete non-aio request */ if (!cmd->use_aio || ret) { diff --git a/target/linux/generic/hack-4.19/551-loop-Better-discard-support-for-block-devices.patch b/target/linux/generic/hack-4.19/551-loop-Better-discard-support-for-block-devices.patch deleted file mode 100644 index ac393e5f13..0000000000 --- a/target/linux/generic/hack-4.19/551-loop-Better-discard-support-for-block-devices.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 3117c3f45edbcc269baaebd3d13f39b7bf884aa6 Mon Sep 17 00:00:00 2001 -From: Evan Green -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 -Reviewed-by: Gwendal Grignou -Reviewed-by: Chaitanya Kulkarni ---- - 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) diff --git a/target/linux/generic/hack-4.19/902-debloat_proc.patch b/target/linux/generic/hack-4.19/902-debloat_proc.patch index dd390f39bd..800c32e10c 100644 --- a/target/linux/generic/hack-4.19/902-debloat_proc.patch +++ b/target/linux/generic/hack-4.19/902-debloat_proc.patch @@ -232,7 +232,7 @@ Signed-off-by: Felix Fietkau 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) { diff --git a/target/linux/generic/pending-4.19/270-platform-mikrotik-build-bits.patch b/target/linux/generic/pending-4.19/270-platform-mikrotik-build-bits.patch index e2e8fbfcff..c8c19f38a6 100644 --- a/target/linux/generic/pending-4.19/270-platform-mikrotik-build-bits.patch +++ b/target/linux/generic/pending-4.19/270-platform-mikrotik-build-bits.patch @@ -14,25 +14,18 @@ Signed-off-by: Thibaut VARÈNE drivers/platform/Makefile | 1 + 2 files changed, 3 insertions(+) -diff --git a/drivers/platform/Kconfig b/drivers/platform/Kconfig -index c11db8b..0283f0b 100644 --- a/drivers/platform/Kconfig +++ b/drivers/platform/Kconfig -@@ -10,3 +10,5 @@ +@@ -10,3 +10,5 @@ source "drivers/platform/goldfish/Kconfi source "drivers/platform/chrome/Kconfig" - + source "drivers/platform/mellanox/Kconfig" + +source "drivers/platform/mikrotik/Kconfig" -diff --git a/drivers/platform/Makefile b/drivers/platform/Makefile -index d3a6630..ad290c3 100644 --- a/drivers/platform/Makefile +++ b/drivers/platform/Makefile -@@ -9,3 +9,4 @@ +@@ -9,3 +9,4 @@ obj-$(CONFIG_MIPS) += mips/ obj-$(CONFIG_OLPC) += olpc/ obj-$(CONFIG_GOLDFISH) += goldfish/ obj-$(CONFIG_CHROME_PLATFORMS) += chrome/ +obj-$(CONFIG_MIKROTIK) += mikrotik/ --- -2.11.0 - diff --git a/target/linux/generic/pending-4.19/435-mtd-add-routerbootpart-parser-config.patch b/target/linux/generic/pending-4.19/435-mtd-add-routerbootpart-parser-config.patch index 678eaed4ce..5637cd54af 100644 --- a/target/linux/generic/pending-4.19/435-mtd-add-routerbootpart-parser-config.patch +++ b/target/linux/generic/pending-4.19/435-mtd-add-routerbootpart-parser-config.patch @@ -14,11 +14,9 @@ Signed-off-by: Thibaut VARÈNE drivers/mtd/parsers/Makefile | 1 + 2 files changed, 10 insertions(+) -diff --git a/drivers/mtd/parsers/Kconfig b/drivers/mtd/parsers/Kconfig -index de6f5f8..0afa89c 100644 --- a/drivers/mtd/parsers/Kconfig +++ b/drivers/mtd/parsers/Kconfig -@@ -22,3 +22,12 @@ config MTD_SHARPSL_PARTS +@@ -14,3 +14,12 @@ config MTD_SHARPSL_PARTS This provides the read-only FTL logic necessary to read the partition table from the NAND flash of Sharp SL Series (Zaurus) and the MTD partition parser using this code. @@ -31,8 +29,6 @@ index de6f5f8..0afa89c 100644 + flash, some of which are fixed and some of which are located at + variable offsets. This parser handles both cases via properly + formatted DTS. -diff --git a/drivers/mtd/parsers/Makefile b/drivers/mtd/parsers/Makefile -index 44ff342..0543362 100644 --- a/drivers/mtd/parsers/Makefile +++ b/drivers/mtd/parsers/Makefile @@ -1,2 +1,3 @@ diff --git a/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 75cc8d2f7d..ccfd89f703 100644 --- a/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __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 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 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 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 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; diff --git a/target/linux/generic/pending-4.19/810-pci_disable_common_quirks.patch b/target/linux/generic/pending-4.19/810-pci_disable_common_quirks.patch index 738bbd71d1..669229c620 100644 --- a/target/linux/generic/pending-4.19/810-pci_disable_common_quirks.patch +++ b/target/linux/generic/pending-4.19/810-pci_disable_common_quirks.patch @@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos /* * 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 /* * 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 /* * 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);