Hi Adrian,
FYI, the error/warning still remains.
tree:
https://github.com/Freescale/linux-fslc pr/391
head: 48afde5dc8ee425a1517ac38d6eca0fec76ad57e
commit: cdfd304a32248295f7d77f61d32137f1bb5bf64e [11826/19640] MLK-24423: sound: soc: fsl:
imx pdm: fixed mclk improve voice
config: h8300-allyesconfig (attached as .config)
compiler: h8300-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
#
https://github.com/Freescale/linux-fslc/commit/cdfd304a32248295f7d77f61d3...
git remote add freescale-fslc
https://github.com/Freescale/linux-fslc
git fetch --no-tags freescale-fslc pr/391
git checkout cdfd304a32248295f7d77f61d32137f1bb5bf64e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=h8300
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/module.h:9,
from sound/soc/fsl/imx-pdm.c:12:
include/linux/scatterlist.h: In function 'sg_set_buf':
include/asm-generic/page.h:93:50: warning: ordered comparison of pointer with null
pointer [-Wextra]
93 | #define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET)
&& \
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro
'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
In file included from ./arch/h8300/include/generated/asm/div64.h:1,
from include/linux/kernel.h:18,
from include/linux/list.h:9,
from include/linux/module.h:9,
from sound/soc/fsl/imx-pdm.c:12:
sound/soc/fsl/imx-pdm.c: In function 'imx_pdm_mic_hw_params':
include/asm-generic/div64.h:226:28: warning: comparison of distinct pointer types lacks
a cast
226 | (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
| ^~
sound/soc/fsl/imx-pdm.c:241:16: note: in expansion of macro 'do_div'
241 | mclk_freq = (do_div(sample_rate, 8000) ?
| ^~~~~~
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/module.h:9,
from sound/soc/fsl/imx-pdm.c:12:
include/asm-generic/div64.h:239:25: warning: right shift count >= width of type
[-Wshift-count-overflow]
239 | } else if (likely(((n) >> 32) == 0)) { \
| ^~
include/linux/compiler.h:77:40: note: in definition of macro 'likely'
77 | # define likely(x) __builtin_expect(!!(x), 1)
| ^
sound/soc/fsl/imx-pdm.c:241:16: note: in expansion of macro 'do_div'
241 | mclk_freq = (do_div(sample_rate, 8000) ?
| ^~~~~~
In file included from ./arch/h8300/include/generated/asm/div64.h:1,
from include/linux/kernel.h:18,
from include/linux/list.h:9,
from include/linux/module.h:9,
from sound/soc/fsl/imx-pdm.c:12:
> include/asm-generic/div64.h:243:22: error: passing argument 1 of
'__div64_32' from incompatible pointer type [-Werror=incompatible-pointer-types]
243 | __rem = __div64_32(&(n), __base); \
| ^~~~
| |
| unsigned int *
sound/soc/fsl/imx-pdm.c:241:16: note: in expansion of macro 'do_div'
241 | mclk_freq = (do_div(sample_rate, 8000) ?
| ^~~~~~
include/asm-generic/div64.h:217:38: note: expected 'uint64_t *' {aka 'long
long unsigned int *'} but argument is of type 'unsigned int *'
217 | extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
| ~~~~~~~~~~^~~~~~~~
cc1: some warnings being treated as errors
vim +/__div64_32 +243 include/asm-generic/div64.h
^1da177e4c3f41 Linus Torvalds 2005-04-16 219
^1da177e4c3f41 Linus Torvalds 2005-04-16 220 /* The unnecessary pointer compare is
there
^1da177e4c3f41 Linus Torvalds 2005-04-16 221 * to check for type safety (n must be
64bit)
^1da177e4c3f41 Linus Torvalds 2005-04-16 222 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 223 # define do_div(n,base) ({ \
^1da177e4c3f41 Linus Torvalds 2005-04-16 224 uint32_t __base = (base); \
^1da177e4c3f41 Linus Torvalds 2005-04-16 225 uint32_t __rem; \
^1da177e4c3f41 Linus Torvalds 2005-04-16 226 (void)(((typeof((n)) *)0) == ((uint64_t
*)0)); \
911918aa7ef6f8 Nicolas Pitre 2015-11-02 227 if (__builtin_constant_p(__base)
&& \
911918aa7ef6f8 Nicolas Pitre 2015-11-02 228 is_power_of_2(__base)) { \
911918aa7ef6f8 Nicolas Pitre 2015-11-02 229 __rem = (n) & (__base - 1); \
911918aa7ef6f8 Nicolas Pitre 2015-11-02 230 (n) >>= ilog2(__base); \
461a5e51060c93 Nicolas Pitre 2015-10-30 231 } else if (__div64_const32_is_OK
&& \
461a5e51060c93 Nicolas Pitre 2015-10-30 232 __builtin_constant_p(__base)
&& \
461a5e51060c93 Nicolas Pitre 2015-10-30 233 __base != 0) { \
461a5e51060c93 Nicolas Pitre 2015-10-30 234 uint32_t __res_lo, __n_lo = (n); \
461a5e51060c93 Nicolas Pitre 2015-10-30 235 (n) = __div64_const32(n, __base); \
461a5e51060c93 Nicolas Pitre 2015-10-30 236 /* the remainder can be computed with
32-bit regs */ \
461a5e51060c93 Nicolas Pitre 2015-10-30 237 __res_lo = (n); \
461a5e51060c93 Nicolas Pitre 2015-10-30 238 __rem = __n_lo - __res_lo * __base; \
911918aa7ef6f8 Nicolas Pitre 2015-11-02 239 } else if (likely(((n) >> 32) == 0))
{ \
^1da177e4c3f41 Linus Torvalds 2005-04-16 240 __rem = (uint32_t)(n) % __base; \
^1da177e4c3f41 Linus Torvalds 2005-04-16 241 (n) = (uint32_t)(n) / __base; \
^1da177e4c3f41 Linus Torvalds 2005-04-16 242 } else \
^1da177e4c3f41 Linus Torvalds 2005-04-16 @243 __rem = __div64_32(&(n), __base); \
^1da177e4c3f41 Linus Torvalds 2005-04-16 244 __rem; \
^1da177e4c3f41 Linus Torvalds 2005-04-16 245 })
^1da177e4c3f41 Linus Torvalds 2005-04-16 246
:::::: The code at line 243 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds(a)ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds(a)ppc970.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org