2019-05-15 13:47:13

by Arun KS

[permalink] [raw]
Subject: [PATCH v1] arm64: Fix size of __early_cpu_boot_status

__early_cpu_boot_status is of type int. Fix up the calls to
update_early_cpu_boot_status, to use a w register.

Signed-off-by: Arun KS <[email protected]>
Acked-by: Mark Rutland <[email protected]>
---
arch/arm64/include/asm/smp.h | 2 +-
arch/arm64/kernel/head.S | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/include/asm/smp.h b/arch/arm64/include/asm/smp.h
index 18553f3..59e80ab 100644
--- a/arch/arm64/include/asm/smp.h
+++ b/arch/arm64/include/asm/smp.h
@@ -96,7 +96,7 @@ struct secondary_data {
};

extern struct secondary_data secondary_data;
-extern long __early_cpu_boot_status;
+extern int __early_cpu_boot_status;
extern void secondary_entry(void);

extern void arch_send_call_function_single_ipi(int cpu);
diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S
index fcae3f8..c7175fb 100644
--- a/arch/arm64/kernel/head.S
+++ b/arch/arm64/kernel/head.S
@@ -778,7 +778,7 @@ ENTRY(__enable_mmu)
ubfx x2, x2, #ID_AA64MMFR0_TGRAN_SHIFT, 4
cmp x2, #ID_AA64MMFR0_TGRAN_SUPPORTED
b.ne __no_granule_support
- update_early_cpu_boot_status 0, x2, x3
+ update_early_cpu_boot_status 0, x2, w3
adrp x2, idmap_pg_dir
phys_to_ttbr x1, x1
phys_to_ttbr x2, x2
@@ -810,7 +810,7 @@ ENTRY(__cpu_secondary_check52bitva)
cbnz x0, 2f

update_early_cpu_boot_status \
- CPU_STUCK_IN_KERNEL | CPU_STUCK_REASON_52_BIT_VA, x0, x1
+ CPU_STUCK_IN_KERNEL | CPU_STUCK_REASON_52_BIT_VA, x0, w1
1: wfe
wfi
b 1b
@@ -822,7 +822,7 @@ ENDPROC(__cpu_secondary_check52bitva)
__no_granule_support:
/* Indicate that this CPU can't boot and is stuck in the kernel */
update_early_cpu_boot_status \
- CPU_STUCK_IN_KERNEL | CPU_STUCK_REASON_NO_GRAN, x1, x2
+ CPU_STUCK_IN_KERNEL | CPU_STUCK_REASON_NO_GRAN, x1, w2
1:
wfe
wfi
--
1.9.1


2019-05-15 13:52:17

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH v1] arm64: Fix size of __early_cpu_boot_status

On Wed, May 15, 2019 at 07:13:19PM +0530, Arun KS wrote:
> __early_cpu_boot_status is of type int. Fix up the calls to
> update_early_cpu_boot_status, to use a w register.
>
> Signed-off-by: Arun KS <[email protected]>
> Acked-by: Mark Rutland <[email protected]>
> ---
> arch/arm64/include/asm/smp.h | 2 +-
> arch/arm64/kernel/head.S | 6 +++---
> 2 files changed, 4 insertions(+), 4 deletions(-)

Your original patch is now in mainline:

https://git.kernel.org/linus/61cf61d81e32

Is this still needed?

Will

2019-05-16 03:31:08

by Arun KS

[permalink] [raw]
Subject: Re: [PATCH v1] arm64: Fix size of __early_cpu_boot_status

On Wed, May 15, 2019 at 7:20 PM Will Deacon <[email protected]> wrote:
>
> On Wed, May 15, 2019 at 07:13:19PM +0530, Arun KS wrote:
> > __early_cpu_boot_status is of type int. Fix up the calls to
> > update_early_cpu_boot_status, to use a w register.
> >
> > Signed-off-by: Arun KS <[email protected]>
> > Acked-by: Mark Rutland <[email protected]>
> > ---
> > arch/arm64/include/asm/smp.h | 2 +-
> > arch/arm64/kernel/head.S | 6 +++---
> > 2 files changed, 4 insertions(+), 4 deletions(-)
>
> Your original patch is now in mainline:
>
> https://git.kernel.org/linus/61cf61d81e32
>
> Is this still needed?
Thanks for pointing that out. We can ignore this patch.

Regards,
Arun
>
> Will