From: David Daney <ddaney@caviumnetworks.com>
To: Aaro Koskinen <aaro.koskinen@iki.fi>,
"Steven J. Hill" <steven.hill@cavium.com>
Cc: Ralf Baechle <ralf@linux-mips.org>,
David Daney <david.daney@cavium.com>, <linux-mips@linux-mips.org>,
Alex Smith <alex.smith@imgtec.com>
Subject: Re: [PATCH] MIPS: OCTEON: mangle-port: fix build failure with VDSO code
Date: Mon, 22 Aug 2016 15:55:47 -0700 [thread overview]
Message-ID: <57BB82F3.2030103@caviumnetworks.com> (raw)
In-Reply-To: <20160822220735.13865-1-aaro.koskinen@iki.fi>
On 08/22/2016 03:07 PM, Aaro Koskinen wrote:
> Commit 1685ddbe35cd ("MIPS: Octeon: Changes to support readq()/writeq()
> usage.") added bitwise shift operations that assume that unsigned long
> is always 64-bits. This broke the build of VDSO code, as it gets compiled
> also in "faked" 32-bit mode. Althought the failing inline functions are
> never executed in 32-bit mode, they still need to pass the compilation.
> Fix by using 64-bit types explicitly.
>
> The patch fixes the following build failure:
>
> CC arch/mips/vdso/gettimeofday-o32.o
> In file included from los/git/devel/linux/arch/mips/include/asm/io.h:32:0,
> from los/git/devel/linux/arch/mips/include/asm/page.h:194,
> from los/git/devel/linux/arch/mips/vdso/vdso.h:26,
> from los/git/devel/linux/arch/mips/vdso/gettimeofday.c:11:
> los/git/devel/linux/arch/mips/include/asm/mach-cavium-octeon/mangle-port.h: In function '__should_swizzle_bits':
> los/git/devel/linux/arch/mips/include/asm/mach-cavium-octeon/mangle-port.h:19:40: error: right shift count >= width of type [-Werror=shift-count-overflow]
> unsigned long did = ((unsigned long)a >> 40) & 0xff;
> ^~
>
> Fixes: 1685ddbe35cd ("MIPS: Octeon: Changes to support readq()/writeq() usage.")
> Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
This looks like it should work.
Steven, can you test this patch for us to get independent confirmation
that it works?
If testing shows that it is good, please add Acked-by: David Daney
<david.daney@cavium.com>
> ---
> arch/mips/include/asm/mach-cavium-octeon/mangle-port.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/mips/include/asm/mach-cavium-octeon/mangle-port.h b/arch/mips/include/asm/mach-cavium-octeon/mangle-port.h
> index 0cf5ac1..8ff2cbd 100644
> --- a/arch/mips/include/asm/mach-cavium-octeon/mangle-port.h
> +++ b/arch/mips/include/asm/mach-cavium-octeon/mangle-port.h
> @@ -15,8 +15,8 @@
> static inline bool __should_swizzle_bits(volatile void *a)
> {
> extern const bool octeon_should_swizzle_table[];
> + u64 did = ((u64)(uintptr_t)a >> 40) & 0xff;
>
> - unsigned long did = ((unsigned long)a >> 40) & 0xff;
> return octeon_should_swizzle_table[did];
> }
>
> @@ -29,7 +29,7 @@ static inline bool __should_swizzle_bits(volatile void *a)
>
> #define __should_swizzle_bits(a) false
>
> -static inline bool __should_swizzle_addr(unsigned long p)
> +static inline bool __should_swizzle_addr(u64 p)
> {
> /* boot bus? */
> return ((p >> 40) & 0xff) == 0;
>
WARNING: multiple messages have this Message-ID (diff)
From: David Daney <ddaney@caviumnetworks.com>
To: Aaro Koskinen <aaro.koskinen@iki.fi>,
"Steven J. Hill" <steven.hill@cavium.com>
Cc: Ralf Baechle <ralf@linux-mips.org>,
David Daney <david.daney@cavium.com>,
linux-mips@linux-mips.org, Alex Smith <alex.smith@imgtec.com>
Subject: Re: [PATCH] MIPS: OCTEON: mangle-port: fix build failure with VDSO code
Date: Mon, 22 Aug 2016 15:55:47 -0700 [thread overview]
Message-ID: <57BB82F3.2030103@caviumnetworks.com> (raw)
Message-ID: <20160822225547.fj_7HX6KZ5nT_dZuZTyugmLBO_nCmXb7siLexZboaco@z> (raw)
In-Reply-To: <20160822220735.13865-1-aaro.koskinen@iki.fi>
On 08/22/2016 03:07 PM, Aaro Koskinen wrote:
> Commit 1685ddbe35cd ("MIPS: Octeon: Changes to support readq()/writeq()
> usage.") added bitwise shift operations that assume that unsigned long
> is always 64-bits. This broke the build of VDSO code, as it gets compiled
> also in "faked" 32-bit mode. Althought the failing inline functions are
> never executed in 32-bit mode, they still need to pass the compilation.
> Fix by using 64-bit types explicitly.
>
> The patch fixes the following build failure:
>
> CC arch/mips/vdso/gettimeofday-o32.o
> In file included from los/git/devel/linux/arch/mips/include/asm/io.h:32:0,
> from los/git/devel/linux/arch/mips/include/asm/page.h:194,
> from los/git/devel/linux/arch/mips/vdso/vdso.h:26,
> from los/git/devel/linux/arch/mips/vdso/gettimeofday.c:11:
> los/git/devel/linux/arch/mips/include/asm/mach-cavium-octeon/mangle-port.h: In function '__should_swizzle_bits':
> los/git/devel/linux/arch/mips/include/asm/mach-cavium-octeon/mangle-port.h:19:40: error: right shift count >= width of type [-Werror=shift-count-overflow]
> unsigned long did = ((unsigned long)a >> 40) & 0xff;
> ^~
>
> Fixes: 1685ddbe35cd ("MIPS: Octeon: Changes to support readq()/writeq() usage.")
> Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
This looks like it should work.
Steven, can you test this patch for us to get independent confirmation
that it works?
If testing shows that it is good, please add Acked-by: David Daney
<david.daney@cavium.com>
> ---
> arch/mips/include/asm/mach-cavium-octeon/mangle-port.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/mips/include/asm/mach-cavium-octeon/mangle-port.h b/arch/mips/include/asm/mach-cavium-octeon/mangle-port.h
> index 0cf5ac1..8ff2cbd 100644
> --- a/arch/mips/include/asm/mach-cavium-octeon/mangle-port.h
> +++ b/arch/mips/include/asm/mach-cavium-octeon/mangle-port.h
> @@ -15,8 +15,8 @@
> static inline bool __should_swizzle_bits(volatile void *a)
> {
> extern const bool octeon_should_swizzle_table[];
> + u64 did = ((u64)(uintptr_t)a >> 40) & 0xff;
>
> - unsigned long did = ((unsigned long)a >> 40) & 0xff;
> return octeon_should_swizzle_table[did];
> }
>
> @@ -29,7 +29,7 @@ static inline bool __should_swizzle_bits(volatile void *a)
>
> #define __should_swizzle_bits(a) false
>
> -static inline bool __should_swizzle_addr(unsigned long p)
> +static inline bool __should_swizzle_addr(u64 p)
> {
> /* boot bus? */
> return ((p >> 40) & 0xff) == 0;
>
next prev parent reply other threads:[~2016-08-22 22:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-22 22:07 [PATCH] MIPS: OCTEON: mangle-port: fix build failure with VDSO code Aaro Koskinen
2016-08-22 22:55 ` David Daney [this message]
2016-08-22 22:55 ` David Daney
2016-08-24 16:50 ` Steven J. Hill
2016-08-24 16:50 ` Steven J. Hill
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57BB82F3.2030103@caviumnetworks.com \
--to=ddaney@caviumnetworks.com \
--cc=aaro.koskinen@iki.fi \
--cc=alex.smith@imgtec.com \
--cc=david.daney@cavium.com \
--cc=linux-mips@linux-mips.org \
--cc=ralf@linux-mips.org \
--cc=steven.hill@cavium.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox