• Suzuki K Poulose's avatar
    arm64: cpufeature: Fix the type of no FP/SIMD capability · 449443c0
    Suzuki K Poulose authored
    The NO_FPSIMD capability is defined with scope SYSTEM, which implies
    that the "absence" of FP/SIMD on at least one CPU is detected only
    after all the SMP CPUs are brought up. However, we use the status
    of this capability for every context switch. So, let us change
    the scope to LOCAL_CPU to allow the detection of this capability
    as and when the first CPU without FP is brought up.
    
    Also, the current type allows hotplugged CPU to be brought up without
    FP/SIMD when all the current CPUs have FP/SIMD and we have the userspace
    up. Fix both of these issues by changing the capability to
    BOOT_RESTRICTED_LOCAL_CPU_FEATURE.
    
    Fixes: 82e0191a ("arm64: Support systems without FP/ASIMD")
    Cc: Will Deacon <will@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Reviewed-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: default avatarWill Deacon <will@kernel.org>
    449443c0
cpufeature.c 69.6 KB