All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 5037/8910] drivers/scsi/megaraid.c:3523:29: sparse: sparse: Using plain integer as NULL pointer
@ 2026-09-23  3:10 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-23  3:10 UTC (permalink / raw)
  To: Thomas Weißschuh ; +Cc: oe-kbuild-all, Michal Simek, David Gow

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   a8c591ed6b672915e0be57843f943a2a723aff40
commit: 54c35131e628e1a18f02365495a24a73a1fb515e [5037/8910] microblaze: uaccess: Zero out destination on failed get_user()
config: microblaze-randconfig-r1302-20260923 (https://download.01.org/0day-ci/archive/20260923/202609231106.jUL3t8MA-lkp@intel.com/config)
compiler: microblaze-linux-gcc (GCC) 13.4.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260923/202609231106.jUL3t8MA-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609231106.jUL3t8MA-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/scsi/megaraid.c:3523:29: sparse: sparse: Using plain integer as NULL pointer
   drivers/scsi/megaraid.c:3540:29: sparse: sparse: Using plain integer as NULL pointer
   drivers/scsi/megaraid.c:4464:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/scsi/megaraid.c:4464:26: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/scsi/megaraid.c:4464:26: sparse:     got void *
   drivers/scsi/megaraid.c:4523:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/scsi/megaraid.c:4523:26: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/scsi/megaraid.c:4523:26: sparse:     got void *

vim +3523 drivers/scsi/megaraid.c

^1da177e4c3f415 Linus Torvalds 2005-04-16  3488  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3489  /*
^1da177e4c3f415 Linus Torvalds 2005-04-16  3490   * mega_n_to_m()
2b46e5c14218c73 Damien Le Moal 2020-07-06  3491   * @arg: user address
2b46e5c14218c73 Damien Le Moal 2020-07-06  3492   * @mc: mailbox command
^1da177e4c3f415 Linus Torvalds 2005-04-16  3493   *
^1da177e4c3f415 Linus Torvalds 2005-04-16  3494   * Updates the status information to the application, depending on application
^1da177e4c3f415 Linus Torvalds 2005-04-16  3495   * conforms to older mimd ioctl interface or newer NIT ioctl interface
^1da177e4c3f415 Linus Torvalds 2005-04-16  3496   */
^1da177e4c3f415 Linus Torvalds 2005-04-16  3497  static int
^1da177e4c3f415 Linus Torvalds 2005-04-16  3498  mega_n_to_m(void __user *arg, megacmd_t *mc)
^1da177e4c3f415 Linus Torvalds 2005-04-16  3499  {
^1da177e4c3f415 Linus Torvalds 2005-04-16  3500  	nitioctl_t	__user *uiocp;
^1da177e4c3f415 Linus Torvalds 2005-04-16  3501  	megacmd_t	__user *umc;
^1da177e4c3f415 Linus Torvalds 2005-04-16  3502  	mega_passthru	__user *upthru;
^1da177e4c3f415 Linus Torvalds 2005-04-16  3503  	struct uioctl_t	__user *uioc_mimd;
^1da177e4c3f415 Linus Torvalds 2005-04-16  3504  	char	signature[8] = {0};
^1da177e4c3f415 Linus Torvalds 2005-04-16  3505  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3506  	/*
^1da177e4c3f415 Linus Torvalds 2005-04-16  3507  	 * check is the application conforms to NIT.
^1da177e4c3f415 Linus Torvalds 2005-04-16  3508  	 */
^1da177e4c3f415 Linus Torvalds 2005-04-16  3509  	if( copy_from_user(signature, arg, 7) )
^1da177e4c3f415 Linus Torvalds 2005-04-16  3510  		return -EFAULT;
^1da177e4c3f415 Linus Torvalds 2005-04-16  3511  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3512  	if( memcmp(signature, "MEGANIT", 7) == 0 ) {
^1da177e4c3f415 Linus Torvalds 2005-04-16  3513  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3514  		uiocp = arg;
^1da177e4c3f415 Linus Torvalds 2005-04-16  3515  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3516  		if( put_user(mc->status, (u8 __user *)&MBOX_P(uiocp)->status) )
^1da177e4c3f415 Linus Torvalds 2005-04-16  3517  			return (-EFAULT);
^1da177e4c3f415 Linus Torvalds 2005-04-16  3518  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3519  		if( mc->cmd == MEGA_MBOXCMD_PASSTHRU ) {
^1da177e4c3f415 Linus Torvalds 2005-04-16  3520  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3521  			umc = MBOX_P(uiocp);
^1da177e4c3f415 Linus Torvalds 2005-04-16  3522  
^1da177e4c3f415 Linus Torvalds 2005-04-16 @3523  			if (get_user(upthru, (mega_passthru __user * __user *)&umc->xferaddr))
^1da177e4c3f415 Linus Torvalds 2005-04-16  3524  				return -EFAULT;
^1da177e4c3f415 Linus Torvalds 2005-04-16  3525  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3526  			if( put_user(mc->status, (u8 __user *)&upthru->scsistatus))
^1da177e4c3f415 Linus Torvalds 2005-04-16  3527  				return (-EFAULT);
^1da177e4c3f415 Linus Torvalds 2005-04-16  3528  		}
^1da177e4c3f415 Linus Torvalds 2005-04-16  3529  	}
^1da177e4c3f415 Linus Torvalds 2005-04-16  3530  	else {
^1da177e4c3f415 Linus Torvalds 2005-04-16  3531  		uioc_mimd = arg;
^1da177e4c3f415 Linus Torvalds 2005-04-16  3532  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3533  		if( put_user(mc->status, (u8 __user *)&uioc_mimd->mbox[17]) )
^1da177e4c3f415 Linus Torvalds 2005-04-16  3534  			return (-EFAULT);
^1da177e4c3f415 Linus Torvalds 2005-04-16  3535  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3536  		if( mc->cmd == MEGA_MBOXCMD_PASSTHRU ) {
^1da177e4c3f415 Linus Torvalds 2005-04-16  3537  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3538  			umc = (megacmd_t __user *)uioc_mimd->mbox;
^1da177e4c3f415 Linus Torvalds 2005-04-16  3539  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3540  			if (get_user(upthru, (mega_passthru __user * __user *)&umc->xferaddr))
^1da177e4c3f415 Linus Torvalds 2005-04-16  3541  				return (-EFAULT);
^1da177e4c3f415 Linus Torvalds 2005-04-16  3542  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3543  			if( put_user(mc->status, (u8 __user *)&upthru->scsistatus) )
^1da177e4c3f415 Linus Torvalds 2005-04-16  3544  				return (-EFAULT);
^1da177e4c3f415 Linus Torvalds 2005-04-16  3545  		}
^1da177e4c3f415 Linus Torvalds 2005-04-16  3546  	}
^1da177e4c3f415 Linus Torvalds 2005-04-16  3547  
^1da177e4c3f415 Linus Torvalds 2005-04-16  3548  	return 0;
^1da177e4c3f415 Linus Torvalds 2005-04-16  3549  }
^1da177e4c3f415 Linus Torvalds 2005-04-16  3550  

:::::: The code at line 3523 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
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-23  3:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-23  3:10 [linux-next:master 5037/8910] drivers/scsi/megaraid.c:3523:29: sparse: sparse: Using plain integer as NULL pointer kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.