diff --git a/SOURCE b/SOURCE index 9b328e9..c27549b 100644 --- a/SOURCE +++ b/SOURCE @@ -1 +1 @@ -4.19.90-2312.1.0 +4.19.90-2312.3.0 diff --git a/kernel.spec b/kernel.spec index ad1142f..f4cd42b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -12,7 +12,7 @@ %global KernelVer %{version}-%{release}.%{_target_cpu} -%global hulkrelease 2312.1.0 +%global hulkrelease 2312.3.0 %define with_patch 1 @@ -32,7 +32,7 @@ Name: kernel Version: 4.19.90 -Release: %{hulkrelease}.0255 +Release: %{hulkrelease}.0256 Summary: Linux Kernel License: GPLv2 URL: http://www.kernel.org/ @@ -849,6 +849,53 @@ fi %endif %changelog +* Tue Dec 12 2023 YunYi Yang - 4.19.90-2312.3.0.0256 +- !3347 tun: avoid double free in tun_free_netdev +- tun: avoid double free in tun_free_netdev +- !3239 net: hns: fix fake link up +- !3113 KVM: arm64: limit PMU version to PMUv3 for ARMv8.1 +- !3281 LTS patch backport +- !3122 nvme: retain split access workaround for capability reads +- !3262 icmp: Fix a data-race around sysctl_icmp_errors_use_inbound_ifaddr. +- net: fix kabi broken in struct netns_xfrm +- xfrm: fix a data-race in xfrm_gen_index() +- !3276 linux-4.19.y inclusion +- !3263 workqueue: Override implicit ordered attribute in workqueue_apply_unbound_cpumask() +- !3267 x86/cpu: Fix AMD erratum #1485 on Zen4-based CPUs +- dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses. +- can: dev: can_restart(): fix race condition between controller restart and netif_carrier_on() +- can: dev: can_restart(): don't crash kernel if carrier is OK +- can: dev: move driver related infrastructure into separate subdir +- ipv6: avoid atomic fragment on GSO packets +- tcp_metrics: do not create an entry from tcp_init_metrics() +- tcp_metrics: properly set tp->snd_ssthresh in tcp_init_metrics() +- tcp_metrics: add missing barriers on delete +- tcp: tsq: relax tcp_small_queue_check() when rtx queue contains a single skb +- tcp: fix excessive TLP and RACK timeouts from HZ rounding +- genirq/matrix: Exclude managed interrupts in irq_matrix_allocated() +- ACPI: sysfs: Fix create_pnp_modalias() and create_of_modalias() +- ACPI: irq: Fix incorrect return value in acpi_register_gsi() +- ext4: move 'ix' sanity check to corrent position +- vfs: fix readahead(2) on block devices +- overlayfs: set ctime when setting mtime and atime +- quota: Fix slow quotaoff +- mcb: remove is_added flag from mcb_device struct +- sched,idle,rcu: Push rcu_idle deeper into the idle path +- cgroup: Remove duplicates in cgroup v1 tasks file +- x86/cpu: Fix AMD erratum #1485 on Zen4-based CPUs +- workqueue: Override implicit ordered attribute in workqueue_apply_unbound_cpumask() +- icmp: Fix a data-race around sysctl_icmp_errors_use_inbound_ifaddr. +- net: hns: update hns version to 23.12.1 +- net: hns: fix fake link up on xge port +- !3021 fix CFS bandwidth vs. hrtimer self deadlock +- !3202 regmap: fix NULL deref on lookup +- regmap: fix NULL deref on lookup +- KVM: arm64: limit PMU version to PMUv3 for ARMv8.1 +- arm64: cpufeature: Extract capped perfmon fields +- nvme: retain split access workaround for capability reads +- cpu/hotplug: fix kabi breakage in enum cpuhp_state +- hrtimers: Push pending hrtimers away from outgoing CPU earlier + * Wed Dec 06 2023 YunYi Yang - 4.19.90-2312.1.0.0255 - !3158 mm: don't let userspace spam allocations warnings - mm: don't let userspace spam allocations warnings diff --git a/patches/0041-drivers-perf-Add-support-for-ARMv8.3-SPE.patch b/patches/0041-drivers-perf-Add-support-for-ARMv8.3-SPE.patch index 6d7a692..72c71b7 100644 --- a/patches/0041-drivers-perf-Add-support-for-ARMv8.3-SPE.patch +++ b/patches/0041-drivers-perf-Add-support-for-ARMv8.3-SPE.patch @@ -35,12 +35,12 @@ Reviewed-by: Shaokun Zhang Signed-off-by: Zheng Zengkai Signed-off-by: hongrongxuan --- - arch/arm64/include/asm/sysreg.h | 9 ++++++++- + arch/arm64/include/asm/sysreg.h | 8 +++++++- drivers/perf/arm_spe_pmu.c | 17 +++++++++++++++-- - 2 files changed, 23 insertions(+), 3 deletions(-) + 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h -index 0fd51d253648..f993af239247 100644 +index 242273a04af9..4a3427c2feb5 100644 --- a/arch/arm64/include/asm/sysreg.h +++ b/arch/arm64/include/asm/sysreg.h @@ -252,7 +252,11 @@ @@ -56,16 +56,15 @@ index 0fd51d253648..f993af239247 100644 #define SYS_PMSLATFR_EL1 sys_reg(3, 0, 9, 9, 6) #define SYS_PMSLATFR_EL1_MINLAT_SHIFT 0 -@@ -619,6 +623,9 @@ - #define ID_AA64DFR0_TRACEVER_SHIFT 4 +@@ -620,6 +624,8 @@ #define ID_AA64DFR0_DEBUGVER_SHIFT 0 -+#define ID_AA64DFR0_PMSVER_8_2 0x1 -+#define ID_AA64DFR0_PMSVER_8_3 0x2 -+ - #define ID_ISAR5_RDM_SHIFT 24 - #define ID_ISAR5_CRC32_SHIFT 16 - #define ID_ISAR5_SHA2_SHIFT 12 + #define ID_AA64DFR0_PMUVER_8_1 0x4 ++#define ID_AA64DFR0_PMSVER_8_2 0x1 ++#define ID_AA64DFR0_PMSVER_8_3 0x2 + + #define ID_DFR0_PERFMON_SHIFT 24 + diff --git a/drivers/perf/arm_spe_pmu.c b/drivers/perf/arm_spe_pmu.c index af84f3a61e96..74318410774c 100644 --- a/drivers/perf/arm_spe_pmu.c diff --git a/patches/0758-arm64-cpufeature-Extract-capped-perfmon-fields.patch b/patches/0758-arm64-cpufeature-Extract-capped-perfmon-fields.patch deleted file mode 100644 index de1db70..0000000 --- a/patches/0758-arm64-cpufeature-Extract-capped-perfmon-fields.patch +++ /dev/null @@ -1,80 +0,0 @@ -From a207eaeac98757a86cce704be6c4e097439503c5 Mon Sep 17 00:00:00 2001 -From: Andrew Murray -Date: Tue, 28 Nov 2023 15:46:32 +0800 -Subject: [PATCH 1/2] arm64: cpufeature: Extract capped perfmon fields - -mainline inclusion -from mainline-v5.7-rc1 -commit 8e35aa642ee4dab01b16cc4b2df59d1936f3b3c2 -category: bugfix -bugzilla: https://gitee.com/openeuler/kernel/issues/I8K8XV -CVE: NA - -Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8e35aa642ee4dab01b16cc4b2df59d1936f3b3c2 - ------------------------------------ - -commit 8e35aa642ee4dab01b16cc4b2df59d1936f3b3c2 upstream. - -When emulating ID registers there is often a need to cap the version -bits of a feature such that the guest will not use features that the -host is not aware of. For example, when KVM mediates access to the PMU -by emulating register accesses. - -Let's add a helper that extracts a performance monitors ID field and -caps the version to a given value. - -Fields that identify the version of the Performance Monitors Extension -do not follow the standard ID scheme, and instead follow the scheme -described in ARM DDI 0487E.a page D13-2825 "Alternative ID scheme used -for the Performance Monitors Extension version". The value 0xF means an -IMPLEMENTATION DEFINED PMU is present, and values 0x0-OxE can be treated -the same as an unsigned field with 0x0 meaning no PMU is present. - -Signed-off-by: Andrew Murray -Reviewed-by: Suzuki K Poulose -[Mark: rework to handle perfmon fields] -Signed-off-by: Mark Rutland -Signed-off-by: Will Deacon -Signed-off-by: zhangyuan ---- - arch/arm64/include/asm/cpufeature.h | 23 +++++++++++++++++++++++ - 1 file changed, 23 insertions(+) - -diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h -index eef5a9c9b823..e2ba573644d5 100644 ---- a/arch/arm64/include/asm/cpufeature.h -+++ b/arch/arm64/include/asm/cpufeature.h -@@ -449,6 +449,29 @@ cpuid_feature_extract_unsigned_field(u64 features, int field) - return cpuid_feature_extract_unsigned_field_width(features, field, 4); - } - -+/* -+ * Fields that identify the version of the Performance Monitors Extension do -+ * not follow the standard ID scheme. See ARM DDI 0487E.a page D13-2825, -+ * "Alternative ID scheme used for the Performance Monitors Extension version". -+ */ -+static inline u64 __attribute_const__ -+cpuid_feature_cap_perfmon_field(u64 features, int field, u64 cap) -+{ -+ u64 val = cpuid_feature_extract_unsigned_field(features, field); -+ u64 mask = GENMASK_ULL(field + 3, field); -+ -+ /* Treat IMPLEMENTATION DEFINED functionality as unimplemented */ -+ if (val == 0xf) -+ val = 0; -+ -+ if (val > cap) { -+ features &= ~mask; -+ features |= (cap << field) & mask; -+ } -+ -+ return features; -+} -+ - static inline u64 arm64_ftr_mask(const struct arm64_ftr_bits *ftrp) - { - return (u64)GENMASK(ftrp->shift + ftrp->width - 1, ftrp->shift); --- -2.33.0 - diff --git a/patches/0759-KVM-arm64-limit-PMU-version-to-PMUv3-for-ARMv8.1.patch b/patches/0759-KVM-arm64-limit-PMU-version-to-PMUv3-for-ARMv8.1.patch deleted file mode 100644 index 4c82fc0..0000000 --- a/patches/0759-KVM-arm64-limit-PMU-version-to-PMUv3-for-ARMv8.1.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 6a416c5efa3ce99f5f0f7e9c603b42b0e047481c Mon Sep 17 00:00:00 2001 -From: Andrew Murray -Date: Tue, 28 Nov 2023 15:46:33 +0800 -Subject: [PATCH 2/2] KVM: arm64: limit PMU version to PMUv3 for ARMv8.1 - -mainline inclusion -from mainline-v5.7-rc1 -commit c854188ea01062f5a5fd7f05658feb1863774eaa -category: bugfix -bugzilla: https://gitee.com/openeuler/kernel/issues/I8K8XV -CVE: NA - -Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c854188ea01062f5a5fd7f05658feb1863774eaa - ------------------------------------ - -commit c854188ea01062f5a5fd7f05658feb1863774eaa upstream. - -We currently expose the PMU version of the host to the guest via -emulation of the DFR0_EL1 and AA64DFR0_EL1 debug feature registers. -However many of the features offered beyond PMUv3 for 8.1 are not -supported in KVM. Examples of this include support for the PMMIR -registers (added in PMUv3 for ARMv8.4) and 64-bit event counters -added in (PMUv3 for ARMv8.5). - -Let's trap the Debug Feature Registers in order to limit -PMUVer/PerfMon in the Debug Feature Registers to PMUv3 for ARMv8.1 -to avoid unexpected behaviour. - -Both ID_AA64DFR0.PMUVer and ID_DFR0.PerfMon follow the "Alternative ID -scheme used for the Performance Monitors Extension version" where 0xF -means an IMPLEMENTATION DEFINED PMU is implemented, and values 0x0-0xE -are treated as with an unsigned field (with 0x0 meaning no PMU is -present). As we don't expect to expose an IMPLEMENTATION DEFINED PMU, -and our cap is below 0xF, we can treat these fields as unsigned when -applying the cap. - -Signed-off-by: Andrew Murray -Reviewed-by: Suzuki K Poulose -[Mark: make field names consistent, use perfmon cap] -Signed-off-by: Mark Rutland -Signed-off-by: Will Deacon -Signed-off-by: zhangyuan ---- - arch/arm64/include/asm/sysreg.h | 6 ++++++ - arch/arm64/kvm/sys_regs.c | 10 ++++++++++ - 2 files changed, 16 insertions(+) - -diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h -index de4c31f073bb..041100c28cab 100644 ---- a/arch/arm64/include/asm/sysreg.h -+++ b/arch/arm64/include/asm/sysreg.h -@@ -637,6 +637,12 @@ - #define ID_AA64DFR0_TRACEVER_SHIFT 4 - #define ID_AA64DFR0_DEBUGVER_SHIFT 0 - -+#define ID_AA64DFR0_PMUVER_8_1 0x4 -+ -+#define ID_DFR0_PERFMON_SHIFT 24 -+ -+#define ID_DFR0_PERFMON_8_1 0x4 -+ - #define ID_AA64DFR0_PMSVER_8_2 0x1 - #define ID_AA64DFR0_PMSVER_8_3 0x2 - -diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c -index 25caa9ec95e4..cc824a208684 100644 ---- a/arch/arm64/kvm/sys_regs.c -+++ b/arch/arm64/kvm/sys_regs.c -@@ -1082,6 +1082,16 @@ static u64 read_id_reg(struct kvm_vcpu *vcpu, - kvm_debug("LORegions unsupported for guests, suppressing\n"); - - val &= ~(0xfUL << ID_AA64MMFR1_LOR_SHIFT); -+ } else if (id == SYS_ID_AA64DFR0_EL1) { -+ /* Limit guests to PMUv3 for ARMv8.1 */ -+ val = cpuid_feature_cap_perfmon_field(val, -+ ID_AA64DFR0_PMUVER_SHIFT, -+ ID_AA64DFR0_PMUVER_8_1); -+ } else if (id == SYS_ID_DFR0_EL1) { -+ /* Limit guests to PMUv3 for ARMv8.1 */ -+ val = cpuid_feature_cap_perfmon_field(val, -+ ID_DFR0_PERFMON_SHIFT, -+ ID_DFR0_PERFMON_8_1); - } - - return val; --- -2.33.0 - diff --git a/series.conf b/series.conf index b8e15c3..f5f2522 100644 --- a/series.conf +++ b/series.conf @@ -758,5 +758,3 @@ patches/0754-scsi-hisi_sas_v3_hw-Remove-extra-function-calls-for-.patch patches/0755-config-arm64-Enable-dubugfs-config-of-hisi-sas.patch patches/0756-crypto-hisilicon-Add-value-profile-support-for-kerne.patch patches/0757-Revert-genirq-Increase-the-number-of-IRQ-descriptors.patch -patches/0758-arm64-cpufeature-Extract-capped-perfmon-fields.patch -patches/0759-KVM-arm64-limit-PMU-version-to-PMUv3-for-ARMv8.1.patch