2018-02-19 06:41:04

by Bhupesh Sharma

[permalink] [raw]
Subject: [PATCH] arm64: Fix compilation error while accessing MPIDR_HWID_BITMASK from .S files

Since commit e1a50de37860b3a93a9d643b09638db5aff47650 (arm64: cputype:
Silence Sparse warnings), compilation of arm64 architecture is broken
with the following error messages:

AR arch/arm64/kernel/built-in.o
arch/arm64/kernel/head.S: Assembler messages:
arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
arch/arm64/kernel/head.S:677: Error: junk at end of line, first
unrecognized character is `L'
arch/arm64/kernel/head.S:677: Error: unexpected characters following
instruction at operand 2 -- `movz x1,:abs_g1_s:0xff00ffffffUL'
arch/arm64/kernel/head.S:677: Error: unexpected characters following
instruction at operand 2 -- `movk x1,:abs_g0_nc:0xff00ffffffUL'

This patch fixes the same by using the UL() macro correctly for
assigning the MPIDR_HWID_BITMASK macro value.

Signed-off-by: Bhupesh Sharma <[email protected]>
---
arch/arm64/include/asm/cputype.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
index eda8c5f629fc..350c76a1d15b 100644
--- a/arch/arm64/include/asm/cputype.h
+++ b/arch/arm64/include/asm/cputype.h
@@ -20,7 +20,7 @@

#define MPIDR_UP_BITMASK (0x1 << 30)
#define MPIDR_MT_BITMASK (0x1 << 24)
-#define MPIDR_HWID_BITMASK 0xff00ffffffUL
+#define MPIDR_HWID_BITMASK UL(0xff00ffffff)

#define MPIDR_LEVEL_BITS_SHIFT 3
#define MPIDR_LEVEL_BITS (1 << MPIDR_LEVEL_BITS_SHIFT)
--
2.7.4



2018-02-19 10:20:52

by John Garry

[permalink] [raw]
Subject: Re: [PATCH] arm64: Fix compilation error while accessing MPIDR_HWID_BITMASK from .S files

On 19/02/2018 06:39, Bhupesh Sharma wrote:
> Since commit e1a50de37860b3a93a9d643b09638db5aff47650 (arm64: cputype:
> Silence Sparse warnings), compilation of arm64 architecture is broken
> with the following error messages:
>
> AR arch/arm64/kernel/built-in.o
> arch/arm64/kernel/head.S: Assembler messages:
> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> arch/arm64/kernel/head.S:677: Error: junk at end of line, first
> unrecognized character is `L'
> arch/arm64/kernel/head.S:677: Error: unexpected characters following
> instruction at operand 2 -- `movz x1,:abs_g1_s:0xff00ffffffUL'
> arch/arm64/kernel/head.S:677: Error: unexpected characters following
> instruction at operand 2 -- `movk x1,:abs_g0_nc:0xff00ffffffUL'
>
> This patch fixes the same by using the UL() macro correctly for
> assigning the MPIDR_HWID_BITMASK macro value.
>
> Signed-off-by: Bhupesh Sharma <[email protected]>
> ---
> arch/arm64/include/asm/cputype.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
> index eda8c5f629fc..350c76a1d15b 100644
> --- a/arch/arm64/include/asm/cputype.h
> +++ b/arch/arm64/include/asm/cputype.h
> @@ -20,7 +20,7 @@
>
> #define MPIDR_UP_BITMASK (0x1 << 30)
> #define MPIDR_MT_BITMASK (0x1 << 24)
> -#define MPIDR_HWID_BITMASK 0xff00ffffffUL
> +#define MPIDR_HWID_BITMASK UL(0xff00ffffff)

Works for me.

FYI, I am using (old) gcc-linaro-4.8-2015.06-x86_64_aarch64.

Thanks,
John

>
> #define MPIDR_LEVEL_BITS_SHIFT 3
> #define MPIDR_LEVEL_BITS (1 << MPIDR_LEVEL_BITS_SHIFT)
>



2018-02-19 11:01:05

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] arm64: Fix compilation error while accessing MPIDR_HWID_BITMASK from .S files

