diff mbox

[v2] arm64: kpti: Use early_param for kpti= command-line option

Message ID 1529659525-21340-1-git-send-email-will.deacon@arm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Will Deacon June 22, 2018, 9:25 a.m. UTC
We inspect __kpti_forced early on as part of the cpufeature enable
callback which remaps the swapper page table using non-global entries.

Ensure that __kpti_forced has been updated to reflect the kpti=
command-line option before we start using it.

Reported-by: Wei Xu <xuwei5@hisilicon.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
---

v1->v2: Fix typo (remove '=' from option)

 arch/arm64/kernel/cpufeature.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Sudeep Holla June 22, 2018, 10:25 a.m. UTC | #1
On 22/06/18 10:25, Will Deacon wrote:
> We inspect __kpti_forced early on as part of the cpufeature enable
> callback which remaps the swapper page table using non-global entries.
> 
> Ensure that __kpti_forced has been updated to reflect the kpti=
> command-line option before we start using it.
> 

This also fixes the case where SPE driver complains about missing
kpti=off even when it's present as __setup parse kpti only after
boot CPU detects and marks ARM64_UNMAP_KERNEL_AT_EL0 capability.

Tested-by: Sudeep Holla <sudeep.holla@arm.com>
Wei Xu June 22, 2018, 10:47 a.m. UTC | #2
Hi Will,

On 2018/6/22 17:25, Will Deacon wrote:
> We inspect __kpti_forced early on as part of the cpufeature enable
> callback which remaps the swapper page table using non-global entries.
>
> Ensure that __kpti_forced has been updated to reflect the kpti=
> command-line option before we start using it.
>
> Reported-by: Wei Xu <xuwei5@hisilicon.com>
> Signed-off-by: Will Deacon <will.deacon@arm.com>
Thanks!
Tested and works on a hisilicon platform.

Tested-by: Wei Xu <xuwei5@hisilicon.com>

Best Regards,
Wei

> ---
>
> v1->v2: Fix typo (remove '=' from option)
>
>   arch/arm64/kernel/cpufeature.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
> index d2856b129097..f24892a40d2c 100644
> --- a/arch/arm64/kernel/cpufeature.c
> +++ b/arch/arm64/kernel/cpufeature.c
> @@ -937,7 +937,7 @@ static int __init parse_kpti(char *str)
>   	__kpti_forced = enabled ? 1 : -1;
>   	return 0;
>   }
> -__setup("kpti=", parse_kpti);
> +early_param("kpti", parse_kpti);
>   #endif	/* CONFIG_UNMAP_KERNEL_AT_EL0 */
>   
>   #ifdef CONFIG_ARM64_HW_AFDBM
Catalin Marinas June 22, 2018, 4:17 p.m. UTC | #3
On Fri, Jun 22, 2018 at 10:25:25AM +0100, Will Deacon wrote:
> We inspect __kpti_forced early on as part of the cpufeature enable
> callback which remaps the swapper page table using non-global entries.
> 
> Ensure that __kpti_forced has been updated to reflect the kpti=
> command-line option before we start using it.
> 
> Reported-by: Wei Xu <xuwei5@hisilicon.com>
> Signed-off-by: Will Deacon <will.deacon@arm.com>

Applied. Thanks.
diff mbox

Patch

diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
index d2856b129097..f24892a40d2c 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -937,7 +937,7 @@  static int __init parse_kpti(char *str)
 	__kpti_forced = enabled ? 1 : -1;
 	return 0;
 }
-__setup("kpti=", parse_kpti);
+early_param("kpti", parse_kpti);
 #endif	/* CONFIG_UNMAP_KERNEL_AT_EL0 */
 
 #ifdef CONFIG_ARM64_HW_AFDBM