summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Patchlist.changelog12
-rwxr-xr-xkernel.spec6
-rw-r--r--patch-5.14-redhat.patch255
-rw-r--r--sources6
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) \
diff --git a/sources b/sources
index a38f52644..f32ec2407 100644
--- a/sources
+++ b/sources
@@ -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