Re: [v6] serial: 8250_dw: Add support for big-endian MMIO accesses

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

 



Hi Noam,

[auto build test WARNING on v4.3-rc4 -- if it's inappropriate base, please ignore]

config: alpha-allyesconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=alpha 

All warnings (new ones prefixed by >>):

   In file included from include/linux/swab.h:4:0,
                    from include/uapi/linux/byteorder/little_endian.h:12,
                    from include/linux/byteorder/little_endian.h:4,
                    from arch/alpha/include/uapi/asm/byteorder.h:4,
                    from include/asm-generic/bitops/le.h:5,
                    from arch/alpha/include/asm/bitops.h:454,
                    from include/linux/bitops.h:36,
                    from include/linux/kernel.h:10,
                    from include/linux/list.h:8,
                    from include/linux/kobject.h:20,
                    from include/linux/device.h:17,
                    from drivers/tty/serial/8250/8250_dw.c:16:
   drivers/tty/serial/8250/8250_dw.c: In function '_dw8250_serial_in32be':
>> arch/alpha/include/asm/io.h:495:35: warning: passing argument 1 of 'ioread32' discards 'const' qualifier from pointer target type
    #define ioread32be(p) be32_to_cpu(ioread32(p))
                                      ^
   include/uapi/linux/swab.h:115:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
>> drivers/tty/serial/8250/8250_dw.c:214:9: note: in expansion of macro 'ioread32be'
     return ioread32be(addr);
            ^
   In file included from arch/alpha/include/asm/io.h:15:0,
                    from include/linux/io.h:25,
                    from drivers/tty/serial/8250/8250_dw.c:17:
   include/asm-generic/iomap.h:31:21: note: expected 'void *' but argument is of type 'const void *'
    extern unsigned int ioread32(void __iomem *);
                        ^
   In file included from include/linux/swab.h:4:0,
                    from include/uapi/linux/byteorder/little_endian.h:12,
                    from include/linux/byteorder/little_endian.h:4,
                    from arch/alpha/include/uapi/asm/byteorder.h:4,
                    from include/asm-generic/bitops/le.h:5,
                    from arch/alpha/include/asm/bitops.h:454,
                    from include/linux/bitops.h:36,
                    from include/linux/kernel.h:10,
                    from include/linux/list.h:8,
                    from include/linux/kobject.h:20,
                    from include/linux/device.h:17,
                    from drivers/tty/serial/8250/8250_dw.c:16:
>> arch/alpha/include/asm/io.h:495:35: warning: passing argument 1 of 'ioread32' discards 'const' qualifier from pointer target type
    #define ioread32be(p) be32_to_cpu(ioread32(p))
                                      ^
   include/uapi/linux/swab.h:17:12: note: in definition of macro '___constant_swab32'
     (((__u32)(x) & (__u32)0x000000ffUL) << 24) |  \
               ^
   include/uapi/linux/byteorder/little_endian.h:39:26: note: in expansion of macro '__swab32'
    #define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
                             ^
>> include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
>> drivers/tty/serial/8250/8250_dw.c:214:9: note: in expansion of macro 'ioread32be'
     return ioread32be(addr);
            ^
   In file included from arch/alpha/include/asm/io.h:15:0,
                    from include/linux/io.h:25,
                    from drivers/tty/serial/8250/8250_dw.c:17:
   include/asm-generic/iomap.h:31:21: note: expected 'void *' but argument is of type 'const void *'
    extern unsigned int ioread32(void __iomem *);
                        ^
   In file included from include/linux/swab.h:4:0,
                    from include/uapi/linux/byteorder/little_endian.h:12,
                    from include/linux/byteorder/little_endian.h:4,
                    from arch/alpha/include/uapi/asm/byteorder.h:4,
                    from include/asm-generic/bitops/le.h:5,
                    from arch/alpha/include/asm/bitops.h:454,
                    from include/linux/bitops.h:36,
                    from include/linux/kernel.h:10,
                    from include/linux/list.h:8,
                    from include/linux/kobject.h:20,
                    from include/linux/device.h:17,
                    from drivers/tty/serial/8250/8250_dw.c:16:
>> arch/alpha/include/asm/io.h:495:35: warning: passing argument 1 of 'ioread32' discards 'const' qualifier from pointer target type
    #define ioread32be(p) be32_to_cpu(ioread32(p))
                                      ^
   include/uapi/linux/swab.h:18:12: note: in definition of macro '___constant_swab32'
     (((__u32)(x) & (__u32)0x0000ff00UL) <<  8) |  \
               ^
   include/uapi/linux/byteorder/little_endian.h:39:26: note: in expansion of macro '__swab32'
    #define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
                             ^
>> include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
>> drivers/tty/serial/8250/8250_dw.c:214:9: note: in expansion of macro 'ioread32be'
     return ioread32be(addr);
            ^
   In file included from arch/alpha/include/asm/io.h:15:0,
                    from include/linux/io.h:25,
                    from drivers/tty/serial/8250/8250_dw.c:17:
   include/asm-generic/iomap.h:31:21: note: expected 'void *' but argument is of type 'const void *'
    extern unsigned int ioread32(void __iomem *);
                        ^
   In file included from include/linux/swab.h:4:0,
                    from include/uapi/linux/byteorder/little_endian.h:12,
                    from include/linux/byteorder/little_endian.h:4,
                    from arch/alpha/include/uapi/asm/byteorder.h:4,
                    from include/asm-generic/bitops/le.h:5,
                    from arch/alpha/include/asm/bitops.h:454,
                    from include/linux/bitops.h:36,
                    from include/linux/kernel.h:10,
                    from include/linux/list.h:8,
                    from include/linux/kobject.h:20,
                    from include/linux/device.h:17,
                    from drivers/tty/serial/8250/8250_dw.c:16:
>> arch/alpha/include/asm/io.h:495:35: warning: passing argument 1 of 'ioread32' discards 'const' qualifier from pointer target type
    #define ioread32be(p) be32_to_cpu(ioread32(p))
                                      ^
   include/uapi/linux/swab.h:19:12: note: in definition of macro '___constant_swab32'
     (((__u32)(x) & (__u32)0x00ff0000UL) >>  8) |  \
               ^
   include/uapi/linux/byteorder/little_endian.h:39:26: note: in expansion of macro '__swab32'
    #define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
                             ^
>> include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
>> drivers/tty/serial/8250/8250_dw.c:214:9: note: in expansion of macro 'ioread32be'
     return ioread32be(addr);
            ^
   In file included from arch/alpha/include/asm/io.h:15:0,
                    from include/linux/io.h:25,
                    from drivers/tty/serial/8250/8250_dw.c:17:
   include/asm-generic/iomap.h:31:21: note: expected 'void *' but argument is of type 'const void *'
    extern unsigned int ioread32(void __iomem *);
                        ^
   In file included from include/linux/swab.h:4:0,
                    from include/uapi/linux/byteorder/little_endian.h:12,
                    from include/linux/byteorder/little_endian.h:4,
                    from arch/alpha/include/uapi/asm/byteorder.h:4,
                    from include/asm-generic/bitops/le.h:5,
                    from arch/alpha/include/asm/bitops.h:454,
                    from include/linux/bitops.h:36,
                    from include/linux/kernel.h:10,
                    from include/linux/list.h:8,
                    from include/linux/kobject.h:20,
                    from include/linux/device.h:17,
                    from drivers/tty/serial/8250/8250_dw.c:16:
>> arch/alpha/include/asm/io.h:495:35: warning: passing argument 1 of 'ioread32' discards 'const' qualifier from pointer target type
    #define ioread32be(p) be32_to_cpu(ioread32(p))
                                      ^
   include/uapi/linux/swab.h:20:12: note: in definition of macro '___constant_swab32'
     (((__u32)(x) & (__u32)0xff000000UL) >> 24)))
               ^
   include/uapi/linux/byteorder/little_endian.h:39:26: note: in expansion of macro '__swab32'
    #define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
                             ^
