All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "André Almeida" <andrealmeid@igalia.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Darren Hart" <dvhart@infradead.org>,
	"Davidlohr Bueso" <dave@stgolabs.net>,
	"Shuah Khan" <skhan@linuxfoundation.org>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Sebastian Andrzej Siewior" <bigeasy@linutronix.de>,
	"Waiman Long" <longman@redhat.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	linux-kselftest@vger.kernel.org, linux-api@vger.kernel.org,
	"André Almeida" <andrealmeid@igalia.com>
Subject: Re: [PATCH v4 4/7] futex: Create set_robust_list2
Date: Thu, 22 May 2025 19:39:54 +0800	[thread overview]
Message-ID: <202505221953.JKgFsA3U-lkp@intel.com> (raw)
In-Reply-To: <20250520-tonyk-robust_futex-v4-4-1123093e59de@igalia.com>

Hi André,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 3ee84e3dd88e39b55b534e17a7b9a181f1d46809]

url:    https://github.com/intel-lab-lkp/linux/commits/Andr-Almeida/selftests-futex-Add-ASSERT_-macros/20250521-045231
base:   3ee84e3dd88e39b55b534e17a7b9a181f1d46809
patch link:    https://lore.kernel.org/r/20250520-tonyk-robust_futex-v4-4-1123093e59de%40igalia.com
patch subject: [PATCH v4 4/7] futex: Create set_robust_list2
config: arm-randconfig-r122-20250522 (https://download.01.org/0day-ci/archive/20250522/202505221953.JKgFsA3U-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce: (https://download.01.org/0day-ci/archive/20250522/202505221953.JKgFsA3U-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/202505221953.JKgFsA3U-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   kernel/futex/core.c:581:38: sparse: sparse: cast removes address space '__user' of expression
   kernel/futex/core.c:581:51: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected unsigned int [noderef] [usertype] __user *naddr @@     got void * @@
   kernel/futex/core.c:581:51: sparse:     expected unsigned int [noderef] [usertype] __user *naddr
   kernel/futex/core.c:581:51: sparse:     got void *
   kernel/futex/core.c:597:38: sparse: sparse: cast removes address space '__user' of expression
   kernel/futex/core.c:597:51: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected unsigned int [noderef] [usertype] __user *naddr @@     got void * @@
   kernel/futex/core.c:597:51: sparse:     expected unsigned int [noderef] [usertype] __user *naddr
   kernel/futex/core.c:597:51: sparse:     got void *
   kernel/futex/core.c:1268:59: sparse: sparse: cast removes address space '__user' of expression
>> kernel/futex/core.c:1268:59: sparse: sparse: incorrect type in argument 3 (different address spaces) @@     expected unsigned int [noderef] [usertype] __user *head @@     got unsigned int [usertype] * @@
   kernel/futex/core.c:1268:59: sparse:     expected unsigned int [noderef] [usertype] __user *head
   kernel/futex/core.c:1268:59: sparse:     got unsigned int [usertype] *
   kernel/futex/core.c:978:9: sparse: sparse: context imbalance in 'futex_q_lockptr_lock' - wrong count at exit

vim +1268 kernel/futex/core.c

04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1247  
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1248  /*
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1249   * Walk curr->robust_list (very carefully, it's a userspace list!)
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1250   * and mark any locks found there dead, and notify any waiters.
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1251   *
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1252   * We silently return on any sign of list-walking problem.
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1253   */
1c5e99b662506e kernel/futex/core.c André Almeida 2025-05-20  1254  static void exit_robust_list32(struct task_struct *curr,
1c5e99b662506e kernel/futex/core.c André Almeida 2025-05-20  1255  			       struct robust_list_head32 __user *head)
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1256  {
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1257  	struct robust_list __user *entry, *next_entry, *pending;
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1258  	unsigned int limit = ROBUST_LIST_LIMIT, pi, pip;
3f649ab728cda8 kernel/futex.c      Kees Cook     2020-06-03  1259  	unsigned int next_pi;
b9412773325c3a kernel/futex/core.c André Almeida 2025-05-20  1260  	u32 uentry, next_uentry, upending;
b9412773325c3a kernel/futex/core.c André Almeida 2025-05-20  1261  	s32 futex_offset;
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1262  	int rc;
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1263  
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1264  	/*
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1265  	 * Fetch the list head (which was registered earlier, via
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1266  	 * sys_set_robust_list()):
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1267  	 */
b9412773325c3a kernel/futex/core.c André Almeida 2025-05-20 @1268  	if (fetch_robust_entry32((u32 *)&uentry, &entry, (u32 *)&head->list.next, &pi))
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1269  		return;
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1270  	/*
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1271  	 * Fetch the relative futex offset:
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1272  	 */
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1273  	if (get_user(futex_offset, &head->futex_offset))
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1274  		return;
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1275  	/*
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1276  	 * Fetch any possibly pending lock-add first, and handle it
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1277  	 * if it exists:
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1278  	 */
b9412773325c3a kernel/futex/core.c André Almeida 2025-05-20  1279  	if (fetch_robust_entry32(&upending, &pending,
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1280  			       &head->list_op_pending, &pip))
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1281  		return;
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1282  
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1283  	next_entry = NULL;	/* avoid warning with gcc */
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1284  	while (entry != (struct robust_list __user *) &head->list) {
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1285  		/*
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1286  		 * Fetch the next entry in the list before calling
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1287  		 * handle_futex_death:
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1288  		 */
b9412773325c3a kernel/futex/core.c André Almeida 2025-05-20  1289  		rc = fetch_robust_entry32(&next_uentry, &next_entry,
b9412773325c3a kernel/futex/core.c André Almeida 2025-05-20  1290  			(u32 __user *)&entry->next, &next_pi);
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1291  		/*
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1292  		 * A pending lock might already be on the list, so
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1293  		 * dont process it twice:
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1294  		 */
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1295  		if (entry != pending) {
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1296  			void __user *uaddr = futex_uaddr(entry, futex_offset);
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1297  
ca16d5bee59807 kernel/futex.c      Yang Tao      2019-11-06  1298  			if (handle_futex_death(uaddr, curr, pi,
ca16d5bee59807 kernel/futex.c      Yang Tao      2019-11-06  1299  					       HANDLE_DEATH_LIST))
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1300  				return;
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1301  		}
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1302  		if (rc)
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1303  			return;
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1304  		uentry = next_uentry;
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1305  		entry = next_entry;
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1306  		pi = next_pi;
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1307  		/*
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1308  		 * Avoid excessively long or circular lists:
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1309  		 */
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1310  		if (!--limit)
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1311  			break;
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1312  
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1313  		cond_resched();
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1314  	}
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1315  	if (pending) {
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1316  		void __user *uaddr = futex_uaddr(pending, futex_offset);
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1317  
ca16d5bee59807 kernel/futex.c      Yang Tao      2019-11-06  1318  		handle_futex_death(uaddr, curr, pip, HANDLE_DEATH_PENDING);
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1319  	}
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1320  }
04e7712f446058 kernel/futex.c      Arnd Bergmann 2018-04-17  1321  

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

  parent reply	other threads:[~2025-05-22 11:40 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-20 20:48 [PATCH v4 0/7] futex: Create set_robust_list2 André Almeida
2025-05-20 20:48 ` [PATCH v4 1/7] selftests/futex: Add ASSERT_ macros André Almeida
2025-05-20 20:48 ` [PATCH v4 2/7] selftests/futex: Create test for robust list André Almeida
2025-05-20 20:48 ` [PATCH v4 3/7] futex: Use explicit sizes for compat_exit_robust_list André Almeida
2025-05-21 13:32   ` kernel test robot
2025-05-20 20:48 ` [PATCH v4 4/7] futex: Create set_robust_list2 André Almeida
2025-05-21 14:24   ` kernel test robot
2025-05-22 11:39   ` kernel test robot [this message]
2025-05-20 20:48 ` [PATCH v4 5/7] futex: Wire up set_robust_list2 syscall André Almeida
2025-05-21 20:23   ` kernel test robot
2025-05-20 20:48 ` [PATCH v4 6/7] futex: Remove the limit of elements for sys_set_robust_list2 lists André Almeida
2025-05-20 20:48 ` [PATCH v4 7/7] selftests: futex: Expand robust list test for the new interface André Almeida

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202505221953.JKgFsA3U-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=andrealmeid@igalia.com \
    --cc=arnd@arndb.de \
    --cc=bigeasy@linutronix.de \
    --cc=dave@stgolabs.net \
    --cc=dvhart@infradead.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=longman@redhat.com \
    --cc=mingo@redhat.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=peterz@infradead.org \
    --cc=skhan@linuxfoundation.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.