On Mon, Feb 19, 2018 at 7:39 AM, Bhupesh Sharma <[email protected]> wrote:
> Since commit e1a50de37860b3a93a9d643b09638db5aff47650 (arm64: cputype:
> Silence Sparse warnings), compilation of arm64 architecture is broken
> with the following error messages:
>
> AR arch/arm64/kernel/built-in.o
> arch/arm64/kernel/head.S: Assembler messages:
> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> arch/arm64/kernel/head.S:677: Error: junk at end of line, first
> unrecognized character is `L'
> arch/arm64/kernel/head.S:677: Error: unexpected characters following
> instruction at operand 2 -- `movz x1,:abs_g1_s:0xff00ffffffUL'
> arch/arm64/kernel/head.S:677: Error: unexpected characters following
> instruction at operand 2 -- `movk x1,:abs_g0_nc:0xff00ffffffUL'
>
> This patch fixes the same by using the UL() macro correctly for
> assigning the MPIDR_HWID_BITMASK macro value.
>
> Signed-off-by: Bhupesh Sharma <[email protected]>

Saw the same thing in the kernelci report for linux-next.

Acked-by: Arnd Bergmann <[email protected]>

Note that when referencing a commit, it's best to abbreviate the commit
ID to the first 12 characters like "e1a50de37860". You can also a line like

Fixes: e1a50de37860 ("arm64: cputype: Silence Sparse warnings")

which is the standard format to describe such regressions.

Arnd

2018-02-19 11:03:28

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH] arm64: Fix compilation error while accessing MPIDR_HWID_BITMASK from .S files

Hi John,

On Mon, Feb 19, 2018 at 10:19:35AM +0000, John Garry wrote:
> On 19/02/2018 06:39, Bhupesh Sharma wrote:
> >Since commit e1a50de37860b3a93a9d643b09638db5aff47650 (arm64: cputype:
> >Silence Sparse warnings), compilation of arm64 architecture is broken
> >with the following error messages:
> >
> > AR arch/arm64/kernel/built-in.o
> > arch/arm64/kernel/head.S: Assembler messages:
> > arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> > arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> > arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> > arch/arm64/kernel/head.S:677: Error: junk at end of line, first
> > unrecognized character is `L'
> > arch/arm64/kernel/head.S:677: Error: unexpected characters following
> > instruction at operand 2 -- `movz x1,:abs_g1_s:0xff00ffffffUL'
> > arch/arm64/kernel/head.S:677: Error: unexpected characters following
> > instruction at operand 2 -- `movk x1,:abs_g0_nc:0xff00ffffffUL'
> >
> >This patch fixes the same by using the UL() macro correctly for
> >assigning the MPIDR_HWID_BITMASK macro value.
> >
> >Signed-off-by: Bhupesh Sharma <[email protected]>
> >---
> > arch/arm64/include/asm/cputype.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> >diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
> >index eda8c5f629fc..350c76a1d15b 100644
> >--- a/arch/arm64/include/asm/cputype.h
> >+++ b/arch/arm64/include/asm/cputype.h
> >@@ -20,7 +20,7 @@
> >
> > #define MPIDR_UP_BITMASK (0x1 << 30)
> > #define MPIDR_MT_BITMASK (0x1 << 24)
> >-#define MPIDR_HWID_BITMASK 0xff00ffffffUL
> >+#define MPIDR_HWID_BITMASK UL(0xff00ffffff)
>
> Works for me.
>
> FYI, I am using (old) gcc-linaro-4.8-2015.06-x86_64_aarch64.

Just to confirm: are you saying that this patch fixes the build for you,
or that mainline builds for you and the patch is not needed?

Cheers,

Will

2018-02-19 11:13:51

by John Garry

[permalink] [raw]
Subject: Re: [PATCH] arm64: Fix compilation error while accessing MPIDR_HWID_BITMASK from .S files

