From nobody Sat Jul 25 02:11:08 2026 Received: from list.codeweavrs.com (list.codeweavers.com [4.36.192.163]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BABE2446C18; Mon, 20 Jul 2026 17:35:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=4.36.192.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784568941; cv=none; b=ukUGgPD/6c4KucUFAX+RPYOEBvhgpBXkjeeQA4zUiZ+LljEv6SSOk8oydTzGcxsk6vu1tmSEx73nFe7g4calr8hpTTtYkIG/EpX+uB9QU+A1EXnEDxeM+S3u3ygpB7AOPc9B93EQkm75ItRHZvuM9Nrt+nEtir0Nh3esruC4TBY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784568941; c=relaxed/simple; bh=+vu8CXOB3dhB9djQatJr0MSEd8mqUG1o3rs661gkyxc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Vykc4FrzdueR8QWPQSDUiRNTMJkAf7/eKLBtcpI5k08HUMVseRxGrZxX+3E/f6MYr0x+MEl+2CxeLQe5zouzFmuVFWVk9c1AgftIN+8ffUvUSj23/Ft5vgxBng7ytRRNN7Q+tnIBgDHY9W2CmcFqRumxcN7rg7+OLVsmc47l9U4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=codeweavers.com; spf=pass smtp.mailfrom=codeweavers.com; dkim=pass (2048-bit key) header.d=list.codeweavers.com header.i=@list.codeweavers.com header.b=M5Hg44lx; arc=none smtp.client-ip=4.36.192.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=codeweavers.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=codeweavers.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=list.codeweavers.com header.i=@list.codeweavers.com header.b="M5Hg44lx" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=list.codeweavers.com; s=list; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=Pd1wrIzqviiVq8qXfyOQyxJp1AOwdmiy8OG3eq1ZRmA=; b=M5Hg44lxcPOY+kU5yTo3rg9BFD 3Z7nKdqMxlwQ7HgTvVCKAvg06b/eHDOgjtviTXWLx/7dFEAaMOOB1ojP4E+gPZIfapCdgW7PY+H/I EGE4lk5ZnlSw5zmmbvpjVKAIneUMKMpR2NKyllHt5TuZ8F5JkClNWoaPm2RdXGCqfmf5qF889DjMo AGuE8PsG69m175REzZeytNVkCL+ajpTEq7GMo/U3buTbJQeEkHSr8nepIGnwZezBxVn1MjETKzJL0 aYTfWaGqN+jZNl11LfMNIf/cq1TfONniAW7j++g2LO2kkpsrjU2RizFgl7mhtS1CZI/eCLAm+7/ik XexIGNaw==; Received: from cw137ip160.mn.codeweavers.com ([10.69.137.160] helo=camazotz.mn.codeweavers.com) by list.codeweavrs.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wlrcg-001Fmy-03; Mon, 20 Jul 2026 12:17:46 -0500 From: Elizabeth Figura To: Arnd Bergmann , Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, wine-devel@list.winehq.org, linux-kselftest@vger.kernel.org, =?UTF-8?q?Iv=C3=A1n=20Ezequiel=20Rodriguez?= , Elizabeth Figura Subject: [PATCH 1/4] docs: ntsync: align uAPI ioctl names and struct layout with ntsync.h Date: Mon, 20 Jul 2026 12:17:37 -0500 Message-ID: <20260720171740.447035-2-zfigura@codeweavers.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260720171740.447035-1-zfigura@codeweavers.com> References: <20260720171740.447035-1-zfigura@codeweavers.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Iv=C3=A1n Ezequiel Rodriguez The userspace-api reference used stale macro names (SEM_POST, SET_EVENT, READ_*, KILL_OWNER) and struct field order that did not match include/uapi/linux/ntsync.h. Update the documentation to match the published uapi so Wine and other consumers grep the correct symbols. Signed-off-by: Iv=C3=A1n Ezequiel Rodriguez Reviewed-by: Elizabeth Figura Signed-off-by: Elizabeth Figura --- Documentation/userspace-api/ntsync.rst | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Documentation/userspace-api/ntsync.rst b/Documentation/userspa= ce-api/ntsync.rst index 25e7c4aef968..535585331380 100644 --- a/Documentation/userspace-api/ntsync.rst +++ b/Documentation/userspace-api/ntsync.rst @@ -83,18 +83,18 @@ structures used in ioctl calls:: }; =20 struct ntsync_event_args { - __u32 signaled; __u32 manual; + __u32 signaled; }; =20 struct ntsync_wait_args { __u64 timeout; __u64 objs; __u32 count; - __u32 owner; __u32 index; - __u32 alert; __u32 flags; + __u32 owner; + __u32 alert; __u32 pad; }; =20 @@ -152,7 +152,7 @@ The ioctls on the device file are as follows: =20 The ioctls on the individual objects are as follows: =20 -.. c:macro:: NTSYNC_IOC_SEM_POST +.. c:macro:: NTSYNC_IOC_SEM_RELEASE =20 Post to a semaphore object. Takes a pointer to a 32-bit integer, which on input holds the count to be added to the semaphore, and on @@ -186,7 +186,7 @@ The ioctls on the individual objects are as follows: unowned and signaled, and eligible threads waiting on it will be woken as appropriate. =20 -.. c:macro:: NTSYNC_IOC_SET_EVENT +.. c:macro:: NTSYNC_IOC_EVENT_SET =20 Signal an event object. Takes a pointer to a 32-bit integer, which on output contains the previous state of the event. @@ -194,12 +194,12 @@ The ioctls on the individual objects are as follows: Eligible threads will be woken, and auto-reset events will be designaled appropriately. =20 -.. c:macro:: NTSYNC_IOC_RESET_EVENT +.. c:macro:: NTSYNC_IOC_EVENT_RESET =20 Designal an event object. Takes a pointer to a 32-bit integer, which on output contains the previous state of the event. =20 -.. c:macro:: NTSYNC_IOC_PULSE_EVENT +.. c:macro:: NTSYNC_IOC_EVENT_PULSE =20 Wake threads waiting on an event object while leaving it in an unsignaled state. Takes a pointer to a 32-bit integer, which on @@ -213,7 +213,7 @@ The ioctls on the individual objects are as follows: afterwards, and a simultaneous read operation will always report the event as unsignaled. =20 -.. c:macro:: NTSYNC_IOC_READ_SEM +.. c:macro:: NTSYNC_IOC_SEM_READ =20 Read the current state of a semaphore object. Takes a pointer to struct :c:type:`ntsync_sem_args`, which is used as follows: @@ -225,7 +225,7 @@ The ioctls on the individual objects are as follows: * - ``max`` - On output, contains the maximum count of the semaphore. =20 -.. c:macro:: NTSYNC_IOC_READ_MUTEX +.. c:macro:: NTSYNC_IOC_MUTEX_READ =20 Read the current state of a mutex object. Takes a pointer to struct :c:type:`ntsync_mutex_args`, which is used as follows: @@ -242,7 +242,7 @@ The ioctls on the individual objects are as follows: ``EOWNERDEAD``. In this case, ``count`` and ``owner`` are set to zero. =20 -.. c:macro:: NTSYNC_IOC_READ_EVENT +.. c:macro:: NTSYNC_IOC_EVENT_READ =20 Read the current state of an event object. Takes a pointer to struct :c:type:`ntsync_event_args`, which is used as follows: @@ -255,7 +255,7 @@ The ioctls on the individual objects are as follows: - On output, contains 1 if the event is a manual-reset event, and 0 otherwise. =20 -.. c:macro:: NTSYNC_IOC_KILL_OWNER +.. c:macro:: NTSYNC_IOC_MUTEX_KILL =20 Mark a mutex as unowned and abandoned if it is owned by the given owner. Takes an input-only pointer to a 32-bit integer denoting the --=20 2.53.0 From nobody Sat Jul 25 02:11:08 2026 Received: from list.codeweavrs.com (list.codeweavers.com [4.36.192.163]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D7BF446828; Mon, 20 Jul 2026 17:35:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=4.36.192.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784568929; cv=none; b=jm3a87UDPEq+WUYAaxpcU091Z0cNu2U4kfSMai/LgR0UHdH3u+yAjVj0WoQpSCTyvb4ITcii7x/d/fBvGsklrLS7Q9l8dP43BQOGvUgC6iUiaRBYRBYR1fWUNZ8kQUY/NYMshtCILs7VaBu6gqCdewHxzvpaEGE7Ipi7tTQQ5vU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784568929; c=relaxed/simple; bh=BbUNTYM56/ulELyMb/+QTJintb3w3cqQTEBM2+tC2vg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cG3RmxVPXpGQ6ob6IAL9FTFl//bFIzjCqZzXmOMqkclj+G8gjpWChC7DfPO7JOQUJaQdEaVw1b9FP1zu2ZarCKYIaV5O8CayydZk8VPod07ouGBvaCvW4DqQvDaC18UopK6M0409mAmzqYrxr00XMibUrZF4LcYFYZOTN9BppU8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=codeweavers.com; spf=pass smtp.mailfrom=codeweavers.com; dkim=pass (2048-bit key) header.d=list.codeweavers.com header.i=@list.codeweavers.com header.b=mcZB1qMQ; arc=none smtp.client-ip=4.36.192.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=codeweavers.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=codeweavers.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=list.codeweavers.com header.i=@list.codeweavers.com header.b="mcZB1qMQ" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=list.codeweavers.com; s=list; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=lfHZg+u8ne+vOi+IymxWIYACUEM7LNtzyJvvMTkgCrU=; b=mcZB1qMQS/bbSi7AsDQXpwIRA/ 8FL9H5UT6Fl9YZrpC99VsYD2uo7Wxvg7tE9BJKOnsD7WRB6CqJ20ta6Jji8mvPbbE5Y2JvM/BVcGn TwgDyGrrB59KiCNpE7cmAKES4AJ66Szs2UfM1HYwFtPPKixyrkwHXAzrw5kXnOGNKJZE9kvr1uLM6 sJn/3NxXv6E3VCP30/JVfpsxtHM5Bbp8nDfC8cB12FGqmmwLiRceSdxBFlw5x44zGc2K9B+Z1MT1e Fhn8yFBnZgFdb+PFIq6L2e0ZNDzderWHce55c6xveqZk1rXmgcADl3yzXsvNxqVGniFkS1WYYlHiB x6vH8rQQ==; Received: from cw137ip160.mn.codeweavers.com ([10.69.137.160] helo=camazotz.mn.codeweavers.com) by list.codeweavrs.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wlrcg-001Fmy-05; Mon, 20 Jul 2026 12:17:46 -0500 From: Elizabeth Figura To: Arnd Bergmann , Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, wine-devel@list.winehq.org, linux-kselftest@vger.kernel.org, =?UTF-8?q?Iv=C3=A1n=20Ezequiel=20Rodriguez?= , Elizabeth Figura Subject: [PATCH 2/4] selftests: ntsync: fix wake_all CREATE_EVENT fd expectation Date: Mon, 20 Jul 2026 12:17:38 -0500 Message-ID: <20260720171740.447035-3-zfigura@codeweavers.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260720171740.447035-1-zfigura@codeweavers.com> References: <20260720171740.447035-1-zfigura@codeweavers.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Iv=C3=A1n Ezequiel Rodriguez wake_all used EXPECT_EQ(0, objs[3]) after NTSYNC_IOC_CREATE_EVENT. The ioctl returns a non-negative file descriptor on success; check EXPECT_LE(0, objs[3]) like the other CREATE_* paths. The incorrect expectation was noted on list (Mar 2025) but is still present in mainline. Signed-off-by: Iv=C3=A1n Ezequiel Rodriguez Reviewed-by: Elizabeth Figura Signed-off-by: Elizabeth Figura --- tools/testing/selftests/drivers/ntsync/ntsync.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/drivers/ntsync/ntsync.c b/tools/testin= g/selftests/drivers/ntsync/ntsync.c index e6a37214aa46..12b4b81edf7f 100644 --- a/tools/testing/selftests/drivers/ntsync/ntsync.c +++ b/tools/testing/selftests/drivers/ntsync/ntsync.c @@ -968,7 +968,7 @@ TEST(wake_all) auto_event_args.manual =3D false; auto_event_args.signaled =3D true; objs[3] =3D ioctl(fd, NTSYNC_IOC_CREATE_EVENT, &auto_event_args); - EXPECT_EQ(0, objs[3]); + EXPECT_LE(0, objs[3]); =20 wait_args.timeout =3D get_abs_timeout(1000); wait_args.objs =3D (uintptr_t)objs; --=20 2.53.0 From nobody Sat Jul 25 02:11:08 2026 Received: from list.codeweavrs.com (list.codeweavers.com [4.36.192.163]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 54D5142B323; Mon, 20 Jul 2026 17:35:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=4.36.192.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784568934; cv=none; b=Gv9TL7OOCvHfG9uKmdop2lPTvT5Z3jt31EP8EMWqhhZ24lkkbOME2oz8MIpoXUoLEB1gftF6sy6PVQX97s945U7KaiuuY6+Yd2qO2gzTfOHWC85Avpb3gWKR+bF/Z1ry4ayPx9C1b/+WXeMIAiSmP3AdIVhWyNFs2G1BB28T+HA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784568934; c=relaxed/simple; bh=0Wi9zUWSkOf738wjiEdsVU2AqpTcWywGE9XaO/v6oDA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Kdt1HbbS27A+JYDIwopLFwn328x1l8CqOH7v8tUkM/0MT/v04IO2+FHF0cNPHhtdIo2bbvypGMS9HYZo5WjA1H0J7iqexY+xygeQEOy66kt/qBBD58HKnmJnaOztxvRq7DkzzpWw8LgYL4vu5fTA+r0fXpPkhcHgajMUwtlRdwk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=codeweavers.com; spf=pass smtp.mailfrom=codeweavers.com; dkim=pass (2048-bit key) header.d=list.codeweavers.com header.i=@list.codeweavers.com header.b=M/eSKgYu; arc=none smtp.client-ip=4.36.192.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=codeweavers.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=codeweavers.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=list.codeweavers.com header.i=@list.codeweavers.com header.b="M/eSKgYu" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=list.codeweavers.com; s=list; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=q8rRzJ2qbHcAJCSBy7RH5XKBgV60ML6cOeYqsoe+SkA=; b=M/eSKgYuuDLO98arTFFblc36i9 Z50L3C7XWjZwTL1n1kkY5yy/1vV486ImLgrnHLKi6LV2G0B4ZGWEQWXiuAEF/OHFlxNL5WkU+TJVn eCAEJXTYFQEPSSGSyANR/TzMGIRdxgr0aKBvoklpB1sii3CTlw93PlumzQHHg5HTV2fulyVrvE4OK 4JJV3dr+HLtq35+eDMDezvj+Ebd7P0EfsIPXEyc40MOfR0VR7WKfy8GcO2KopnBzVDvsBisAY+Q2H uGdKBo3Nu9Jo41N5mEgVRC5MGwmznIRcQamolMdE4XdVEPf3VuZyk+UTerh5N/MILbj1jlXXi/UkR BZpeeRKA==; Received: from cw137ip160.mn.codeweavers.com ([10.69.137.160] helo=camazotz.mn.codeweavers.com) by list.codeweavrs.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wlrcg-001Fmy-06; Mon, 20 Jul 2026 12:17:46 -0500 From: Elizabeth Figura To: Arnd Bergmann , Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, wine-devel@list.winehq.org, linux-kselftest@vger.kernel.org, =?UTF-8?q?Iv=C3=A1n=20Ezequiel=20Rodriguez?= , Elizabeth Figura Subject: [PATCH 3/4] selftests: ntsync: add wait argument validation tests Date: Mon, 20 Jul 2026 12:17:39 -0500 Message-ID: <20260720171740.447035-4-zfigura@codeweavers.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260720171740.447035-1-zfigura@codeweavers.com> References: <20260720171740.447035-1-zfigura@codeweavers.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Iv=C3=A1n Ezequiel Rodriguez Add coverage for documented EINVAL cases: zero owner on wait any/all, non-zero pad, and objects from a different /dev/ntsync instance. Signed-off-by: Iv=C3=A1n Ezequiel Rodriguez Reviewed-by: Elizabeth Figura Signed-off-by: Elizabeth Figura --- .../testing/selftests/drivers/ntsync/ntsync.c | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tools/testing/selftests/drivers/ntsync/ntsync.c b/tools/testin= g/selftests/drivers/ntsync/ntsync.c index 12b4b81edf7f..c9fe4d5987ec 100644 --- a/tools/testing/selftests/drivers/ntsync/ntsync.c +++ b/tools/testing/selftests/drivers/ntsync/ntsync.c @@ -1340,4 +1340,48 @@ TEST(stress_wait) close(stress_device); } =20 +TEST(wait_args_validation) +{ + struct ntsync_sem_args sem_args =3D { .count =3D 1, .max =3D 1 }; + struct ntsync_wait_args wait_args =3D {0}; + struct timespec timeout; + int fd, fd2, sem, ret; + __u32 index; + + fd =3D open("/dev/ntsync", O_CLOEXEC | O_RDONLY); + ASSERT_GE(fd, 0); + + fd2 =3D open("/dev/ntsync", O_CLOEXEC | O_RDONLY); + ASSERT_GE(fd2, 0); + + sem =3D ioctl(fd, NTSYNC_IOC_CREATE_SEM, &sem_args); + EXPECT_GE(sem, 0); + + ret =3D wait_any(fd, 1, &sem, 0, &index); + EXPECT_EQ(-1, ret); + EXPECT_EQ(EINVAL, errno); + + ret =3D wait_all(fd, 1, &sem, 0, &index); + EXPECT_EQ(-1, ret); + EXPECT_EQ(EINVAL, errno); + + clock_gettime(CLOCK_MONOTONIC, &timeout); + wait_args.timeout =3D timeout.tv_sec * 1000000000ULL + timeout.tv_nsec; + wait_args.count =3D 0; + wait_args.objs =3D 0; + wait_args.owner =3D 123; + wait_args.pad =3D 1; + ret =3D ioctl(fd, NTSYNC_IOC_WAIT_ANY, &wait_args); + EXPECT_EQ(-1, ret); + EXPECT_EQ(EINVAL, errno); + + ret =3D wait_any(fd2, 1, &sem, 123, &index); + EXPECT_EQ(-1, ret); + EXPECT_EQ(EINVAL, errno); + + close(sem); + close(fd2); + close(fd); +} + TEST_HARNESS_MAIN --=20 2.53.0 From nobody Sat Jul 25 02:11:08 2026 Received: from list.codeweavrs.com (list.codeweavers.com [4.36.192.163]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E7CA2438026; Mon, 20 Jul 2026 17:35:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=4.36.192.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784568954; cv=none; b=OiXXmW6KR7QhYqVvj4SnvndW4R3cjhw3xGJM1QGGFTXabOKOt5SWBwu+RQrTmdQih7wyv2q5R9Fe7RGIpJXoK5wLhbWKiHoNk16G5F5UKzFD+k6KTyYAvJCSqX0mb5Wjqf5uq0flaYECdhJJ7pP2lIcvE78b+IeUjUgZ0neziL0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784568954; c=relaxed/simple; bh=syfQgoDuHaZrDYKHpmrAqG01+IvjiRi6SEgNM2+X1oM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=K6l++if2EFEa59DoG7joZKfIqxN2DbCH2lLQC7RSGEZSUQeMdgLbA+Ysyy5CeqcXtGZOWy9q79MzLcVfYtNtrIs4wEge8W8oYn3LF9+pzozh6aWGZJC7b4qXjwi+m9ZWLrQCj/MW3p0QscOmSeUZlyqOAWZ2EmbvGlRJDDj/i3A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=codeweavers.com; spf=pass smtp.mailfrom=codeweavers.com; dkim=pass (2048-bit key) header.d=list.codeweavers.com header.i=@list.codeweavers.com header.b=V+bCGd9P; arc=none smtp.client-ip=4.36.192.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=codeweavers.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=codeweavers.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=list.codeweavers.com header.i=@list.codeweavers.com header.b="V+bCGd9P" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=list.codeweavers.com; s=list; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=cGytKmpTZSgV/TsaLNwpn0WgDkhwBsVUwPMmrW//LJk=; b=V+bCGd9PywyXJaJMJPM1goAVDN E6/6Avy1QtB9EGOk93CfsN0Bc7VWp7BPvA2F5RFQKkeEV3mDjYut1xTnDe1+Ujmz5L4TaYhyeiiLW 18ZzDdfGrcAhT/wWnj3Xi4ggNlsVT630cZsEehoEW6rAN0fRBvLfMvkn7BvPYltLNd0pYt0hfvQSN rX+IAvhutkAIZpBjkAJLvIIy+R/8iXjMu9FyEIKc/QI3nbg0c0SsbJm128S/tyYDRK+Y6Kvd8a4KA JqMXeRvg01Bp9UgRJYpeTh+uMWwnIFDNS8OOBpsY6mXVKnbBELpLpXznm70UBa+d5DRVpSNXAJpOM tpc2kBAA==; Received: from cw137ip160.mn.codeweavers.com ([10.69.137.160] helo=camazotz.mn.codeweavers.com) by list.codeweavrs.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wlrcg-001Fmy-07; Mon, 20 Jul 2026 12:17:46 -0500 From: Elizabeth Figura To: Arnd Bergmann , Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, wine-devel@list.winehq.org, linux-kselftest@vger.kernel.org, =?UTF-8?q?Iv=C3=A1n=20Ezequiel=20Rodriguez?= , Elizabeth Figura Subject: [PATCH 4/4] ntsync: reject wait ioctls with zero owner Date: Mon, 20 Jul 2026 12:17:40 -0500 Message-ID: <20260720171740.447035-5-zfigura@codeweavers.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260720171740.447035-1-zfigura@codeweavers.com> References: <20260720171740.447035-1-zfigura@codeweavers.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Iv=C3=A1n Ezequiel Rodriguez setup_wait() already validates pad and flags but not owner, while Documentation/userspace-api/ntsync.rst requires EINVAL when owner is zero. Reject early before queueing waiters. Signed-off-by: Iv=C3=A1n Ezequiel Rodriguez Reviewed-by: Elizabeth Figura Signed-off-by: Elizabeth Figura --- drivers/misc/ntsync.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/misc/ntsync.c b/drivers/misc/ntsync.c index 02c9d1192812..4a805919bb0c 100644 --- a/drivers/misc/ntsync.c +++ b/drivers/misc/ntsync.c @@ -875,6 +875,9 @@ static int setup_wait(struct ntsync_device *dev, if (args->pad || (args->flags & ~NTSYNC_WAIT_REALTIME)) return -EINVAL; =20 + if (!args->owner) + return -EINVAL; + if (size >=3D sizeof(fds)) return -EINVAL; =20 --=20 2.53.0