Re: [PATCH] MIPS: OCTEON: Changes to support readq()/writeq() usage.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/12/2016 02:38 PM, Aaro Koskinen wrote:
Hi,

On Fri, Jul 08, 2016 at 09:45:01PM -0500, Steven J. Hill wrote:
Update OCTEON port mangling code to support readq() and
writeq() functions to allow driver code to be more portable.
Updates also for word and long function pairs. We also
remove SWAP_IO_SPACE for OCTEON platforms as the function
macros are redundant with the new mangling code.

Signed-off-by: Steven J. Hill <steven.hill@xxxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>

[...]

+static inline bool __should_swizzle_bits(volatile void *a)
+{
+	extern const bool octeon_should_swizzle_table[];
+
+	unsigned long did = ((unsigned long)a >> 40) & 0xff;
+	return octeon_should_swizzle_table[did];
+}

v4.8-rc1 OCTEON build is now broken with GCC 6.1 when support for 32-bit
ABIs is enabled:

I don't get it. The kernel is always 64-bit, so unsigned long will have a width of 64.

What kernel config are you using?


   CC      arch/mips/vdso/gettimeofday-o32.o
In file included from /home/aaro/los/work/shared/linux-v4.8-rc1/arch/mips/includ
e/asm/io.h:32:0,
                  from /home/aaro/los/work/shared/linux-v4.8-rc1/arch/mips/includ
e/asm/page.h:194,
                  from /home/aaro/los/work/shared/linux-v4.8-rc1/arch/mips/vdso/v
dso.h:26,
                  from /home/aaro/los/work/shared/linux-v4.8-rc1/arch/mips/vdso/g
ettimeofday.c:11:
/home/aaro/los/work/shared/linux-v4.8-rc1/arch/mips/include/asm/mach-cavium-octe
on/mangle-port.h: In function '__should_swizzle_bits':
/home/aaro/los/work/shared/linux-v4.8-rc1/arch/mips/include/asm/mach-cavium-octe
on/mangle-port.h:19:40: error: right shift count >= width of type [-Werror=shift
-count-overflow]
   unsigned long did = ((unsigned long)a >> 40) & 0xff;

A.






[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux