lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202312150531.zCYPyiP3-lkp@intel.com>
Date: Fri, 15 Dec 2023 05:26:48 +0800
From: kernel test robot <lkp@...el.com>
To: Mark Rutland <mark.rutland@....com>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
	Ingo Molnar <mingo@...nel.org>
Subject: fs/notify/mark.c:462:13: sparse: sparse: incorrect type in
 initializer (different address spaces)

Hi Mark,

FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   5bd7ef53ffe5ca580e93e74eb8c81ed191ddc4bd
commit: df79ed2c064363cdc7d2d896923c1885d4e30520 locking/atomics: Simplify cmpxchg() instrumentation
date:   5 years ago
config: x86_64-randconfig-x003-20230627 (https://download.01.org/0day-ci/archive/20231215/202312150531.zCYPyiP3-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231215/202312150531.zCYPyiP3-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312150531.zCYPyiP3-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> fs/notify/mark.c:462:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct fsnotify_mark_connector [noderef] __rcu *__new @@     got struct fsnotify_mark_connector *[assigned] conn @@
   fs/notify/mark.c:462:13: sparse:     expected struct fsnotify_mark_connector [noderef] __rcu *__new
   fs/notify/mark.c:462:13: sparse:     got struct fsnotify_mark_connector *[assigned] conn
   fs/notify/mark.c:224:9: sparse: sparse: context imbalance in 'fsnotify_put_mark' - unexpected unlock
   fs/notify/mark.c:310:25: sparse: sparse: context imbalance in 'fsnotify_prepare_user_wait' - unexpected unlock
   fs/notify/mark.c:325:9: sparse: sparse: context imbalance in 'fsnotify_finish_user_wait' - wrong count at exit
   fs/notify/mark.c:478:39: sparse: sparse: context imbalance in 'fsnotify_grab_connector' - different lock contexts for basic block
   fs/notify/mark.c:562:20: sparse: sparse: context imbalance in 'fsnotify_add_mark_list' - unexpected unlock
   fs/notify/mark.c:646:25: sparse: sparse: context imbalance in 'fsnotify_find_mark' - unexpected unlock
   fs/notify/mark.c:718:17: sparse: sparse: context imbalance in 'fsnotify_destroy_marks' - unexpected unlock
   fs/notify/mark.o: warning: objtool: fsnotify_grab_connector()+0x17d: sibling call from callable instruction with modified stack frame
   fs/notify/mark.o: warning: objtool: fsnotify_put_mark_wake()+0x9e: sibling call from callable instruction with modified stack frame
   fs/notify/mark.o: warning: objtool: fsnotify_clear_marks_by_group()+0x1b2: sibling call from callable instruction with modified stack frame

vim +462 fs/notify/mark.c

8edc6e1688fc8f Jan Kara       2014-11-13  438  
9dd813c15b2c10 Jan Kara       2017-03-14  439  static int fsnotify_attach_connector_to_object(
08991e83b72866 Jan Kara       2017-02-01  440  				struct fsnotify_mark_connector __rcu **connp,
86ffe245c430f0 Jan Kara       2017-03-14  441  				struct inode *inode,
86ffe245c430f0 Jan Kara       2017-03-14  442  				struct vfsmount *mnt)
9dd813c15b2c10 Jan Kara       2017-03-14  443  {
9dd813c15b2c10 Jan Kara       2017-03-14  444  	struct fsnotify_mark_connector *conn;
9dd813c15b2c10 Jan Kara       2017-03-14  445  
755b5bc681eb46 Jan Kara       2017-03-14  446  	conn = kmem_cache_alloc(fsnotify_mark_connector_cachep, GFP_KERNEL);
9dd813c15b2c10 Jan Kara       2017-03-14  447  	if (!conn)
9dd813c15b2c10 Jan Kara       2017-03-14  448  		return -ENOMEM;
04662cab59fc3e Jan Kara       2017-02-01  449  	spin_lock_init(&conn->lock);
9dd813c15b2c10 Jan Kara       2017-03-14  450  	INIT_HLIST_HEAD(&conn->list);
86ffe245c430f0 Jan Kara       2017-03-14  451  	if (inode) {
d6f7b98bc8147a Amir Goldstein 2018-04-20  452  		conn->type = FSNOTIFY_OBJ_TYPE_INODE;
08991e83b72866 Jan Kara       2017-02-01  453  		conn->inode = igrab(inode);
86ffe245c430f0 Jan Kara       2017-03-14  454  	} else {
d6f7b98bc8147a Amir Goldstein 2018-04-20  455  		conn->type = FSNOTIFY_OBJ_TYPE_VFSMOUNT;
86ffe245c430f0 Jan Kara       2017-03-14  456  		conn->mnt = mnt;
86ffe245c430f0 Jan Kara       2017-03-14  457  	}
9dd813c15b2c10 Jan Kara       2017-03-14  458  	/*
04662cab59fc3e Jan Kara       2017-02-01  459  	 * cmpxchg() provides the barrier so that readers of *connp can see
04662cab59fc3e Jan Kara       2017-02-01  460  	 * only initialized structure
9dd813c15b2c10 Jan Kara       2017-03-14  461  	 */
04662cab59fc3e Jan Kara       2017-02-01 @462  	if (cmpxchg(connp, NULL, conn)) {
04662cab59fc3e Jan Kara       2017-02-01  463  		/* Someone else created list structure for us */
08991e83b72866 Jan Kara       2017-02-01  464  		if (inode)
08991e83b72866 Jan Kara       2017-02-01  465  			iput(inode);
755b5bc681eb46 Jan Kara       2017-03-14  466  		kmem_cache_free(fsnotify_mark_connector_cachep, conn);
04662cab59fc3e Jan Kara       2017-02-01  467  	}
9dd813c15b2c10 Jan Kara       2017-03-14  468  
9dd813c15b2c10 Jan Kara       2017-03-14  469  	return 0;
9dd813c15b2c10 Jan Kara       2017-03-14  470  }
9dd813c15b2c10 Jan Kara       2017-03-14  471  

:::::: The code at line 462 was first introduced by commit
:::::: 04662cab59fc3e8421fd7a0539d304d51d2750a4 fsnotify: Lock object list with connector lock

:::::: TO: Jan Kara <jack@...e.cz>
:::::: CC: Jan Kara <jack@...e.cz>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