On Fri, Aug 09, 2019 at 11:37:00PM +0800, kbuild test robot wrote: > tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing > head: 7e9e6c1f446cf98e5e59d065f43428a9e1046fed > commit: ad7d1f21825e7513f2fcfe6b8d21f8c365050c34 [68/80] serial: 8250_pci: Add support for Sunix serial boards > config: parisc-c3000_defconfig (attached as .config) > compiler: hppa-linux-gcc (GCC) 7.4.0 > reproduce: > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > git checkout ad7d1f21825e7513f2fcfe6b8d21f8c365050c34 > # save the attached .config to linux build tree > GCC_VERSION=7.4.0 make.cross ARCH=parisc > > If you fix the issue, kindly add following tag > Reported-by: kbuild test robot <lkp@xxxxxxxxx> > > All warnings (new ones prefixed by >>): > > In file included from ./arch/parisc/include/generated/asm/div64.h:1:0, > from include/linux/kernel.h:18, > from include/linux/list.h:9, > from include/linux/module.h:9, > from drivers/tty/serial/8250/8250_pci.c:10: > drivers/tty/serial/8250/8250_pci.c: In function 'pci_sunix_setup': > include/asm-generic/div64.h:222:28: warning: comparison of distinct pointer types lacks a cast > (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \ > ^ > >> drivers/tty/serial/8250/8250_pci.c:1823:12: note: in expansion of macro 'do_div' > offset = do_div(idx, 4); > ^~~~~~ > In file included from include/linux/kernel.h:11:0, > from include/linux/list.h:9, > from include/linux/module.h:9, > from drivers/tty/serial/8250/8250_pci.c:10: > include/asm-generic/div64.h:235:25: warning: right shift count >= width of type [-Wshift-count-overflow] > } else if (likely(((n) >> 32) == 0)) { \ > ^ > include/linux/compiler.h:77:40: note: in definition of macro 'likely' > # define likely(x) __builtin_expect(!!(x), 1) > ^ > >> drivers/tty/serial/8250/8250_pci.c:1823:12: note: in expansion of macro 'do_div' > offset = do_div(idx, 4); > ^~~~~~ > In file included from ./arch/parisc/include/generated/asm/div64.h:1:0, > from include/linux/kernel.h:18, > from include/linux/list.h:9, > from include/linux/module.h:9, > from drivers/tty/serial/8250/8250_pci.c:10: > include/asm-generic/div64.h:239:22: error: passing argument 1 of '__div64_32' from incompatible pointer type [-Werror=incompatible-pointer-types] > __rem = __div64_32(&(n), __base); \ > ^ > >> drivers/tty/serial/8250/8250_pci.c:1823:12: note: in expansion of macro 'do_div' > offset = do_div(idx, 4); > ^~~~~~ > include/asm-generic/div64.h:213:17: note: expected 'uint64_t * {aka long long unsigned int *}' but argument is of type 'int *' > extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor); > ^~~~~~~~~~ > cc1: some warnings being treated as errors > > vim +/do_div +1823 drivers/tty/serial/8250/8250_pci.c > > 1805 > 1806 static int > 1807 pci_sunix_setup(struct serial_private *priv, > 1808 const struct pciserial_board *board, > 1809 struct uart_8250_port *port, int idx) > 1810 { > 1811 int bar; > 1812 int offset; > 1813 > 1814 port->port.flags |= UPF_FIXED_TYPE; > 1815 port->port.type = PORT_SUNIX; > 1816 > 1817 if (idx < 4) { > 1818 bar = 0; > 1819 offset = idx * board->uart_offset; > 1820 } else { > 1821 bar = 1; > 1822 idx -= 4; > > 1823 offset = do_div(idx, 4); idx needs to be a u64 here. Please fix up. I'll go drop your two patches and wait for new ones. thanks, greg k-h