>> include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
>> drivers/tty/serial/8250/8250_dw.c:214:9: note: in expansion of macro 'ioread32be'
     return ioread32be(addr);
            ^
   In file included from arch/alpha/include/asm/io.h:15:0,
                    from include/linux/io.h:25,
                    from drivers/tty/serial/8250/8250_dw.c:17:
   include/asm-generic/iomap.h:31:21: note: expected 'void *' but argument is of type 'const void *'
    extern unsigned int ioread32(void __iomem *);
                        ^
   In file included from include/linux/swab.h:4:0,
                    from include/uapi/linux/byteorder/little_endian.h:12,
                    from include/linux/byteorder/little_endian.h:4,
                    from arch/alpha/include/uapi/asm/byteorder.h:4,
                    from include/asm-generic/bitops/le.h:5,
                    from arch/alpha/include/asm/bitops.h:454,
                    from include/linux/bitops.h:36,
                    from include/linux/kernel.h:10,
                    from include/linux/list.h:8,
                    from include/linux/kobject.h:20,
                    from include/linux/device.h:17,
                    from drivers/tty/serial/8250/8250_dw.c:16:
>> arch/alpha/include/asm/io.h:495:35: warning: passing argument 1 of 'ioread32' discards 'const' qualifier from pointer target type
    #define ioread32be(p) be32_to_cpu(ioread32(p))
                                      ^
   include/uapi/linux/swab.h:117:12: note: in definition of macro '__swab32'
     __fswab32(x))
               ^
>> include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
>> drivers/tty/serial/8250/8250_dw.c:214:9: note: in expansion of macro 'ioread32be'
     return ioread32be(addr);
            ^
   In file included from arch/alpha/include/asm/io.h:15:0,
                    from include/linux/io.h:25,
                    from drivers/tty/serial/8250/8250_dw.c:17:
   include/asm-generic/iomap.h:31:21: note: expected 'void *' but argument is of type 'const void *'
    extern unsigned int ioread32(void __iomem *);
                        ^

vim +/ioread32be +214 drivers/tty/serial/8250/8250_dw.c

   198	}
   199	
   200	static unsigned int dw8250_serial_in32(struct uart_port *p, int offset)
   201	{
   202		unsigned int value = readl(p->membase + (offset << p->regshift));
   203	
   204		return dw8250_modify_msr(p, offset, value);
   205	}
   206	
   207	static void _dw8250_serial_out32be(unsigned int value, void __iomem *addr)
   208	{
   209		iowrite32be(value, addr);
   210	}
   211	
   212	static unsigned int _dw8250_serial_in32be(const void __iomem *addr)
   213	{
 > 214		return ioread32be(addr);
   215	}
   216	
   217	static void dw8250_serial_out32be(struct uart_port *p, int offset, int value)
   218	{
   219		iowrite32be(value, p->membase + (offset << p->regshift));
   220		dw8250_check_LCR(p, offset, value);
   221	}
   222	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: Binary data


[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux