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

From: kbuild test robot
Date: Tue Oct 06 2015 - 03:27:15 EST


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