On 19/02/2018 11:02, Will Deacon wrote:
> Hi John,
>
> On Mon, Feb 19, 2018 at 10:19:35AM +0000, John Garry wrote:
>> On 19/02/2018 06:39, Bhupesh Sharma wrote:
>>> Since commit e1a50de37860b3a93a9d643b09638db5aff47650 (arm64: cputype:
>>> Silence Sparse warnings), compilation of arm64 architecture is broken
>>> with the following error messages:
>>>
>>> AR arch/arm64/kernel/built-in.o
>>> arch/arm64/kernel/head.S: Assembler messages:
>>> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
>>> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
>>> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
>>> arch/arm64/kernel/head.S:677: Error: junk at end of line, first
>>> unrecognized character is `L'
>>> arch/arm64/kernel/head.S:677: Error: unexpected characters following
>>> instruction at operand 2 -- `movz x1,:abs_g1_s:0xff00ffffffUL'
>>> arch/arm64/kernel/head.S:677: Error: unexpected characters following
>>> instruction at operand 2 -- `movk x1,:abs_g0_nc:0xff00ffffffUL'
>>>
>>> This patch fixes the same by using the UL() macro correctly for
>>> assigning the MPIDR_HWID_BITMASK macro value.
>>>
>>> Signed-off-by: Bhupesh Sharma <[email protected]>
>>> ---
>>> arch/arm64/include/asm/cputype.h | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
>>> index eda8c5f629fc..350c76a1d15b 100644
>>> --- a/arch/arm64/include/asm/cputype.h
>>> +++ b/arch/arm64/include/asm/cputype.h
>>> @@ -20,7 +20,7 @@
>>>
>>> #define MPIDR_UP_BITMASK (0x1 << 30)
>>> #define MPIDR_MT_BITMASK (0x1 << 24)
>>> -#define MPIDR_HWID_BITMASK 0xff00ffffffUL
>>> +#define MPIDR_HWID_BITMASK UL(0xff00ffffff)
>>
>> Works for me.
>>
>> FYI, I am using (old) gcc-linaro-4.8-2015.06-x86_64_aarch64.
>
> Just to confirm: are you saying that this patch fixes the build for you,
> or that mainline builds for you and the patch is not needed?
>

Ah, what I said was ambigious.

I am saying that linux-next (20180219) is broken for me for the same
reason and this patch fixes it.

I didn't spot the kernelci message Arnd mentioned, so I just wanted to
mention the toolchain I used.

Cheers,
John

> Cheers,
>
> Will
>
> .
>



2018-02-19 11:19:52

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH] arm64: Fix compilation error while accessing MPIDR_HWID_BITMASK from .S files

On Mon, Feb 19, 2018 at 11:12:32AM +0000, John Garry wrote:
> On 19/02/2018 11:02, Will Deacon wrote:
> >Hi John,
> >
> >On Mon, Feb 19, 2018 at 10:19:35AM +0000, John Garry wrote:
> >>On 19/02/2018 06:39, Bhupesh Sharma wrote:
> >>>Since commit e1a50de37860b3a93a9d643b09638db5aff47650 (arm64: cputype:
> >>>Silence Sparse warnings), compilation of arm64 architecture is broken
> >>>with the following error messages:
> >>>
> >>> AR arch/arm64/kernel/built-in.o
> >>> arch/arm64/kernel/head.S: Assembler messages:
> >>> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> >>> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> >>> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> >>> arch/arm64/kernel/head.S:677: Error: junk at end of line, first
> >>> unrecognized character is `L'
> >>> arch/arm64/kernel/head.S:677: Error: unexpected characters following
> >>> instruction at operand 2 -- `movz x1,:abs_g1_s:0xff00ffffffUL'
> >>> arch/arm64/kernel/head.S:677: Error: unexpected characters following
> >>> instruction at operand 2 -- `movk x1,:abs_g0_nc:0xff00ffffffUL'
> >>>
> >>>This patch fixes the same by using the UL() macro correctly for
> >>>assigning the MPIDR_HWID_BITMASK macro value.
> >>>
> >>>Signed-off-by: Bhupesh Sharma <[email protected]>
> >>>---
> >>>arch/arm64/include/asm/cputype.h | 2 +-
> >>>1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>>diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
> >>>index eda8c5f629fc..350c76a1d15b 100644
> >>>--- a/arch/arm64/include/asm/cputype.h
> >>>+++ b/arch/arm64/include/asm/cputype.h
> >>>@@ -20,7 +20,7 @@
> >>>
> >>>#define MPIDR_UP_BITMASK (0x1 << 30)
> >>>#define MPIDR_MT_BITMASK (0x1 << 24)
> >>>-#define MPIDR_HWID_BITMASK 0xff00ffffffUL
> >>>+#define MPIDR_HWID_BITMASK UL(0xff00ffffff)
> >>
> >>Works for me.
> >>
> >>FYI, I am using (old) gcc-linaro-4.8-2015.06-x86_64_aarch64.
> >
> >Just to confirm: are you saying that this patch fixes the build for you,
> >or that mainline builds for you and the patch is not needed?
> >
>
> Ah, what I said was ambigious.
>
> I am saying that linux-next (20180219) is broken for me for the same reason
> and this patch fixes it.
>
> I didn't spot the kernelci message Arnd mentioned, so I just wanted to
> mention the toolchain I used.

