diff options
-rw-r--r-- | Patchlist.changelog | 12 | ||||
-rwxr-xr-x | kernel.spec | 6 | ||||
-rw-r--r-- | patch-5.14-redhat.patch | 255 | ||||
-rw-r--r-- | sources | 6 |
4 files changed, 217 insertions, 62 deletions
diff --git a/Patchlist.changelog b/Patchlist.changelog index 1a739b41d..c29ea4c79 100644 --- a/Patchlist.changelog +++ b/Patchlist.changelog @@ -1,3 +1,15 @@ +https://gitlab.com/cki-project/kernel-ark/-/commit/32568097ff5803d25ac5e233583903c1c4666711 + 32568097ff5803d25ac5e233583903c1c4666711 e100e: Fix packet loss issues seen on Intel network controller + +https://gitlab.com/cki-project/kernel-ark/-/commit/e84b9781b4fec1e48909260cb3d3454fb82c241d + e84b9781b4fec1e48909260cb3d3454fb82c241d Revert "net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings" + +https://gitlab.com/cki-project/kernel-ark/-/commit/d885e8f2615cb029f9173d7cdd49ae0815bb019c + d885e8f2615cb029f9173d7cdd49ae0815bb019c bpf: Fix integer overflow in prealloc_elems_and_freelist() + +https://gitlab.com/cki-project/kernel-ark/-/commit/d816db8fabf7346ef722cf5b3a3a12b43bdd0460 + d816db8fabf7346ef722cf5b3a3a12b43bdd0460 Revert "acpi: prefer booting with ACPI over DTS" + https://gitlab.com/cki-project/kernel-ark/-/commit/be4d6e21716592aa0230e5ae6ecaedce6f36d9a5 be4d6e21716592aa0230e5ae6ecaedce6f36d9a5 Revert "block, bfq: honor already-setup queue merges" diff --git a/kernel.spec b/kernel.spec index 49097343c..abee6fa8e 100755 --- a/kernel.spec +++ b/kernel.spec @@ -2963,6 +2963,12 @@ fi # # %changelog +* Thu Oct 07 2021 Justin M. Forbes <jforbes@fedoraproject.org> [5.14.10-0] +- Revert "net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings" (Peter Robinson) +- e100e: Fix packet loss issues seen on Intel network controller (Mark Pearson) +- bpf: Fix integer overflow in prealloc_elems_and_freelist() (Tatsuhiko Yasumatsu) +- Revert "acpi: prefer booting with ACPI over DTS" (Justin M. Forbes) + * Thu Sep 30 2021 Justin M. Forbes <jforbes@fedoraproject.org> [5.14.9-0] - Revert "block, bfq: honor already-setup queue merges" (Jens Axboe) diff --git a/patch-5.14-redhat.patch b/patch-5.14-redhat.patch index eb00458c5..73a387e96 100644 --- a/patch-5.14-redhat.patch +++ b/patch-5.14-redhat.patch @@ -1,12 +1,10 @@ arch/arm/Kconfig | 4 +- arch/arm64/Kconfig | 3 +- .../boot/dts/rockchip/rk3399-pinebook-pro.dts | 6 +- - arch/arm64/kernel/acpi.c | 2 +- arch/s390/include/asm/ipl.h | 1 + arch/s390/kernel/ipl.c | 5 + arch/s390/kernel/setup.c | 4 + arch/x86/kernel/setup.c | 22 +- - block/bfq-iosched.c | 16 +- crypto/rng.c | 73 ++- drivers/acpi/apei/hest.c | 8 + drivers/acpi/irq.c | 17 +- @@ -22,6 +20,11 @@ drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 + drivers/input/rmi4/rmi_driver.c | 124 +++-- drivers/iommu/iommu.c | 22 + + drivers/net/ethernet/intel/e1000e/e1000.h | 4 +- + drivers/net/ethernet/intel/e1000e/ich8lan.c | 31 +- + drivers/net/ethernet/intel/e1000e/ich8lan.h | 3 + + drivers/net/ethernet/intel/e1000e/netdev.c | 29 +- + drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 9 + drivers/net/wireguard/main.c | 6 + drivers/pci/quirks.c | 24 + drivers/usb/core/hub.c | 7 + @@ -33,6 +36,7 @@ include/linux/rmi.h | 1 + include/linux/security.h | 5 + init/Kconfig | 2 +- + kernel/bpf/stackmap.c | 3 +- kernel/module_signing.c | 9 +- mm/cma.c | 10 + security/integrity/platform_certs/load_uefi.c | 6 +- @@ -52,7 +56,7 @@ tools/testing/selftests/bpf/progs/linked_maps2.c | 76 --- tools/testing/selftests/bpf/progs/linked_vars1.c | 54 -- tools/testing/selftests/bpf/progs/linked_vars2.c | 55 --- - 54 files changed, 658 insertions(+), 1508 deletions(-) + 58 files changed, 716 insertions(+), 1511 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 2fb7012c3246..47718b4f2f75 100644 @@ -115,19 +119,6 @@ index 2b5f001ff4a6..dae8c252bc2b 100644 label = "USB-C"; op-sink-microwatt = <1000000>; power-role = "dual"; -diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c -index f3851724fe35..cac21da49455 100644 ---- a/arch/arm64/kernel/acpi.c -+++ b/arch/arm64/kernel/acpi.c -@@ -40,7 +40,7 @@ int acpi_pci_disabled = 1; /* skip ACPI PCI scan and IRQ initialization */ - EXPORT_SYMBOL(acpi_pci_disabled); - - static bool param_acpi_off __initdata; --static bool param_acpi_on __initdata; -+static bool param_acpi_on __initdata = true; - static bool param_acpi_force __initdata; - - static int __init parse_acpi(char *arg) diff --git a/arch/s390/include/asm/ipl.h b/arch/s390/include/asm/ipl.h index a9e2c7295b35..6ff11f3a2d47 100644 --- a/arch/s390/include/asm/ipl.h @@ -222,47 +213,6 @@ index d103e8489ec1..16ef6bcceed2 100644 reserve_initrd(); -diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c -index 3a1038b6eeb3..9360c65169ff 100644 ---- a/block/bfq-iosched.c -+++ b/block/bfq-iosched.c -@@ -2662,15 +2662,6 @@ bfq_setup_merge(struct bfq_queue *bfqq, struct bfq_queue *new_bfqq) - * are likely to increase the throughput. - */ - bfqq->new_bfqq = new_bfqq; -- /* -- * The above assignment schedules the following redirections: -- * each time some I/O for bfqq arrives, the process that -- * generated that I/O is disassociated from bfqq and -- * associated with new_bfqq. Here we increases new_bfqq->ref -- * in advance, adding the number of processes that are -- * expected to be associated with new_bfqq as they happen to -- * issue I/O. -- */ - new_bfqq->ref += process_refs; - return new_bfqq; - } -@@ -2733,10 +2724,6 @@ bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq, - { - struct bfq_queue *in_service_bfqq, *new_bfqq; - -- /* if a merge has already been setup, then proceed with that first */ -- if (bfqq->new_bfqq) -- return bfqq->new_bfqq; -- - /* - * Check delayed stable merge for rotational or non-queueing - * devs. For this branch to be executed, bfqq must not be -@@ -2838,6 +2825,9 @@ bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq, - if (bfq_too_late_for_merging(bfqq)) - return NULL; - -+ if (bfqq->new_bfqq) -+ return bfqq->new_bfqq; -+ - if (!io_struct || unlikely(bfqq == &bfqd->oom_bfqq)) - return NULL; - diff --git a/crypto/rng.c b/crypto/rng.c index fea082b25fe4..50a9d040bed1 100644 --- a/crypto/rng.c @@ -1299,6 +1249,179 @@ index 63f0af10c403..195be16dbd39 100644 /* * Changes the default domain of an iommu group that has *only* one device * +diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h +index 5b2143f4b1f8..3178efd98006 100644 +--- a/drivers/net/ethernet/intel/e1000e/e1000.h ++++ b/drivers/net/ethernet/intel/e1000e/e1000.h +@@ -113,7 +113,8 @@ enum e1000_boards { + board_pch2lan, + board_pch_lpt, + board_pch_spt, +- board_pch_cnp ++ board_pch_cnp, ++ board_pch_tgp + }; + + struct e1000_ps_page { +@@ -499,6 +500,7 @@ extern const struct e1000_info e1000_pch2_info; + extern const struct e1000_info e1000_pch_lpt_info; + extern const struct e1000_info e1000_pch_spt_info; + extern const struct e1000_info e1000_pch_cnp_info; ++extern const struct e1000_info e1000_pch_tgp_info; + extern const struct e1000_info e1000_es2_info; + + void e1000e_ptp_init(struct e1000_adapter *adapter); +diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c +index a80336c4319b..f8b3e758a8d2 100644 +--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c ++++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c +@@ -4804,7 +4804,7 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw) + static s32 e1000_init_hw_ich8lan(struct e1000_hw *hw) + { + struct e1000_mac_info *mac = &hw->mac; +- u32 ctrl_ext, txdctl, snoop; ++ u32 ctrl_ext, txdctl, snoop, fflt_dbg; + s32 ret_val; + u16 i; + +@@ -4863,6 +4863,15 @@ static s32 e1000_init_hw_ich8lan(struct e1000_hw *hw) + snoop = (u32)~(PCIE_NO_SNOOP_ALL); + e1000e_set_pcie_no_snoop(hw, snoop); + ++ /* Enable workaround for packet loss issue on TGP PCH ++ * Do not gate DMA clock from the modPHY block ++ */ ++ if (mac->type >= e1000_pch_tgp) { ++ fflt_dbg = er32(FFLT_DBG); ++ fflt_dbg |= E1000_FFLT_DBG_DONT_GATE_WAKE_DMA_CLK; ++ ew32(FFLT_DBG, fflt_dbg); ++ } ++ + ctrl_ext = er32(CTRL_EXT); + ctrl_ext |= E1000_CTRL_EXT_RO_DIS; + ew32(CTRL_EXT, ctrl_ext); +@@ -5983,3 +5992,23 @@ const struct e1000_info e1000_pch_cnp_info = { + .phy_ops = &ich8_phy_ops, + .nvm_ops = &spt_nvm_ops, + }; ++ ++const struct e1000_info e1000_pch_tgp_info = { ++ .mac = e1000_pch_tgp, ++ .flags = FLAG_IS_ICH ++ | FLAG_HAS_WOL ++ | FLAG_HAS_HW_TIMESTAMP ++ | FLAG_HAS_CTRLEXT_ON_LOAD ++ | FLAG_HAS_AMT ++ | FLAG_HAS_FLASH ++ | FLAG_HAS_JUMBO_FRAMES ++ | FLAG_APME_IN_WUC, ++ .flags2 = FLAG2_HAS_PHY_STATS ++ | FLAG2_HAS_EEE, ++ .pba = 26, ++ .max_hw_frame_size = 9022, ++ .get_variants = e1000_get_variants_ich8lan, ++ .mac_ops = &ich8_mac_ops, ++ .phy_ops = &ich8_phy_ops, ++ .nvm_ops = &spt_nvm_ops, ++}; +diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.h b/drivers/net/ethernet/intel/e1000e/ich8lan.h +index e757896287eb..8f2a8f4ce0ee 100644 +--- a/drivers/net/ethernet/intel/e1000e/ich8lan.h ++++ b/drivers/net/ethernet/intel/e1000e/ich8lan.h +@@ -286,6 +286,9 @@ + /* Proprietary Latency Tolerance Reporting PCI Capability */ + #define E1000_PCI_LTR_CAP_LPT 0xA8 + ++/* Don't gate wake DMA clock */ ++#define E1000_FFLT_DBG_DONT_GATE_WAKE_DMA_CLK 0x1000 ++ + void e1000e_write_protect_nvm_ich8lan(struct e1000_hw *hw); + void e1000e_set_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw, + bool state); +diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c +index 757a54c39eef..774f849027f0 100644 +--- a/drivers/net/ethernet/intel/e1000e/netdev.c ++++ b/drivers/net/ethernet/intel/e1000e/netdev.c +@@ -51,6 +51,7 @@ static const struct e1000_info *e1000_info_tbl[] = { + [board_pch_lpt] = &e1000_pch_lpt_info, + [board_pch_spt] = &e1000_pch_spt_info, + [board_pch_cnp] = &e1000_pch_cnp_info, ++ [board_pch_tgp] = &e1000_pch_tgp_info, + }; + + struct e1000_reg_info { +@@ -7844,20 +7845,20 @@ static const struct pci_device_id e1000_pci_tbl[] = { + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V11), board_pch_cnp }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_LM12), board_pch_spt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_CMP_I219_V12), board_pch_spt }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM13), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V13), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM14), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V14), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM15), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V15), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_LM16), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_V16), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_LM17), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_V17), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_LM18), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_V18), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_LM19), board_pch_cnp }, +- { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_V19), board_pch_cnp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM13), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V13), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM14), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V14), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_LM15), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_TGP_I219_V15), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_LM16), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_V16), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_LM17), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_ADP_I219_V17), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_LM18), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_V18), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_LM19), board_pch_tgp }, ++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_MTP_I219_V19), board_pch_tgp }, + + { 0, 0, 0, 0, 0, 0, 0 } /* terminate list */ + }; +diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c +index ed817011a94a..280ac0129572 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c ++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c +@@ -21,6 +21,7 @@ + #include <linux/delay.h> + #include <linux/mfd/syscon.h> + #include <linux/regmap.h> ++#include <linux/pm_runtime.h> + + #include "stmmac_platform.h" + +@@ -1528,6 +1529,9 @@ static int rk_gmac_powerup(struct rk_priv_data *bsp_priv) + return ret; + } + ++ pm_runtime_enable(dev); ++ pm_runtime_get_sync(dev); ++ + if (bsp_priv->integrated_phy) + rk_gmac_integrated_phy_powerup(bsp_priv); + +@@ -1536,9 +1540,14 @@ static int rk_gmac_powerup(struct rk_priv_data *bsp_priv) + + static void rk_gmac_powerdown(struct rk_priv_data *gmac) + { ++ struct device *dev = &gmac->pdev->dev; ++ + if (gmac->integrated_phy) + rk_gmac_integrated_phy_powerdown(gmac); + ++ pm_runtime_put_sync(dev); ++ pm_runtime_disable(dev); ++ + phy_power_on(gmac, false); + gmac_clk_enable(gmac, false); + } diff --git a/drivers/net/wireguard/main.c b/drivers/net/wireguard/main.c index 75dbe77b0b4b..4bd6dd722f44 100644 --- a/drivers/net/wireguard/main.c @@ -1573,6 +1696,20 @@ index 55f9f7738ebb..564553afb251 100644 select IO_WQ default y help +diff --git a/kernel/bpf/stackmap.c b/kernel/bpf/stackmap.c +index 6fbc2abe9c91..2553caf4f74a 100644 +--- a/kernel/bpf/stackmap.c ++++ b/kernel/bpf/stackmap.c +@@ -63,7 +63,8 @@ static inline int stack_map_data_size(struct bpf_map *map) + + static int prealloc_elems_and_freelist(struct bpf_stack_map *smap) + { +- u32 elem_size = sizeof(struct stack_map_bucket) + smap->map.value_size; ++ u64 elem_size = sizeof(struct stack_map_bucket) + ++ (u64)smap->map.value_size; + int err; + + smap->elems = bpf_map_area_alloc(elem_size * smap->map.max_entries, diff --git a/kernel/module_signing.c b/kernel/module_signing.c index 8723ae70ea1f..fb2d773498c2 100644 --- a/kernel/module_signing.c @@ -1700,10 +1837,10 @@ index 9ffa9e9c5c55..36484cc9842d 100644 int security_perf_event_open(struct perf_event_attr *attr, int type) { diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile -index f405b20c1e6c..a8e298a22709 100644 +index 93f1f124ef89..70905889a07b 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile -@@ -424,7 +424,6 @@ $(TRUNNER_TEST_OBJS): $(TRUNNER_OUTPUT)/%.test.o: \ +@@ -425,7 +425,6 @@ $(TRUNNER_TEST_OBJS): $(TRUNNER_OUTPUT)/%.test.o: \ $(TRUNNER_BPF_OBJS) \ $(TRUNNER_BPF_SKELS) \ $(TRUNNER_BPF_LSKELS) \ @@ -1,4 +1,4 @@ SHA512 (kernel-abi-whitelists-5.13.19-200.tar.bz2) = 7d28816c431019c9f09b7bcda4eb43ed2c3a7cbb8199af0fecccf16bff3ac992e2c9ed3acc2d06d7c8ebec3dc9ad76d0975cc179d2e4b7541af2af05f7e35de6 -SHA512 (linux-5.14.9.tar.xz) = 042d6797eba324111e122528d3668abd92b58bc552b9d3cc125f533b603e104497920ce0004d22eda6e142ec33f2628ffd3553532957edcc99eba7af652adc88 -SHA512 (kernel-abi-stablelists-5.14.9-200.tar.bz2) = 0f7685d4be85ad63117f5a7dedbfe8b4c9f1dbfffbca6e78ee44f0ac71fa21ce07e1c99269e7a00a29fe11df87e7eadce317f6b74b97e87681f094b7b9a3f027 -SHA512 (kernel-kabi-dw-5.14.9-200.tar.bz2) = f87883349f991248687fcedc7b95962ee40dfe608e8f53baea1057dd7572fdb9a6ce0a10862234a98e99c3e1fa3ce65e14b70ed839adbd9704cd13f2fd5e5d44 +SHA512 (linux-5.14.10.tar.xz) = c6e912ac6d0e7cbfce32c1f59c6764af03e5ff59c2b097028b0c8793f2caf5059de4dfd0c2d6ae7fcbb34b7d30c7935aa5521cfc45b33ba16ad7655c70cd1b4c +SHA512 (kernel-abi-stablelists-5.14.10-200.tar.bz2) = edfa0784bacf6b121cbb36bb9a356b023da6399c36c8a6960df15417bc3c180bf776401d08c4ed0c1bbfc6396079645a348fc8fd3d8cfe5a4e85340a416eda92 +SHA512 (kernel-kabi-dw-5.14.10-200.tar.bz2) = cab2d588710e71ff9b521c3ff73a562df6a853f80566cbd867e7c246e40d280785cabcce0bd350282382144d95988de6ef2b2cf4133741b0d7c44f6decfc8a2b |