release 4.19.90-2312.3.0
This commit is contained in:
parent
1b6879cbe4
commit
cf52222066
51
kernel.spec
51
kernel.spec
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
%global KernelVer %{version}-%{release}.%{_target_cpu}
|
%global KernelVer %{version}-%{release}.%{_target_cpu}
|
||||||
|
|
||||||
%global hulkrelease 2312.1.0
|
%global hulkrelease 2312.3.0
|
||||||
|
|
||||||
%define with_patch 1
|
%define with_patch 1
|
||||||
|
|
||||||
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
Name: kernel
|
Name: kernel
|
||||||
Version: 4.19.90
|
Version: 4.19.90
|
||||||
Release: %{hulkrelease}.0255
|
Release: %{hulkrelease}.0256
|
||||||
Summary: Linux Kernel
|
Summary: Linux Kernel
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
URL: http://www.kernel.org/
|
URL: http://www.kernel.org/
|
||||||
@ -849,6 +849,53 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Dec 12 2023 YunYi Yang <yangyunyi2@huawei.com> - 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 <yangyunyi2@huawei.com> - 4.19.90-2312.1.0.0255
|
* Wed Dec 06 2023 YunYi Yang <yangyunyi2@huawei.com> - 4.19.90-2312.1.0.0255
|
||||||
- !3158 mm: don't let userspace spam allocations warnings
|
- !3158 mm: don't let userspace spam allocations warnings
|
||||||
- mm: don't let userspace spam allocations warnings
|
- mm: don't let userspace spam allocations warnings
|
||||||
|
|||||||
@ -35,12 +35,12 @@ Reviewed-by: Shaokun Zhang <zhangshaokun@hisilicon.com>
|
|||||||
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
|
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
|
||||||
Signed-off-by: hongrongxuan <hongrongxuan@huawei.com>
|
Signed-off-by: hongrongxuan <hongrongxuan@huawei.com>
|
||||||
---
|
---
|
||||||
arch/arm64/include/asm/sysreg.h | 9 ++++++++-
|
arch/arm64/include/asm/sysreg.h | 8 +++++++-
|
||||||
drivers/perf/arm_spe_pmu.c | 17 +++++++++++++++--
|
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
|
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
|
--- a/arch/arm64/include/asm/sysreg.h
|
||||||
+++ b/arch/arm64/include/asm/sysreg.h
|
+++ b/arch/arm64/include/asm/sysreg.h
|
||||||
@@ -252,7 +252,11 @@
|
@@ -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 sys_reg(3, 0, 9, 9, 6)
|
||||||
#define SYS_PMSLATFR_EL1_MINLAT_SHIFT 0
|
#define SYS_PMSLATFR_EL1_MINLAT_SHIFT 0
|
||||||
@@ -619,6 +623,9 @@
|
@@ -620,6 +624,8 @@
|
||||||
#define ID_AA64DFR0_TRACEVER_SHIFT 4
|
|
||||||
#define ID_AA64DFR0_DEBUGVER_SHIFT 0
|
#define ID_AA64DFR0_DEBUGVER_SHIFT 0
|
||||||
|
|
||||||
+#define ID_AA64DFR0_PMSVER_8_2 0x1
|
#define ID_AA64DFR0_PMUVER_8_1 0x4
|
||||||
+#define ID_AA64DFR0_PMSVER_8_3 0x2
|
+#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_DFR0_PERFMON_SHIFT 24
|
||||||
#define ID_ISAR5_SHA2_SHIFT 12
|
|
||||||
diff --git a/drivers/perf/arm_spe_pmu.c b/drivers/perf/arm_spe_pmu.c
|
diff --git a/drivers/perf/arm_spe_pmu.c b/drivers/perf/arm_spe_pmu.c
|
||||||
index af84f3a61e96..74318410774c 100644
|
index af84f3a61e96..74318410774c 100644
|
||||||
--- a/drivers/perf/arm_spe_pmu.c
|
--- a/drivers/perf/arm_spe_pmu.c
|
||||||
|
|||||||
@ -1,80 +0,0 @@
|
|||||||
From a207eaeac98757a86cce704be6c4e097439503c5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andrew Murray <andrew.murray@arm.com>
|
|
||||||
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 <andrew.murray@arm.com>
|
|
||||||
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
|
|
||||||
[Mark: rework to handle perfmon fields]
|
|
||||||
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
|
|
||||||
Signed-off-by: Will Deacon <will@kernel.org>
|
|
||||||
Signed-off-by: zhangyuan <zhangyuan162@huawei.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
||||||
@ -1,89 +0,0 @@
|
|||||||
From 6a416c5efa3ce99f5f0f7e9c603b42b0e047481c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andrew Murray <andrew.murray@arm.com>
|
|
||||||
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 <andrew.murray@arm.com>
|
|
||||||
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
|
|
||||||
[Mark: make field names consistent, use perfmon cap]
|
|
||||||
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
|
|
||||||
Signed-off-by: Will Deacon <will@kernel.org>
|
|
||||||
Signed-off-by: zhangyuan <zhangyuan162@huawei.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
||||||
@ -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/0755-config-arm64-Enable-dubugfs-config-of-hisi-sas.patch
|
||||||
patches/0756-crypto-hisilicon-Add-value-profile-support-for-kerne.patch
|
patches/0756-crypto-hisilicon-Add-value-profile-support-for-kerne.patch
|
||||||
patches/0757-Revert-genirq-Increase-the-number-of-IRQ-descriptors.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
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user