Thanks for the clarification; Catalin -- can you pick this up for -rc3 please?

Will

2018-02-19 11:27:44

by Jan Glauber

[permalink] [raw]
Subject: Re: [PATCH] arm64: Fix compilation error while accessing MPIDR_HWID_BITMASK from .S files

Hi Will,

I just hit the same issue with 4.16-rc2. The patch makes it compilable
again.

--Jan

On Mon, Feb 19, 2018 at 11:02:39AM +0000, Will Deacon wrote:
> Hi John,
>
> On Mon, Feb 19, 2018 at 10:19:35AM +0000, John Garry wrote:
> > On 19/02/2018 06:39, Bhupesh Sharma wrote:
> > >Since commit e1a50de37860b3a93a9d643b09638db5aff47650 (arm64: cputype:
> > >Silence Sparse warnings), compilation of arm64 architecture is broken
> > >with the following error messages:
> > >
> > > AR arch/arm64/kernel/built-in.o
> > > arch/arm64/kernel/head.S: Assembler messages:
> > > arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> > > arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> > > arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> > > arch/arm64/kernel/head.S:677: Error: junk at end of line, first
> > > unrecognized character is `L'
> > > arch/arm64/kernel/head.S:677: Error: unexpected characters following
> > > instruction at operand 2 -- `movz x1,:abs_g1_s:0xff00ffffffUL'
> > > arch/arm64/kernel/head.S:677: Error: unexpected characters following
> > > instruction at operand 2 -- `movk x1,:abs_g0_nc:0xff00ffffffUL'
> > >
> > >This patch fixes the same by using the UL() macro correctly for
> > >assigning the MPIDR_HWID_BITMASK macro value.
> > >
> > >Signed-off-by: Bhupesh Sharma <[email protected]>
> > >---
> > > arch/arm64/include/asm/cputype.h | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > >diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
> > >index eda8c5f629fc..350c76a1d15b 100644
> > >--- a/arch/arm64/include/asm/cputype.h
> > >+++ b/arch/arm64/include/asm/cputype.h
> > >@@ -20,7 +20,7 @@
> > >
> > > #define MPIDR_UP_BITMASK (0x1 << 30)
> > > #define MPIDR_MT_BITMASK (0x1 << 24)
> > >-#define MPIDR_HWID_BITMASK 0xff00ffffffUL
> > >+#define MPIDR_HWID_BITMASK UL(0xff00ffffff)
> >
> > Works for me.
> >
> > FYI, I am using (old) gcc-linaro-4.8-2015.06-x86_64_aarch64.
>
> Just to confirm: are you saying that this patch fixes the build for you,
> or that mainline builds for you and the patch is not needed?
>
> Cheers,
>
> Will
>
> _______________________________________________
> linux-arm-kernel mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

2018-02-19 12:10:45

by Robin Murphy

[permalink] [raw]
Subject: Re: [PATCH] arm64: Fix compilation error while accessing MPIDR_HWID_BITMASK from .S files

On 19/02/18 06:39, Bhupesh Sharma wrote:
> Since commit e1a50de37860b3a93a9d643b09638db5aff47650 (arm64: cputype:
> Silence Sparse warnings), compilation of arm64 architecture is broken
> with the following error messages:
>
> AR arch/arm64/kernel/built-in.o
> arch/arm64/kernel/head.S: Assembler messages:
> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> arch/arm64/kernel/head.S:677: Error: junk at end of line, first
> unrecognized character is `L'
> arch/arm64/kernel/head.S:677: Error: unexpected characters following
> instruction at operand 2 -- `movz x1,:abs_g1_s:0xff00ffffffUL'
> arch/arm64/kernel/head.S:677: Error: unexpected characters following
> instruction at operand 2 -- `movk x1,:abs_g0_nc:0xff00ffffffUL'
>
> This patch fixes the same by using the UL() macro correctly for
> assigning the MPIDR_HWID_BITMASK macro value.

