mirror of https://gitee.com/openkylin/linux.git
arm64 fixes:
- Mitigate Spectre-v2 for NVIDIA Denver CPUs - Free memblocks corresponding to freed initrd area -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABCgAGBQJa9bgsAAoJELescNyEwWM0yYwIAKvMuUU8d6fy/5EdjTm2uG9p DoSw+ezHeiUrphQwNvOc/fj0vGutM+sftcmghRV1KmP7lvAqk/zvK57PAZjwQ5ua i1X2AJemKr7Gs77FV5Y6Jgkkd2kaIh3n86d9/hM7n9TfAt31vPAYCapb8h3LbRBJ bjZXoTHeujZAIMLGyxzLGVlk9MdW2UjQ3LvWGby/mFEPuktJKkApxBSNQOJOuRKw Ny/eCwFhbyLzDA4zXw7hASld/J+WWBhk0m8ks2qy7BD/F2auZX/p5flU/NoE1VXi JevclGif18iQtZQRV/hJ1woLROfbp6cRKWaVB4cEFKSnB2mG6FLSfrYyvbCj6LE= =lZDP -----END PGP SIGNATURE----- Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "There's a small memblock accounting problem when freeing the initrd and a Spectre-v2 mitigation for NVIDIA Denver CPUs which just requires a match on the CPU ID register. Summary: - Mitigate Spectre-v2 for NVIDIA Denver CPUs - Free memblocks corresponding to freed initrd area" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: capabilities: Add NVIDIA Denver CPU to bp_harden list arm64: Add MIDR encoding for NVIDIA CPUs arm64: To remove initrd reserved area entry from memblock
This commit is contained in:
commit
7404bc2773
|
@ -75,6 +75,7 @@
|
||||||
#define ARM_CPU_IMP_CAVIUM 0x43
|
#define ARM_CPU_IMP_CAVIUM 0x43
|
||||||
#define ARM_CPU_IMP_BRCM 0x42
|
#define ARM_CPU_IMP_BRCM 0x42
|
||||||
#define ARM_CPU_IMP_QCOM 0x51
|
#define ARM_CPU_IMP_QCOM 0x51
|
||||||
|
#define ARM_CPU_IMP_NVIDIA 0x4E
|
||||||
|
|
||||||
#define ARM_CPU_PART_AEM_V8 0xD0F
|
#define ARM_CPU_PART_AEM_V8 0xD0F
|
||||||
#define ARM_CPU_PART_FOUNDATION 0xD00
|
#define ARM_CPU_PART_FOUNDATION 0xD00
|
||||||
|
@ -99,6 +100,9 @@
|
||||||
#define QCOM_CPU_PART_FALKOR 0xC00
|
#define QCOM_CPU_PART_FALKOR 0xC00
|
||||||
#define QCOM_CPU_PART_KRYO 0x200
|
#define QCOM_CPU_PART_KRYO 0x200
|
||||||
|
|
||||||
|
#define NVIDIA_CPU_PART_DENVER 0x003
|
||||||
|
#define NVIDIA_CPU_PART_CARMEL 0x004
|
||||||
|
|
||||||
#define MIDR_CORTEX_A53 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A53)
|
#define MIDR_CORTEX_A53 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A53)
|
||||||
#define MIDR_CORTEX_A57 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A57)
|
#define MIDR_CORTEX_A57 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A57)
|
||||||
#define MIDR_CORTEX_A72 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A72)
|
#define MIDR_CORTEX_A72 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A72)
|
||||||
|
@ -114,6 +118,8 @@
|
||||||
#define MIDR_QCOM_FALKOR_V1 MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_FALKOR_V1)
|
#define MIDR_QCOM_FALKOR_V1 MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_FALKOR_V1)
|
||||||
#define MIDR_QCOM_FALKOR MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_FALKOR)
|
#define MIDR_QCOM_FALKOR MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_FALKOR)
|
||||||
#define MIDR_QCOM_KRYO MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO)
|
#define MIDR_QCOM_KRYO MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO)
|
||||||
|
#define MIDR_NVIDIA_DENVER MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_DENVER)
|
||||||
|
#define MIDR_NVIDIA_CARMEL MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_CARMEL)
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
|
|
||||||
|
|
|
@ -316,6 +316,7 @@ static const struct midr_range arm64_bp_harden_smccc_cpus[] = {
|
||||||
MIDR_ALL_VERSIONS(MIDR_CAVIUM_THUNDERX2),
|
MIDR_ALL_VERSIONS(MIDR_CAVIUM_THUNDERX2),
|
||||||
MIDR_ALL_VERSIONS(MIDR_QCOM_FALKOR_V1),
|
MIDR_ALL_VERSIONS(MIDR_QCOM_FALKOR_V1),
|
||||||
MIDR_ALL_VERSIONS(MIDR_QCOM_FALKOR),
|
MIDR_ALL_VERSIONS(MIDR_QCOM_FALKOR),
|
||||||
|
MIDR_ALL_VERSIONS(MIDR_NVIDIA_DENVER),
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -646,8 +646,10 @@ static int keep_initrd __initdata;
|
||||||
|
|
||||||
void __init free_initrd_mem(unsigned long start, unsigned long end)
|
void __init free_initrd_mem(unsigned long start, unsigned long end)
|
||||||
{
|
{
|
||||||
if (!keep_initrd)
|
if (!keep_initrd) {
|
||||||
free_reserved_area((void *)start, (void *)end, 0, "initrd");
|
free_reserved_area((void *)start, (void *)end, 0, "initrd");
|
||||||
|
memblock_free(__virt_to_phys(start), end - start);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init keepinitrd_setup(char *__unused)
|
static int __init keepinitrd_setup(char *__unused)
|
||||||
|
|
Loading…
Reference in New Issue