Messages in this thread | | | Date | Mon, 29 Jun 2020 17:59:42 +0800 | From | kernel test robot <> | Subject | sound/core/oss/mixer_oss.c:312:29: sparse: sparse: incorrect type in initializer (different address spaces) |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 9ebcfadb0610322ac537dd7aa5d9cbc2b2894c68 commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces date: 11 days ago config: sh-randconfig-s031-20200629 (attached as .config) compiler: sh4-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.2-3-gfa153962-dirty git checkout 670d0a4b10704667765f7d18f7592993d02783aa # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C= CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=sh
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> sound/core/oss/mixer_oss.c:312:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/mixer_oss.c:312:29: sparse: expected int const *__gu_addr >> sound/core/oss/mixer_oss.c:312:29: sparse: got int [noderef] __user *p >> sound/core/oss/mixer_oss.c:312:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@ >> sound/core/oss/mixer_oss.c:312:29: sparse: expected void const volatile [noderef] __user * sound/core/oss/mixer_oss.c:312:29: sparse: got int const *__gu_addr sound/core/oss/mixer_oss.c:350:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/mixer_oss.c:350:21: sparse: expected int const *__gu_addr sound/core/oss/mixer_oss.c:350:21: sparse: got int [noderef] __user *p sound/core/oss/mixer_oss.c:350:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@ sound/core/oss/mixer_oss.c:350:21: sparse: expected void const volatile [noderef] __user * sound/core/oss/mixer_oss.c:350:21: sparse: got int const *__gu_addr -- sound/core/oss/pcm_oss.c:884:53: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected int format @@ got restricted snd_pcm_format_t [assigned] [usertype] format @@ sound/core/oss/pcm_oss.c:884:53: sparse: expected int format sound/core/oss/pcm_oss.c:884:53: sparse: got restricted snd_pcm_format_t [assigned] [usertype] format sound/core/oss/pcm_oss.c:884:25: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted snd_pcm_format_t [assigned] [usertype] sformat @@ got int @@ sound/core/oss/pcm_oss.c:884:25: sparse: expected restricted snd_pcm_format_t [assigned] [usertype] sformat sound/core/oss/pcm_oss.c:884:25: sparse: got int >> sound/core/oss/pcm_oss.c:2592:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2592:21: sparse: expected int const *__gu_addr >> sound/core/oss/pcm_oss.c:2592:21: sparse: got int [noderef] __user *p >> sound/core/oss/pcm_oss.c:2592:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@ >> sound/core/oss/pcm_oss.c:2592:21: sparse: expected void const volatile [noderef] __user * sound/core/oss/pcm_oss.c:2592:21: sparse: got int const *__gu_addr sound/core/oss/pcm_oss.c:2603:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2603:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2603:21: sparse: got int [noderef] __user *p sound/core/oss/pcm_oss.c:2603:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2603:21: sparse: expected void const volatile [noderef] __user * sound/core/oss/pcm_oss.c:2603:21: sparse: got int const *__gu_addr sound/core/oss/pcm_oss.c:2615:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2615:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2615:21: sparse: got int [noderef] __user *p sound/core/oss/pcm_oss.c:2615:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2615:21: sparse: expected void const volatile [noderef] __user * sound/core/oss/pcm_oss.c:2615:21: sparse: got int const *__gu_addr sound/core/oss/pcm_oss.c:2627:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2627:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2627:21: sparse: got int [noderef] __user *p sound/core/oss/pcm_oss.c:2627:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2627:21: sparse: expected void const volatile [noderef] __user * sound/core/oss/pcm_oss.c:2627:21: sparse: got int const *__gu_addr sound/core/oss/pcm_oss.c:2644:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2644:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2644:21: sparse: got int [noderef] __user *p sound/core/oss/pcm_oss.c:2644:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2644:21: sparse: expected void const volatile [noderef] __user * sound/core/oss/pcm_oss.c:2644:21: sparse: got int const *__gu_addr sound/core/oss/pcm_oss.c:2651:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2651:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2651:21: sparse: got int [noderef] __user *p sound/core/oss/pcm_oss.c:2651:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2651:21: sparse: expected void const volatile [noderef] __user * sound/core/oss/pcm_oss.c:2651:21: sparse: got int const *__gu_addr sound/core/oss/pcm_oss.c:2678:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2678:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2678:21: sparse: got int [noderef] __user *p sound/core/oss/pcm_oss.c:2678:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2678:21: sparse: expected void const volatile [noderef] __user * sound/core/oss/pcm_oss.c:2678:21: sparse: got int const *__gu_addr -- fs/cifs/dfs_cache.c:194:14: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected char const *__gu_addr @@ got char const [noderef] __user *buffer @@ fs/cifs/dfs_cache.c:194:14: sparse: expected char const *__gu_addr fs/cifs/dfs_cache.c:194:14: sparse: got char const [noderef] __user *buffer >> fs/cifs/dfs_cache.c:194:14: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got char const *__gu_addr @@ >> fs/cifs/dfs_cache.c:194:14: sparse: expected void const volatile [noderef] __user * fs/cifs/dfs_cache.c:194:14: sparse: got char const *__gu_addr -- fs/f2fs/file.c:47:54: sparse: sparse: cast from restricted vm_fault_t fs/f2fs/file.c:1976:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user * @@ fs/f2fs/file.c:1976:13: sparse: expected int const *__gu_addr fs/f2fs/file.c:1976:13: sparse: got int [noderef] __user * >> fs/f2fs/file.c:1976:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@ >> fs/f2fs/file.c:1976:13: sparse: expected void const volatile [noderef] __user * fs/f2fs/file.c:1976:13: sparse: got int const *__gu_addr fs/f2fs/file.c:2230:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user * @@ fs/f2fs/file.c:2230:13: sparse: expected unsigned int const *__gu_addr fs/f2fs/file.c:2230:13: sparse: got unsigned int [noderef] [usertype] __user * >> fs/f2fs/file.c:2230:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int const *__gu_addr @@ fs/f2fs/file.c:2230:13: sparse: expected void const volatile [noderef] __user * fs/f2fs/file.c:2230:13: sparse: got unsigned int const *__gu_addr fs/f2fs/file.c:2467:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user * @@ fs/f2fs/file.c:2467:13: sparse: expected unsigned int const *__gu_addr fs/f2fs/file.c:2467:13: sparse: got unsigned int [noderef] [usertype] __user * fs/f2fs/file.c:2467:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int const *__gu_addr @@ fs/f2fs/file.c:2467:13: sparse: expected void const volatile [noderef] __user * fs/f2fs/file.c:2467:13: sparse: got unsigned int const *__gu_addr fs/f2fs/file.c:3222:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user * @@ fs/f2fs/file.c:3222:13: sparse: expected unsigned int const *__gu_addr fs/f2fs/file.c:3222:13: sparse: got unsigned int [noderef] [usertype] __user * fs/f2fs/file.c:3222:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int const *__gu_addr @@ fs/f2fs/file.c:3222:13: sparse: expected void const volatile [noderef] __user * fs/f2fs/file.c:3222:13: sparse: got unsigned int const *__gu_addr fs/f2fs/file.c:3375:36: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short const [usertype] *pwcs @@ got restricted __le16 * @@ fs/f2fs/file.c:3375:36: sparse: expected unsigned short const [usertype] *pwcs fs/f2fs/file.c:3375:36: sparse: got restricted __le16 * fs/f2fs/file.c:3411:28: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected unsigned short [usertype] *pwcs @@ got restricted __le16 * @@ fs/f2fs/file.c:3411:28: sparse: expected unsigned short [usertype] *pwcs fs/f2fs/file.c:3411:28: sparse: got restricted __le16 * -- drivers/vhost/scsi.c:1218:30: sparse: sparse: restricted __virtio32 degrades to integer drivers/vhost/scsi.c:1218:30: sparse: sparse: restricted __virtio32 degrades to integer >> drivers/vhost/scsi.c:1697:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user *eventsp @@ drivers/vhost/scsi.c:1697:21: sparse: expected unsigned int const *__gu_addr >> drivers/vhost/scsi.c:1697:21: sparse: got unsigned int [noderef] [usertype] __user *eventsp >> drivers/vhost/scsi.c:1697:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int const *__gu_addr @@ >> drivers/vhost/scsi.c:1697:21: sparse: expected void const volatile [noderef] __user * drivers/vhost/scsi.c:1697:21: sparse: got unsigned int const *__gu_addr -- >> drivers/vhost/vhost.c:1564:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user *idxp @@ drivers/vhost/vhost.c:1564:13: sparse: expected unsigned int const *__gu_addr >> drivers/vhost/vhost.c:1564:13: sparse: got unsigned int [noderef] [usertype] __user *idxp >> drivers/vhost/vhost.c:1564:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int const *__gu_addr @@ >> drivers/vhost/vhost.c:1564:13: sparse: expected void const volatile [noderef] __user * drivers/vhost/vhost.c:1564:13: sparse: got unsigned int const *__gu_addr >> drivers/vhost/vhost.c:1761:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user * @@ drivers/vhost/vhost.c:1761:21: sparse: expected int const *__gu_addr >> drivers/vhost/vhost.c:1761:21: sparse: got int [noderef] __user * >> drivers/vhost/vhost.c:1761:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@ drivers/vhost/vhost.c:1761:21: sparse: expected void const volatile [noderef] __user * drivers/vhost/vhost.c:1761:21: sparse: got int const *__gu_addr -- >> drivers/vhost/vdpa.c:346:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user * @@ drivers/vhost/vdpa.c:346:13: sparse: expected unsigned int const *__gu_addr >> drivers/vhost/vdpa.c:346:13: sparse: got unsigned int [noderef] [usertype] __user * >> drivers/vhost/vdpa.c:346:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int const *__gu_addr @@ >> drivers/vhost/vdpa.c:346:13: sparse: expected void const volatile [noderef] __user * drivers/vhost/vdpa.c:346:13: sparse: got unsigned int const *__gu_addr
vim +312 sound/core/oss/mixer_oss.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 296 f956b4a3ae790e Takashi Iwai 2005-11-17 297 static int snd_mixer_oss_ioctl1(struct snd_mixer_oss_file *fmixer, unsigned int cmd, unsigned long arg) ^1da177e4c3f41 Linus Torvalds 2005-04-16 298 { ^1da177e4c3f41 Linus Torvalds 2005-04-16 299 void __user *argp = (void __user *)arg; ^1da177e4c3f41 Linus Torvalds 2005-04-16 300 int __user *p = argp; ^1da177e4c3f41 Linus Torvalds 2005-04-16 301 int tmp; ^1da177e4c3f41 Linus Torvalds 2005-04-16 302 7eaa943c8ed8e9 Takashi Iwai 2008-08-08 303 if (snd_BUG_ON(!fmixer)) 7eaa943c8ed8e9 Takashi Iwai 2008-08-08 304 return -ENXIO; ^1da177e4c3f41 Linus Torvalds 2005-04-16 305 if (((cmd >> 8) & 0xff) == 'M') { ^1da177e4c3f41 Linus Torvalds 2005-04-16 306 switch (cmd) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 307 case SOUND_MIXER_INFO: ^1da177e4c3f41 Linus Torvalds 2005-04-16 308 return snd_mixer_oss_info(fmixer, argp); ^1da177e4c3f41 Linus Torvalds 2005-04-16 309 case SOUND_OLD_MIXER_INFO: ^1da177e4c3f41 Linus Torvalds 2005-04-16 310 return snd_mixer_oss_info_obsolete(fmixer, argp); ^1da177e4c3f41 Linus Torvalds 2005-04-16 311 case SOUND_MIXER_WRITE_RECSRC: ^1da177e4c3f41 Linus Torvalds 2005-04-16 @312 if (get_user(tmp, p)) ^1da177e4c3f41 Linus Torvalds 2005-04-16 313 return -EFAULT; ^1da177e4c3f41 Linus Torvalds 2005-04-16 314 tmp = snd_mixer_oss_set_recsrc(fmixer, tmp); ^1da177e4c3f41 Linus Torvalds 2005-04-16 315 if (tmp < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 316 return tmp; ^1da177e4c3f41 Linus Torvalds 2005-04-16 317 return put_user(tmp, p); ^1da177e4c3f41 Linus Torvalds 2005-04-16 318 case OSS_GETVERSION: ^1da177e4c3f41 Linus Torvalds 2005-04-16 319 return put_user(SNDRV_OSS_VERSION, p); ^1da177e4c3f41 Linus Torvalds 2005-04-16 320 case OSS_ALSAEMULVER: ^1da177e4c3f41 Linus Torvalds 2005-04-16 321 return put_user(1, p); ^1da177e4c3f41 Linus Torvalds 2005-04-16 322 case SOUND_MIXER_READ_DEVMASK: ^1da177e4c3f41 Linus Torvalds 2005-04-16 323 tmp = snd_mixer_oss_devmask(fmixer); ^1da177e4c3f41 Linus Torvalds 2005-04-16 324 if (tmp < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 325 return tmp; ^1da177e4c3f41 Linus Torvalds 2005-04-16 326 return put_user(tmp, p); ^1da177e4c3f41 Linus Torvalds 2005-04-16 327 case SOUND_MIXER_READ_STEREODEVS: ^1da177e4c3f41 Linus Torvalds 2005-04-16 328 tmp = snd_mixer_oss_stereodevs(fmixer); ^1da177e4c3f41 Linus Torvalds 2005-04-16 329 if (tmp < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 330 return tmp; ^1da177e4c3f41 Linus Torvalds 2005-04-16 331 return put_user(tmp, p); ^1da177e4c3f41 Linus Torvalds 2005-04-16 332 case SOUND_MIXER_READ_RECMASK: ^1da177e4c3f41 Linus Torvalds 2005-04-16 333 tmp = snd_mixer_oss_recmask(fmixer); ^1da177e4c3f41 Linus Torvalds 2005-04-16 334 if (tmp < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 335 return tmp; ^1da177e4c3f41 Linus Torvalds 2005-04-16 336 return put_user(tmp, p); ^1da177e4c3f41 Linus Torvalds 2005-04-16 337 case SOUND_MIXER_READ_CAPS: ^1da177e4c3f41 Linus Torvalds 2005-04-16 338 tmp = snd_mixer_oss_caps(fmixer); ^1da177e4c3f41 Linus Torvalds 2005-04-16 339 if (tmp < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 340 return tmp; ^1da177e4c3f41 Linus Torvalds 2005-04-16 341 return put_user(tmp, p); ^1da177e4c3f41 Linus Torvalds 2005-04-16 342 case SOUND_MIXER_READ_RECSRC: ^1da177e4c3f41 Linus Torvalds 2005-04-16 343 tmp = snd_mixer_oss_get_recsrc(fmixer); ^1da177e4c3f41 Linus Torvalds 2005-04-16 344 if (tmp < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 345 return tmp; ^1da177e4c3f41 Linus Torvalds 2005-04-16 346 return put_user(tmp, p); ^1da177e4c3f41 Linus Torvalds 2005-04-16 347 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 348 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 349 if (cmd & SIOC_IN) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 350 if (get_user(tmp, p)) ^1da177e4c3f41 Linus Torvalds 2005-04-16 351 return -EFAULT; ^1da177e4c3f41 Linus Torvalds 2005-04-16 352 tmp = snd_mixer_oss_set_volume(fmixer, cmd & 0xff, tmp); ^1da177e4c3f41 Linus Torvalds 2005-04-16 353 if (tmp < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 354 return tmp; ^1da177e4c3f41 Linus Torvalds 2005-04-16 355 return put_user(tmp, p); ^1da177e4c3f41 Linus Torvalds 2005-04-16 356 } else if (cmd & SIOC_OUT) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 357 tmp = snd_mixer_oss_get_volume(fmixer, cmd & 0xff); ^1da177e4c3f41 Linus Torvalds 2005-04-16 358 if (tmp < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 359 return tmp; ^1da177e4c3f41 Linus Torvalds 2005-04-16 360 return put_user(tmp, p); ^1da177e4c3f41 Linus Torvalds 2005-04-16 361 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 362 return -ENXIO; ^1da177e4c3f41 Linus Torvalds 2005-04-16 363 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 364
:::::: The code at line 312 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds@ppc970.osdl.org> :::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [unhandled content-type:application/gzip] | |