Sorry! I am however rather puzzled at how I didn't hit this with my
toolchain (Linaro 17.11), and neither did the LKP robot. Oh well.

Acked-by: Robin Murphy <[email protected]>

> Signed-off-by: Bhupesh Sharma <[email protected]>
> ---
> arch/arm64/include/asm/cputype.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
> index eda8c5f629fc..350c76a1d15b 100644
> --- a/arch/arm64/include/asm/cputype.h
> +++ b/arch/arm64/include/asm/cputype.h
> @@ -20,7 +20,7 @@
>
> #define MPIDR_UP_BITMASK (0x1 << 30)
> #define MPIDR_MT_BITMASK (0x1 << 24)
> -#define MPIDR_HWID_BITMASK 0xff00ffffffUL
> +#define MPIDR_HWID_BITMASK UL(0xff00ffffff)
>
> #define MPIDR_LEVEL_BITS_SHIFT 3
> #define MPIDR_LEVEL_BITS (1 << MPIDR_LEVEL_BITS_SHIFT)
>

2018-02-19 12:14:14

by Catalin Marinas

[permalink] [raw]
Subject: Re: [PATCH] arm64: Fix compilation error while accessing MPIDR_HWID_BITMASK from .S files

On Mon, Feb 19, 2018 at 11:19:07AM +0000, Will Deacon wrote:
> > >>On 19/02/2018 06:39, Bhupesh Sharma wrote:
> > >>>Since commit e1a50de37860b3a93a9d643b09638db5aff47650 (arm64: cputype:
> > >>>Silence Sparse warnings), compilation of arm64 architecture is broken
> > >>>with the following error messages:
> > >>>
> > >>> AR arch/arm64/kernel/built-in.o
> > >>> arch/arm64/kernel/head.S: Assembler messages:
> > >>> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> > >>> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> > >>> arch/arm64/kernel/head.S:677: Error: found 'L', expected: ')'
> > >>> arch/arm64/kernel/head.S:677: Error: junk at end of line, first
> > >>> unrecognized character is `L'
> > >>> arch/arm64/kernel/head.S:677: Error: unexpected characters following
> > >>> instruction at operand 2 -- `movz x1,:abs_g1_s:0xff00ffffffUL'
> > >>> arch/arm64/kernel/head.S:677: Error: unexpected characters following
> > >>> instruction at operand 2 -- `movk x1,:abs_g0_nc:0xff00ffffffUL'
> > >>>
> > >>>This patch fixes the same by using the UL() macro correctly for
> > >>>assigning the MPIDR_HWID_BITMASK macro value.
> > >>>
> > >>>Signed-off-by: Bhupesh Sharma <[email protected]>
[...]
> Thanks for the clarification; Catalin -- can you pick this up for -rc3 please?

Done. Strange that it builds fine with newer toolchains.

--
Catalin

2018-02-22 04:35:01

by Viresh Kumar

[permalink] [raw]
Subject: Re: [PATCH] arm64: Fix compilation error while accessing MPIDR_HWID_BITMASK from .S files

On Mon, Feb 19, 2018 at 4:28 PM, Arnd Bergmann <[email protected]> wrote:
> Note that when referencing a commit, it's best to abbreviate the commit
> ID to the first 12 characters like "e1a50de37860". You can also a line like
>
> Fixes: e1a50de37860 ("arm64: cputype: Silence Sparse warnings")
>
> which is the standard format to describe such regressions.

Right and this can be automated a bit as well. The procedure is
described in:

Documentation/process/submitting-patches.rst

You can update your .gitconfig file and then use the --pretty=<...>
argument to `git log` or `git show` commands.

--
viresh