All of lore.kernel.org
 help / color / mirror / Atom feed
* kernel/trace/trace_events_user.c:1826:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
@ 2023-12-14 13:35 kernel test robot
  2023-12-18  2:09 ` Liu, Yujie
  0 siblings, 1 reply; 4+ messages in thread
From: kernel test robot @ 2023-12-14 13:35 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp

:::::: 
:::::: Manual check reason: "only kconfig file changed"
:::::: 

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: "Steven Rostedt (Google)" <rostedt@goodmis.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   5bd7ef53ffe5ca580e93e74eb8c81ed191ddc4bd
commit: 88fe1ec75fcb296579e05eaf3807da3ee83137e4 tracing: Unbreak user events
date:   9 months ago
:::::: branch date: 18 hours ago
:::::: commit date: 9 months ago
config: i386-randconfig-061-20231101 (https://download.01.org/0day-ci/archive/20231214/202312142158.dqa8GNKr-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/20231214/202312142158.dqa8GNKr-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/r/202312142158.dqa8GNKr-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> kernel/trace/trace_events_user.c:1826:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> kernel/trace/trace_events_user.c:1826:16: sparse:    struct user_event_refs [noderef] __rcu *
>> kernel/trace/trace_events_user.c:1826:16: sparse:    struct user_event_refs *
   kernel/trace/trace_events_user.c:1934:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/trace/trace_events_user.c:1934:16: sparse:    struct user_event_refs [noderef] __rcu *
   kernel/trace/trace_events_user.c:1934:16: sparse:    struct user_event_refs *
   kernel/trace/trace_events_user.c:1961:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/trace/trace_events_user.c:1961:9: sparse:    struct user_event_refs [noderef] __rcu *
   kernel/trace/trace_events_user.c:1961:9: sparse:    struct user_event_refs *

vim +1826 kernel/trace/trace_events_user.c

7f5a08c79df35e Beau Belgrave 2022-01-18  1808  
7f5a08c79df35e Beau Belgrave 2022-01-18  1809  /*
7f5a08c79df35e Beau Belgrave 2022-01-18  1810   * Validates the user payload and writes via iterator.
7f5a08c79df35e Beau Belgrave 2022-01-18  1811   */
7f5a08c79df35e Beau Belgrave 2022-01-18  1812  static ssize_t user_events_write_core(struct file *file, struct iov_iter *i)
7f5a08c79df35e Beau Belgrave 2022-01-18  1813  {
e5d271812e7a4d Beau Belgrave 2022-09-30  1814  	struct user_event_file_info *info = file->private_data;
7f5a08c79df35e Beau Belgrave 2022-01-18  1815  	struct user_event_refs *refs;
7f5a08c79df35e Beau Belgrave 2022-01-18  1816  	struct user_event *user = NULL;
7f5a08c79df35e Beau Belgrave 2022-01-18  1817  	struct tracepoint *tp;
7f5a08c79df35e Beau Belgrave 2022-01-18  1818  	ssize_t ret = i->count;
7f5a08c79df35e Beau Belgrave 2022-01-18  1819  	int idx;
7f5a08c79df35e Beau Belgrave 2022-01-18  1820  
7f5a08c79df35e Beau Belgrave 2022-01-18  1821  	if (unlikely(copy_from_iter(&idx, sizeof(idx), i) != sizeof(idx)))
7f5a08c79df35e Beau Belgrave 2022-01-18  1822  		return -EFAULT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1823  
7f5a08c79df35e Beau Belgrave 2022-01-18  1824  	rcu_read_lock_sched();
7f5a08c79df35e Beau Belgrave 2022-01-18  1825  
e5d271812e7a4d Beau Belgrave 2022-09-30 @1826  	refs = rcu_dereference_sched(info->refs);
7f5a08c79df35e Beau Belgrave 2022-01-18  1827  
7f5a08c79df35e Beau Belgrave 2022-01-18  1828  	/*
7f5a08c79df35e Beau Belgrave 2022-01-18  1829  	 * The refs->events array is protected by RCU, and new items may be
7f5a08c79df35e Beau Belgrave 2022-01-18  1830  	 * added. But the user retrieved from indexing into the events array
7f5a08c79df35e Beau Belgrave 2022-01-18  1831  	 * shall be immutable while the file is opened.
7f5a08c79df35e Beau Belgrave 2022-01-18  1832  	 */
7f5a08c79df35e Beau Belgrave 2022-01-18  1833  	if (likely(refs && idx < refs->count))
7f5a08c79df35e Beau Belgrave 2022-01-18  1834  		user = refs->events[idx];
7f5a08c79df35e Beau Belgrave 2022-01-18  1835  
7f5a08c79df35e Beau Belgrave 2022-01-18  1836  	rcu_read_unlock_sched();
7f5a08c79df35e Beau Belgrave 2022-01-18  1837  
7f5a08c79df35e Beau Belgrave 2022-01-18  1838  	if (unlikely(user == NULL))
7f5a08c79df35e Beau Belgrave 2022-01-18  1839  		return -ENOENT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1840  
2467cda1b5c97a Beau Belgrave 2022-01-18  1841  	if (unlikely(i->count < user->min_size))
2467cda1b5c97a Beau Belgrave 2022-01-18  1842  		return -EINVAL;
2467cda1b5c97a Beau Belgrave 2022-01-18  1843  
7f5a08c79df35e Beau Belgrave 2022-01-18  1844  	tp = &user->tracepoint;
7f5a08c79df35e Beau Belgrave 2022-01-18  1845  
7f5a08c79df35e Beau Belgrave 2022-01-18  1846  	/*
7f5a08c79df35e Beau Belgrave 2022-01-18  1847  	 * It's possible key.enabled disables after this check, however
7f5a08c79df35e Beau Belgrave 2022-01-18  1848  	 * we don't mind if a few events are included in this condition.
7f5a08c79df35e Beau Belgrave 2022-01-18  1849  	 */
7f5a08c79df35e Beau Belgrave 2022-01-18  1850  	if (likely(atomic_read(&tp->key.enabled) > 0)) {
7f5a08c79df35e Beau Belgrave 2022-01-18  1851  		struct tracepoint_func *probe_func_ptr;
7f5a08c79df35e Beau Belgrave 2022-01-18  1852  		user_event_func_t probe_func;
0279400ad38d85 Beau Belgrave 2022-01-18  1853  		struct iov_iter copy;
7f5a08c79df35e Beau Belgrave 2022-01-18  1854  		void *tpdata;
2467cda1b5c97a Beau Belgrave 2022-01-18  1855  		bool faulted;
7f5a08c79df35e Beau Belgrave 2022-01-18  1856  
0279400ad38d85 Beau Belgrave 2022-01-18  1857  		if (unlikely(fault_in_iov_iter_readable(i, i->count)))
0279400ad38d85 Beau Belgrave 2022-01-18  1858  			return -EFAULT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1859  
2467cda1b5c97a Beau Belgrave 2022-01-18  1860  		faulted = false;
2467cda1b5c97a Beau Belgrave 2022-01-18  1861  
7f5a08c79df35e Beau Belgrave 2022-01-18  1862  		rcu_read_lock_sched();
7f5a08c79df35e Beau Belgrave 2022-01-18  1863  
7f5a08c79df35e Beau Belgrave 2022-01-18  1864  		probe_func_ptr = rcu_dereference_sched(tp->funcs);
7f5a08c79df35e Beau Belgrave 2022-01-18  1865  
7f5a08c79df35e Beau Belgrave 2022-01-18  1866  		if (probe_func_ptr) {
7f5a08c79df35e Beau Belgrave 2022-01-18  1867  			do {
0279400ad38d85 Beau Belgrave 2022-01-18  1868  				copy = *i;
7f5a08c79df35e Beau Belgrave 2022-01-18  1869  				probe_func = probe_func_ptr->func;
7f5a08c79df35e Beau Belgrave 2022-01-18  1870  				tpdata = probe_func_ptr->data;
2467cda1b5c97a Beau Belgrave 2022-01-18  1871  				probe_func(user, &copy, tpdata, &faulted);
7f5a08c79df35e Beau Belgrave 2022-01-18  1872  			} while ((++probe_func_ptr)->func);
7f5a08c79df35e Beau Belgrave 2022-01-18  1873  		}
7f5a08c79df35e Beau Belgrave 2022-01-18  1874  
7f5a08c79df35e Beau Belgrave 2022-01-18  1875  		rcu_read_unlock_sched();
2467cda1b5c97a Beau Belgrave 2022-01-18  1876  
2467cda1b5c97a Beau Belgrave 2022-01-18  1877  		if (unlikely(faulted))
2467cda1b5c97a Beau Belgrave 2022-01-18  1878  			return -EFAULT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1879  	}
7f5a08c79df35e Beau Belgrave 2022-01-18  1880  
7f5a08c79df35e Beau Belgrave 2022-01-18  1881  	return ret;
7f5a08c79df35e Beau Belgrave 2022-01-18  1882  }
7f5a08c79df35e Beau Belgrave 2022-01-18  1883  

:::::: The code at line 1826 was first introduced by commit
:::::: e5d271812e7a4d527e65b0228b4a16795c0e0c6c tracing/user_events: Move pages/locks into groups to prepare for namespaces

:::::: TO: Beau Belgrave <beaub@linux.microsoft.com>
:::::: CC: Steven Rostedt (Google) <rostedt@goodmis.org>

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: kernel/trace/trace_events_user.c:1826:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
  2023-12-14 13:35 kernel/trace/trace_events_user.c:1826:16: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel test robot
@ 2023-12-18  2:09 ` Liu, Yujie
  0 siblings, 0 replies; 4+ messages in thread
From: Liu, Yujie @ 2023-12-18  2:09 UTC (permalink / raw)
  To: lkp, oe-kbuild

not_report

Only kconfig change, not the cause of the sparse warning.

kernel/trace/Kconfig | 1 -
 1 file changed, 1 deletion(-)

-----Original Message-----
From: lkp <lkp@intel.com> 
Sent: Thursday, December 14, 2023 21:35
To: oe-kbuild@lists.linux.dev
Cc: lkp <lkp@intel.com>
Subject: kernel/trace/trace_events_user.c:1826:16: sparse: sparse: incompatible types in comparison expression (different address spaces):

:::::: 
:::::: Manual check reason: "only kconfig file changed"
:::::: 

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: "Steven Rostedt (Google)" <rostedt@goodmis.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   5bd7ef53ffe5ca580e93e74eb8c81ed191ddc4bd
commit: 88fe1ec75fcb296579e05eaf3807da3ee83137e4 tracing: Unbreak user events
date:   9 months ago
:::::: branch date: 18 hours ago
:::::: commit date: 9 months ago
config: i386-randconfig-061-20231101 (https://download.01.org/0day-ci/archive/20231214/202312142158.dqa8GNKr-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/20231214/202312142158.dqa8GNKr-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/r/202312142158.dqa8GNKr-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> kernel/trace/trace_events_user.c:1826:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> kernel/trace/trace_events_user.c:1826:16: sparse:    struct user_event_refs [noderef] __rcu *
>> kernel/trace/trace_events_user.c:1826:16: sparse:    struct user_event_refs *
   kernel/trace/trace_events_user.c:1934:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/trace/trace_events_user.c:1934:16: sparse:    struct user_event_refs [noderef] __rcu *
   kernel/trace/trace_events_user.c:1934:16: sparse:    struct user_event_refs *
   kernel/trace/trace_events_user.c:1961:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/trace/trace_events_user.c:1961:9: sparse:    struct user_event_refs [noderef] __rcu *
   kernel/trace/trace_events_user.c:1961:9: sparse:    struct user_event_refs *

vim +1826 kernel/trace/trace_events_user.c

7f5a08c79df35e Beau Belgrave 2022-01-18  1808  
7f5a08c79df35e Beau Belgrave 2022-01-18  1809  /*
7f5a08c79df35e Beau Belgrave 2022-01-18  1810   * Validates the user payload and writes via iterator.
7f5a08c79df35e Beau Belgrave 2022-01-18  1811   */
7f5a08c79df35e Beau Belgrave 2022-01-18  1812  static ssize_t user_events_write_core(struct file *file, struct iov_iter *i)
7f5a08c79df35e Beau Belgrave 2022-01-18  1813  {
e5d271812e7a4d Beau Belgrave 2022-09-30  1814  	struct user_event_file_info *info = file->private_data;
7f5a08c79df35e Beau Belgrave 2022-01-18  1815  	struct user_event_refs *refs;
7f5a08c79df35e Beau Belgrave 2022-01-18  1816  	struct user_event *user = NULL;
7f5a08c79df35e Beau Belgrave 2022-01-18  1817  	struct tracepoint *tp;
7f5a08c79df35e Beau Belgrave 2022-01-18  1818  	ssize_t ret = i->count;
7f5a08c79df35e Beau Belgrave 2022-01-18  1819  	int idx;
7f5a08c79df35e Beau Belgrave 2022-01-18  1820  
7f5a08c79df35e Beau Belgrave 2022-01-18  1821  	if (unlikely(copy_from_iter(&idx, sizeof(idx), i) != sizeof(idx)))
7f5a08c79df35e Beau Belgrave 2022-01-18  1822  		return -EFAULT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1823  
7f5a08c79df35e Beau Belgrave 2022-01-18  1824  	rcu_read_lock_sched();
7f5a08c79df35e Beau Belgrave 2022-01-18  1825  
e5d271812e7a4d Beau Belgrave 2022-09-30 @1826  	refs = rcu_dereference_sched(info->refs);
7f5a08c79df35e Beau Belgrave 2022-01-18  1827  
7f5a08c79df35e Beau Belgrave 2022-01-18  1828  	/*
7f5a08c79df35e Beau Belgrave 2022-01-18  1829  	 * The refs->events array is protected by RCU, and new items may be
7f5a08c79df35e Beau Belgrave 2022-01-18  1830  	 * added. But the user retrieved from indexing into the events array
7f5a08c79df35e Beau Belgrave 2022-01-18  1831  	 * shall be immutable while the file is opened.
7f5a08c79df35e Beau Belgrave 2022-01-18  1832  	 */
7f5a08c79df35e Beau Belgrave 2022-01-18  1833  	if (likely(refs && idx < refs->count))
7f5a08c79df35e Beau Belgrave 2022-01-18  1834  		user = refs->events[idx];
7f5a08c79df35e Beau Belgrave 2022-01-18  1835  
7f5a08c79df35e Beau Belgrave 2022-01-18  1836  	rcu_read_unlock_sched();
7f5a08c79df35e Beau Belgrave 2022-01-18  1837  
7f5a08c79df35e Beau Belgrave 2022-01-18  1838  	if (unlikely(user == NULL))
7f5a08c79df35e Beau Belgrave 2022-01-18  1839  		return -ENOENT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1840  
2467cda1b5c97a Beau Belgrave 2022-01-18  1841  	if (unlikely(i->count < user->min_size))
2467cda1b5c97a Beau Belgrave 2022-01-18  1842  		return -EINVAL;
2467cda1b5c97a Beau Belgrave 2022-01-18  1843  
7f5a08c79df35e Beau Belgrave 2022-01-18  1844  	tp = &user->tracepoint;
7f5a08c79df35e Beau Belgrave 2022-01-18  1845  
7f5a08c79df35e Beau Belgrave 2022-01-18  1846  	/*
7f5a08c79df35e Beau Belgrave 2022-01-18  1847  	 * It's possible key.enabled disables after this check, however
7f5a08c79df35e Beau Belgrave 2022-01-18  1848  	 * we don't mind if a few events are included in this condition.
7f5a08c79df35e Beau Belgrave 2022-01-18  1849  	 */
7f5a08c79df35e Beau Belgrave 2022-01-18  1850  	if (likely(atomic_read(&tp->key.enabled) > 0)) {
7f5a08c79df35e Beau Belgrave 2022-01-18  1851  		struct tracepoint_func *probe_func_ptr;
7f5a08c79df35e Beau Belgrave 2022-01-18  1852  		user_event_func_t probe_func;
0279400ad38d85 Beau Belgrave 2022-01-18  1853  		struct iov_iter copy;
7f5a08c79df35e Beau Belgrave 2022-01-18  1854  		void *tpdata;
2467cda1b5c97a Beau Belgrave 2022-01-18  1855  		bool faulted;
7f5a08c79df35e Beau Belgrave 2022-01-18  1856  
0279400ad38d85 Beau Belgrave 2022-01-18  1857  		if (unlikely(fault_in_iov_iter_readable(i, i->count)))
0279400ad38d85 Beau Belgrave 2022-01-18  1858  			return -EFAULT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1859  
2467cda1b5c97a Beau Belgrave 2022-01-18  1860  		faulted = false;
2467cda1b5c97a Beau Belgrave 2022-01-18  1861  
7f5a08c79df35e Beau Belgrave 2022-01-18  1862  		rcu_read_lock_sched();
7f5a08c79df35e Beau Belgrave 2022-01-18  1863  
7f5a08c79df35e Beau Belgrave 2022-01-18  1864  		probe_func_ptr = rcu_dereference_sched(tp->funcs);
7f5a08c79df35e Beau Belgrave 2022-01-18  1865  
7f5a08c79df35e Beau Belgrave 2022-01-18  1866  		if (probe_func_ptr) {
7f5a08c79df35e Beau Belgrave 2022-01-18  1867  			do {
0279400ad38d85 Beau Belgrave 2022-01-18  1868  				copy = *i;
7f5a08c79df35e Beau Belgrave 2022-01-18  1869  				probe_func = probe_func_ptr->func;
7f5a08c79df35e Beau Belgrave 2022-01-18  1870  				tpdata = probe_func_ptr->data;
2467cda1b5c97a Beau Belgrave 2022-01-18  1871  				probe_func(user, &copy, tpdata, &faulted);
7f5a08c79df35e Beau Belgrave 2022-01-18  1872  			} while ((++probe_func_ptr)->func);
7f5a08c79df35e Beau Belgrave 2022-01-18  1873  		}
7f5a08c79df35e Beau Belgrave 2022-01-18  1874  
7f5a08c79df35e Beau Belgrave 2022-01-18  1875  		rcu_read_unlock_sched();
2467cda1b5c97a Beau Belgrave 2022-01-18  1876  
2467cda1b5c97a Beau Belgrave 2022-01-18  1877  		if (unlikely(faulted))
2467cda1b5c97a Beau Belgrave 2022-01-18  1878  			return -EFAULT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1879  	}
7f5a08c79df35e Beau Belgrave 2022-01-18  1880  
7f5a08c79df35e Beau Belgrave 2022-01-18  1881  	return ret;
7f5a08c79df35e Beau Belgrave 2022-01-18  1882  }
7f5a08c79df35e Beau Belgrave 2022-01-18  1883  

:::::: The code at line 1826 was first introduced by commit
:::::: e5d271812e7a4d527e65b0228b4a16795c0e0c6c tracing/user_events: Move pages/locks into groups to prepare for namespaces

:::::: TO: Beau Belgrave <beaub@linux.microsoft.com>
:::::: CC: Steven Rostedt (Google) <rostedt@goodmis.org>

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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: kernel/trace/trace_events_user.c:1826:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
  2023-11-11 15:06 kernel test robot
@ 2023-11-13  1:08 ` Liu, Yujie
  0 siblings, 0 replies; 4+ messages in thread
From: Liu, Yujie @ 2023-11-13  1:08 UTC (permalink / raw)
  To: lkp, oe-kbuild

not_report

Only kconfig file is changed. No relation with the "incompatible types in comparison" sparse warning.

kernel/trace/Kconfig | 1 -
 1 file changed, 1 deletion(-)

-----Original Message-----
From: lkp <lkp@intel.com> 
Sent: Saturday, November 11, 2023 23:07
To: oe-kbuild@lists.linux.dev
Cc: lkp <lkp@intel.com>
Subject: kernel/trace/trace_events_user.c:1826:16: sparse: sparse: incompatible types in comparison expression (different address spaces):

:::::: 
:::::: Manual check reason: "only kconfig file changed"
:::::: 

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: "Steven Rostedt (Google)" <rostedt@goodmis.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   3ca112b71f35dd5d99fc4571a56b5fc6f0c15814
commit: 88fe1ec75fcb296579e05eaf3807da3ee83137e4 tracing: Unbreak user events
date:   8 months ago
:::::: branch date: 14 hours ago
:::::: commit date: 8 months ago
config: i386-randconfig-062-20230909 (https://download.01.org/0day-ci/archive/20231111/202311112237.hC0R2SES-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/20231111/202311112237.hC0R2SES-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/r/202311112237.hC0R2SES-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> kernel/trace/trace_events_user.c:1826:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> kernel/trace/trace_events_user.c:1826:16: sparse:    struct user_event_refs [noderef] __rcu *
>> kernel/trace/trace_events_user.c:1826:16: sparse:    struct user_event_refs *
   kernel/trace/trace_events_user.c:1934:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/trace/trace_events_user.c:1934:16: sparse:    struct user_event_refs [noderef] __rcu *
   kernel/trace/trace_events_user.c:1934:16: sparse:    struct user_event_refs *
   kernel/trace/trace_events_user.c:1961:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/trace/trace_events_user.c:1961:9: sparse:    struct user_event_refs [noderef] __rcu *
   kernel/trace/trace_events_user.c:1961:9: sparse:    struct user_event_refs *

vim +1826 kernel/trace/trace_events_user.c

7f5a08c79df35e Beau Belgrave 2022-01-18  1808  
7f5a08c79df35e Beau Belgrave 2022-01-18  1809  /*
7f5a08c79df35e Beau Belgrave 2022-01-18  1810   * Validates the user payload and writes via iterator.
7f5a08c79df35e Beau Belgrave 2022-01-18  1811   */
7f5a08c79df35e Beau Belgrave 2022-01-18  1812  static ssize_t user_events_write_core(struct file *file, struct iov_iter *i)
7f5a08c79df35e Beau Belgrave 2022-01-18  1813  {
e5d271812e7a4d Beau Belgrave 2022-09-30  1814  	struct user_event_file_info *info = file->private_data;
7f5a08c79df35e Beau Belgrave 2022-01-18  1815  	struct user_event_refs *refs;
7f5a08c79df35e Beau Belgrave 2022-01-18  1816  	struct user_event *user = NULL;
7f5a08c79df35e Beau Belgrave 2022-01-18  1817  	struct tracepoint *tp;
7f5a08c79df35e Beau Belgrave 2022-01-18  1818  	ssize_t ret = i->count;
7f5a08c79df35e Beau Belgrave 2022-01-18  1819  	int idx;
7f5a08c79df35e Beau Belgrave 2022-01-18  1820  
7f5a08c79df35e Beau Belgrave 2022-01-18  1821  	if (unlikely(copy_from_iter(&idx, sizeof(idx), i) != sizeof(idx)))
7f5a08c79df35e Beau Belgrave 2022-01-18  1822  		return -EFAULT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1823  
7f5a08c79df35e Beau Belgrave 2022-01-18  1824  	rcu_read_lock_sched();
7f5a08c79df35e Beau Belgrave 2022-01-18  1825  
e5d271812e7a4d Beau Belgrave 2022-09-30 @1826  	refs = rcu_dereference_sched(info->refs);
7f5a08c79df35e Beau Belgrave 2022-01-18  1827  
7f5a08c79df35e Beau Belgrave 2022-01-18  1828  	/*
7f5a08c79df35e Beau Belgrave 2022-01-18  1829  	 * The refs->events array is protected by RCU, and new items may be
7f5a08c79df35e Beau Belgrave 2022-01-18  1830  	 * added. But the user retrieved from indexing into the events array
7f5a08c79df35e Beau Belgrave 2022-01-18  1831  	 * shall be immutable while the file is opened.
7f5a08c79df35e Beau Belgrave 2022-01-18  1832  	 */
7f5a08c79df35e Beau Belgrave 2022-01-18  1833  	if (likely(refs && idx < refs->count))
7f5a08c79df35e Beau Belgrave 2022-01-18  1834  		user = refs->events[idx];
7f5a08c79df35e Beau Belgrave 2022-01-18  1835  
7f5a08c79df35e Beau Belgrave 2022-01-18  1836  	rcu_read_unlock_sched();
7f5a08c79df35e Beau Belgrave 2022-01-18  1837  
7f5a08c79df35e Beau Belgrave 2022-01-18  1838  	if (unlikely(user == NULL))
7f5a08c79df35e Beau Belgrave 2022-01-18  1839  		return -ENOENT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1840  
2467cda1b5c97a Beau Belgrave 2022-01-18  1841  	if (unlikely(i->count < user->min_size))
2467cda1b5c97a Beau Belgrave 2022-01-18  1842  		return -EINVAL;
2467cda1b5c97a Beau Belgrave 2022-01-18  1843  
7f5a08c79df35e Beau Belgrave 2022-01-18  1844  	tp = &user->tracepoint;
7f5a08c79df35e Beau Belgrave 2022-01-18  1845  
7f5a08c79df35e Beau Belgrave 2022-01-18  1846  	/*
7f5a08c79df35e Beau Belgrave 2022-01-18  1847  	 * It's possible key.enabled disables after this check, however
7f5a08c79df35e Beau Belgrave 2022-01-18  1848  	 * we don't mind if a few events are included in this condition.
7f5a08c79df35e Beau Belgrave 2022-01-18  1849  	 */
7f5a08c79df35e Beau Belgrave 2022-01-18  1850  	if (likely(atomic_read(&tp->key.enabled) > 0)) {
7f5a08c79df35e Beau Belgrave 2022-01-18  1851  		struct tracepoint_func *probe_func_ptr;
7f5a08c79df35e Beau Belgrave 2022-01-18  1852  		user_event_func_t probe_func;
0279400ad38d85 Beau Belgrave 2022-01-18  1853  		struct iov_iter copy;
7f5a08c79df35e Beau Belgrave 2022-01-18  1854  		void *tpdata;
2467cda1b5c97a Beau Belgrave 2022-01-18  1855  		bool faulted;
7f5a08c79df35e Beau Belgrave 2022-01-18  1856  
0279400ad38d85 Beau Belgrave 2022-01-18  1857  		if (unlikely(fault_in_iov_iter_readable(i, i->count)))
0279400ad38d85 Beau Belgrave 2022-01-18  1858  			return -EFAULT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1859  
2467cda1b5c97a Beau Belgrave 2022-01-18  1860  		faulted = false;
2467cda1b5c97a Beau Belgrave 2022-01-18  1861  
7f5a08c79df35e Beau Belgrave 2022-01-18  1862  		rcu_read_lock_sched();
7f5a08c79df35e Beau Belgrave 2022-01-18  1863  
7f5a08c79df35e Beau Belgrave 2022-01-18  1864  		probe_func_ptr = rcu_dereference_sched(tp->funcs);
7f5a08c79df35e Beau Belgrave 2022-01-18  1865  
7f5a08c79df35e Beau Belgrave 2022-01-18  1866  		if (probe_func_ptr) {
7f5a08c79df35e Beau Belgrave 2022-01-18  1867  			do {
0279400ad38d85 Beau Belgrave 2022-01-18  1868  				copy = *i;
7f5a08c79df35e Beau Belgrave 2022-01-18  1869  				probe_func = probe_func_ptr->func;
7f5a08c79df35e Beau Belgrave 2022-01-18  1870  				tpdata = probe_func_ptr->data;
2467cda1b5c97a Beau Belgrave 2022-01-18  1871  				probe_func(user, &copy, tpdata, &faulted);
7f5a08c79df35e Beau Belgrave 2022-01-18  1872  			} while ((++probe_func_ptr)->func);
7f5a08c79df35e Beau Belgrave 2022-01-18  1873  		}
7f5a08c79df35e Beau Belgrave 2022-01-18  1874  
7f5a08c79df35e Beau Belgrave 2022-01-18  1875  		rcu_read_unlock_sched();
2467cda1b5c97a Beau Belgrave 2022-01-18  1876  
2467cda1b5c97a Beau Belgrave 2022-01-18  1877  		if (unlikely(faulted))
2467cda1b5c97a Beau Belgrave 2022-01-18  1878  			return -EFAULT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1879  	}
7f5a08c79df35e Beau Belgrave 2022-01-18  1880  
7f5a08c79df35e Beau Belgrave 2022-01-18  1881  	return ret;
7f5a08c79df35e Beau Belgrave 2022-01-18  1882  }
7f5a08c79df35e Beau Belgrave 2022-01-18  1883  

:::::: The code at line 1826 was first introduced by commit
:::::: e5d271812e7a4d527e65b0228b4a16795c0e0c6c tracing/user_events: Move pages/locks into groups to prepare for namespaces

:::::: TO: Beau Belgrave <beaub@linux.microsoft.com>
:::::: CC: Steven Rostedt (Google) <rostedt@goodmis.org>

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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* kernel/trace/trace_events_user.c:1826:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
@ 2023-11-11 15:06 kernel test robot
  2023-11-13  1:08 ` Liu, Yujie
  0 siblings, 1 reply; 4+ messages in thread
From: kernel test robot @ 2023-11-11 15:06 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp

:::::: 
:::::: Manual check reason: "only kconfig file changed"
:::::: 

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: "Steven Rostedt (Google)" <rostedt@goodmis.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   3ca112b71f35dd5d99fc4571a56b5fc6f0c15814
commit: 88fe1ec75fcb296579e05eaf3807da3ee83137e4 tracing: Unbreak user events
date:   8 months ago
:::::: branch date: 14 hours ago
:::::: commit date: 8 months ago
config: i386-randconfig-062-20230909 (https://download.01.org/0day-ci/archive/20231111/202311112237.hC0R2SES-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/20231111/202311112237.hC0R2SES-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/r/202311112237.hC0R2SES-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> kernel/trace/trace_events_user.c:1826:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> kernel/trace/trace_events_user.c:1826:16: sparse:    struct user_event_refs [noderef] __rcu *
>> kernel/trace/trace_events_user.c:1826:16: sparse:    struct user_event_refs *
   kernel/trace/trace_events_user.c:1934:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/trace/trace_events_user.c:1934:16: sparse:    struct user_event_refs [noderef] __rcu *
   kernel/trace/trace_events_user.c:1934:16: sparse:    struct user_event_refs *
   kernel/trace/trace_events_user.c:1961:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/trace/trace_events_user.c:1961:9: sparse:    struct user_event_refs [noderef] __rcu *
   kernel/trace/trace_events_user.c:1961:9: sparse:    struct user_event_refs *

vim +1826 kernel/trace/trace_events_user.c

7f5a08c79df35e Beau Belgrave 2022-01-18  1808  
7f5a08c79df35e Beau Belgrave 2022-01-18  1809  /*
7f5a08c79df35e Beau Belgrave 2022-01-18  1810   * Validates the user payload and writes via iterator.
7f5a08c79df35e Beau Belgrave 2022-01-18  1811   */
7f5a08c79df35e Beau Belgrave 2022-01-18  1812  static ssize_t user_events_write_core(struct file *file, struct iov_iter *i)
7f5a08c79df35e Beau Belgrave 2022-01-18  1813  {
e5d271812e7a4d Beau Belgrave 2022-09-30  1814  	struct user_event_file_info *info = file->private_data;
7f5a08c79df35e Beau Belgrave 2022-01-18  1815  	struct user_event_refs *refs;
7f5a08c79df35e Beau Belgrave 2022-01-18  1816  	struct user_event *user = NULL;
7f5a08c79df35e Beau Belgrave 2022-01-18  1817  	struct tracepoint *tp;
7f5a08c79df35e Beau Belgrave 2022-01-18  1818  	ssize_t ret = i->count;
7f5a08c79df35e Beau Belgrave 2022-01-18  1819  	int idx;
7f5a08c79df35e Beau Belgrave 2022-01-18  1820  
7f5a08c79df35e Beau Belgrave 2022-01-18  1821  	if (unlikely(copy_from_iter(&idx, sizeof(idx), i) != sizeof(idx)))
7f5a08c79df35e Beau Belgrave 2022-01-18  1822  		return -EFAULT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1823  
7f5a08c79df35e Beau Belgrave 2022-01-18  1824  	rcu_read_lock_sched();
7f5a08c79df35e Beau Belgrave 2022-01-18  1825  
e5d271812e7a4d Beau Belgrave 2022-09-30 @1826  	refs = rcu_dereference_sched(info->refs);
7f5a08c79df35e Beau Belgrave 2022-01-18  1827  
7f5a08c79df35e Beau Belgrave 2022-01-18  1828  	/*
7f5a08c79df35e Beau Belgrave 2022-01-18  1829  	 * The refs->events array is protected by RCU, and new items may be
7f5a08c79df35e Beau Belgrave 2022-01-18  1830  	 * added. But the user retrieved from indexing into the events array
7f5a08c79df35e Beau Belgrave 2022-01-18  1831  	 * shall be immutable while the file is opened.
7f5a08c79df35e Beau Belgrave 2022-01-18  1832  	 */
7f5a08c79df35e Beau Belgrave 2022-01-18  1833  	if (likely(refs && idx < refs->count))
7f5a08c79df35e Beau Belgrave 2022-01-18  1834  		user = refs->events[idx];
7f5a08c79df35e Beau Belgrave 2022-01-18  1835  
7f5a08c79df35e Beau Belgrave 2022-01-18  1836  	rcu_read_unlock_sched();
7f5a08c79df35e Beau Belgrave 2022-01-18  1837  
7f5a08c79df35e Beau Belgrave 2022-01-18  1838  	if (unlikely(user == NULL))
7f5a08c79df35e Beau Belgrave 2022-01-18  1839  		return -ENOENT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1840  
2467cda1b5c97a Beau Belgrave 2022-01-18  1841  	if (unlikely(i->count < user->min_size))
2467cda1b5c97a Beau Belgrave 2022-01-18  1842  		return -EINVAL;
2467cda1b5c97a Beau Belgrave 2022-01-18  1843  
7f5a08c79df35e Beau Belgrave 2022-01-18  1844  	tp = &user->tracepoint;
7f5a08c79df35e Beau Belgrave 2022-01-18  1845  
7f5a08c79df35e Beau Belgrave 2022-01-18  1846  	/*
7f5a08c79df35e Beau Belgrave 2022-01-18  1847  	 * It's possible key.enabled disables after this check, however
7f5a08c79df35e Beau Belgrave 2022-01-18  1848  	 * we don't mind if a few events are included in this condition.
7f5a08c79df35e Beau Belgrave 2022-01-18  1849  	 */
7f5a08c79df35e Beau Belgrave 2022-01-18  1850  	if (likely(atomic_read(&tp->key.enabled) > 0)) {
7f5a08c79df35e Beau Belgrave 2022-01-18  1851  		struct tracepoint_func *probe_func_ptr;
7f5a08c79df35e Beau Belgrave 2022-01-18  1852  		user_event_func_t probe_func;
0279400ad38d85 Beau Belgrave 2022-01-18  1853  		struct iov_iter copy;
7f5a08c79df35e Beau Belgrave 2022-01-18  1854  		void *tpdata;
2467cda1b5c97a Beau Belgrave 2022-01-18  1855  		bool faulted;
7f5a08c79df35e Beau Belgrave 2022-01-18  1856  
0279400ad38d85 Beau Belgrave 2022-01-18  1857  		if (unlikely(fault_in_iov_iter_readable(i, i->count)))
0279400ad38d85 Beau Belgrave 2022-01-18  1858  			return -EFAULT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1859  
2467cda1b5c97a Beau Belgrave 2022-01-18  1860  		faulted = false;
2467cda1b5c97a Beau Belgrave 2022-01-18  1861  
7f5a08c79df35e Beau Belgrave 2022-01-18  1862  		rcu_read_lock_sched();
7f5a08c79df35e Beau Belgrave 2022-01-18  1863  
7f5a08c79df35e Beau Belgrave 2022-01-18  1864  		probe_func_ptr = rcu_dereference_sched(tp->funcs);
7f5a08c79df35e Beau Belgrave 2022-01-18  1865  
7f5a08c79df35e Beau Belgrave 2022-01-18  1866  		if (probe_func_ptr) {
7f5a08c79df35e Beau Belgrave 2022-01-18  1867  			do {
0279400ad38d85 Beau Belgrave 2022-01-18  1868  				copy = *i;
7f5a08c79df35e Beau Belgrave 2022-01-18  1869  				probe_func = probe_func_ptr->func;
7f5a08c79df35e Beau Belgrave 2022-01-18  1870  				tpdata = probe_func_ptr->data;
2467cda1b5c97a Beau Belgrave 2022-01-18  1871  				probe_func(user, &copy, tpdata, &faulted);
7f5a08c79df35e Beau Belgrave 2022-01-18  1872  			} while ((++probe_func_ptr)->func);
7f5a08c79df35e Beau Belgrave 2022-01-18  1873  		}
7f5a08c79df35e Beau Belgrave 2022-01-18  1874  
7f5a08c79df35e Beau Belgrave 2022-01-18  1875  		rcu_read_unlock_sched();
2467cda1b5c97a Beau Belgrave 2022-01-18  1876  
2467cda1b5c97a Beau Belgrave 2022-01-18  1877  		if (unlikely(faulted))
2467cda1b5c97a Beau Belgrave 2022-01-18  1878  			return -EFAULT;
7f5a08c79df35e Beau Belgrave 2022-01-18  1879  	}
7f5a08c79df35e Beau Belgrave 2022-01-18  1880  
7f5a08c79df35e Beau Belgrave 2022-01-18  1881  	return ret;
7f5a08c79df35e Beau Belgrave 2022-01-18  1882  }
7f5a08c79df35e Beau Belgrave 2022-01-18  1883  

:::::: The code at line 1826 was first introduced by commit
:::::: e5d271812e7a4d527e65b0228b4a16795c0e0c6c tracing/user_events: Move pages/locks into groups to prepare for namespaces

:::::: TO: Beau Belgrave <beaub@linux.microsoft.com>
:::::: CC: Steven Rostedt (Google) <rostedt@goodmis.org>

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-12-18  2:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-14 13:35 kernel/trace/trace_events_user.c:1826:16: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel test robot
2023-12-18  2:09 ` Liu, Yujie
  -- strict thread matches above, loose matches on Subject: below --
2023-11-11 15:06 kernel test robot
2023-11-13  1:08 ` Liu, Yujie

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.