From nobody Sun Apr 5 16:29:00 2026 Received: from mail-ed1-f73.google.com (mail-ed1-f73.google.com [209.85.208.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC89A2ED15D for ; Tue, 24 Mar 2026 20:02:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774382569; cv=none; b=lnhcmULR1VEIytZtHn0MH7uZcx2IspThaEkw4xaD0Z6/4WZYeEVP1BkY6NpyKXDAk9z1GZx4U8y7b4UaUbOo6l5Zfg+pZXo9J61aoffZgMUP2aOrvaB8Sp7j8lSfNU1B9m1YLMv5VGz2qNchMctyqjRY/J9aAq2GAex598u2MKc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774382569; c=relaxed/simple; bh=+Goy4D64nuP+BbSnhf7OhMpniV+yBTmRzYy1fAklWlE=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=QyRV1jUcISiOOLP2/MqsgDqrwfKkqAfrIkF/k/0HoiRTIJC4rOs7nXRNxjoIBPYw5/XOqfqKo2MsW1kIc+oIk9XkQyAJVmA3Lzzjw9+kzmlLt7Y+sPngPsDqYtcsuKdTpgNVcckmzmicjekQSdjpUp7ukU08Pmcnk/TEQIlkp/0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=cUX0jcEH; arc=none smtp.client-ip=209.85.208.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="cUX0jcEH" Received: by mail-ed1-f73.google.com with SMTP id 4fb4d7f45d1cf-66952b873a0so2814894a12.1 for ; Tue, 24 Mar 2026 13:02:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1774382566; x=1774987366; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=K1UbzXXxdNCI8P0ffOKTyNxYTiEdwXYX6YILJ8CGqb4=; b=cUX0jcEHyfrPklEKLVaSFKKchh/3BUFITyxxjgk1jSRnOE2V1v91jWCpvBqm9nr38q 9RcdohGaiLn4jrzEPsKQpgiqR9UIQDflbBxm9MBv6YMho5oUkoAlNuLjmMZOnNmvvQRz TZ2XL/rDCGwAsVMDJzEnrXV+5zBYC/kMy+7v0Q7FgdzL2jAmDFVYMKcznsc/h+G8qrIr B6QUyn8DZvmZAFvj7QKTvNwjqqMjGDviZpzNwmdzbBYVJW7dfmKNTYlynP+Mv53rS+P0 s7gW2JQhiTiJCuEP5SQ/ftio/5h2BAhn7xhWCfnQwb3ZTskiX+15JdyXsK7CpLHhwpCD 1Ipg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774382566; x=1774987366; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=K1UbzXXxdNCI8P0ffOKTyNxYTiEdwXYX6YILJ8CGqb4=; b=e93ImTMB+F0oz5eCtG01yc0yJnG4LUerdPzuAjFmrrkhIDiXMXUTGx3PzsVv5o387s l5O2/ZvHLCWj/Yf1aeWLo1TS3YBZp+tQ+CorpFC12nRZ8Lr9obgtO6FxF2+xITmAXOSG Skj6bgT/4+VeC7+oBgYytxng237XsGzitRKbNLLo2a9RPBBF7HBLhxMi5TMai6ve/PEH KiNYMVxdco2xaH/up0p7Cm0enNcHNvHH5g3Eh93OonZQ7yrVaPLLyLVobljz9TcPc4Gj HanENgEVD4BGaRbMzhlL28mQuqgRMsMLiNVOZfXbeCNwKRp73ioMIbeYlp6phAKSItcY YfkA== X-Forwarded-Encrypted: i=1; AJvYcCWhZYyNRtxfELvvTusBrLLKZdr031DZmTfZ5+3rcSGkPZQIJqvL+sflLyxh/KGqo0FKOyxKMUov2UlTzpc=@vger.kernel.org X-Gm-Message-State: AOJu0Yz0JFzwCsDBVPytK74EI8iZgXUTC3xs0OVW4sHmsivKdH2DZ1HN k1AJT9zhHbBzk6zT6Ya0dpT3FpPWLa4ACuJKJZ6hbN6ucE+pE2v3NbhmY5xw6IIxPlGUHMlIcBI CXewmS2jHxG7/WTDnqw== X-Received: from edi11.prod.google.com ([2002:a05:6402:304b:b0:668:4fa5:f392]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6402:34d4:b0:66a:50c2:6bd6 with SMTP id 4fb4d7f45d1cf-66a826bd59amr376521a12.23.1774382565851; Tue, 24 Mar 2026 13:02:45 -0700 (PDT) Date: Tue, 24 Mar 2026 20:02:35 +0000 In-Reply-To: <20260324-close-fd-check-current-v3-0-b94274bedac7@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260324-close-fd-check-current-v3-0-b94274bedac7@google.com> X-Developer-Key: i=aliceryhl@google.com; a=openpgp; fpr=49F6C1FAA74960F43A5B86A1EE7A392FDE96209F X-Developer-Signature: v=1; a=openpgp-sha256; l=1341; i=aliceryhl@google.com; h=from:subject:message-id; bh=+Goy4D64nuP+BbSnhf7OhMpniV+yBTmRzYy1fAklWlE=; b=owEBbQKS/ZANAwAKAQRYvu5YxjlGAcsmYgBpwu3jwfsxkArEc4b6yvmEdSGyMepeXIO0IZSUf 971f3ft1AaJAjMEAAEKAB0WIQSDkqKUTWQHCvFIvbIEWL7uWMY5RgUCacLt4wAKCRAEWL7uWMY5 RnROEACer8y9e1AX57xRlq+4getDONYDY0NmA48HXkPrAUVJilmcAUhbgwSpvBSnYjkw9N03+/0 Vwra4T7rlL15qR8hRCEu1B7dDd3olIvjUMQtVRNsKmpauY7bJOVG+ukZqpgKLy3xuvAtIIuZ3MK dYY74dqjXVMlKM/Tr5R0pY3h4JsPGcPqT1ofE+QXaUjdv2xR3NUV7pnfLgtGJPqDqtqQZAT8ffu aa4F1zBQm95mH9KVgNpDjqrdUA/9q6RYtOwbPhL2IqCi9zV9ecITVGD2nhV0IKgWs5RsJeEl7JS b5rtpwhPnftqlA7T1oYOM4JNX+1Er+weiyJkAPrfZZrIdR/3C9uO8/lRXqfY9/FC6M85LDx9957 maC6i6vO/1/HPHailqG75DpruvGw50me9XuGDw2/i81QBblJrjO5czR5jpfE2rwkkueQIf6Zfn/ ffIrXjvZe3F6Uh5vveWxp35KmTZKDr4IsZEHF+vKLKh+hlDoEPfCPHKcyHpt641yxsh9omjtXpx SgWSorsjZ0A6S2iWHALxM55yUFRsbwnTizYIRetC+7u9MbfNPbUxn+U2bH/RMi1NzDb2zJBMLeM dad1HP3CAWRYxvP3IKtZEfSQrb5WCRf5xD+Gmbh1cutysDt42gImD/m2SLVv6fvV6m9i73y+B+/ zjU6EonJvLaZAIQ== X-Mailer: b4 0.14.3 Message-ID: <20260324-close-fd-check-current-v3-1-b94274bedac7@google.com> Subject: [PATCH v3 1/4] rust: sync: implement == operator for ARef From: Alice Ryhl To: Greg Kroah-Hartman , Carlos Llamas , Miguel Ojeda , Boqun Feng , Gary Guo , "=?utf-8?q?Bj=C3=B6rn_Roy_Baron?=" , Benno Lossin , Andreas Hindborg , Trevor Gross , Danilo Krummrich Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alice Ryhl Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Rust Binder wants to perform a comparison between ARef and &Task, so define the =3D=3D operator for ARef<_> when compared with another ARef<_> or just a reference. The operator is implemented in terms of the same operator applied to the inner type. Note that PartialEq cannot be implemented because it would overlap with the impl for ARef. Reviewed-by: Gary Guo Signed-off-by: Alice Ryhl --- rust/kernel/sync/aref.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/rust/kernel/sync/aref.rs b/rust/kernel/sync/aref.rs index 0616c0353c2b..9989f56d0605 100644 --- a/rust/kernel/sync/aref.rs +++ b/rust/kernel/sync/aref.rs @@ -170,3 +170,25 @@ fn drop(&mut self) { unsafe { T::dec_ref(self.ptr) }; } } + +impl PartialEq> for ARef +where + T: AlwaysRefCounted + PartialEq, + U: AlwaysRefCounted, +{ + #[inline] + fn eq(&self, other: &ARef) -> bool { + T::eq(&**self, &**other) + } +} +impl Eq for ARef {} + +impl PartialEq<&'_ U> for ARef +where + T: AlwaysRefCounted + PartialEq, +{ + #[inline] + fn eq(&self, other: &&U) -> bool { + T::eq(&**self, other) + } +} --=20 2.53.0.1018.g2bb0e51243-goog From nobody Sun Apr 5 16:29:00 2026 Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0AF4A2DC782 for ; Tue, 24 Mar 2026 20:02:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774382571; cv=none; b=R9RTnWniDbklYeXHa6+NUitHBLm/VLE6r2EV7pZ4wLBHjo0IaQGd7ecVAf7431Fj2+lT/x2jhRXO9PZcaiwnvNyueyZUXfsxhr/rNAP/qNCSL4wYlJ/KW2talGXhQS9Zq/iK44Vth+2Xb0fZOlvH2ZOX8U2rLVJhSzpSDNJdDto= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774382571; c=relaxed/simple; bh=d41NgLg8zXu9D/UFei/nQ2mRCnaWdYXV9EopXPaOlxM=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=XBKskAOJGfjvLCIjRlWXo82GyL5D3RgQNzkkum68BqLkd+FNNLCgnXlXVfBNRopPDtxLRQS1A++a+FpLr2e+ZXOaZWU2Jo5Z+yr0zpFkx4zfPTHEFHb3sij/meN9UnhAoOawzfDzdtd7jN7di41Yn0PixiqLeGSNGgUVu/+2vQo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=Txvm/Xno; arc=none smtp.client-ip=209.85.128.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Txvm/Xno" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-4853a9467c5so39132135e9.2 for ; Tue, 24 Mar 2026 13:02:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1774382567; x=1774987367; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=kIoQ7lbv168bi0FWWS4e+m0tEQWBFDeLOgV3ZRoxmXw=; b=Txvm/XnoMZenV6R1/lro2sa6vY/de3jCOzjHr+eMyE3vgA9LzYfk7xmLxJZfDm1KHh RROYuTCA54FK9jhNqND3eINj3OvdWvQSPytj3oHu2Nmg64ofMyCoqoNU2ZP9wWKzi7M5 Uv0NULlLFuMiUwbXww/Dmx83Y580slXxTjV7qgwCoPi5tOujjIV2YphBQtwE95+HNIag Q0jqNK3c1pK3saOTffWnAt4DEKxxidTXXy8QtDjPedtW7QwzmoFy87jdk/fGn6unBH3N RBUoTiJspJeg4QAR3z+GduQ9NrOgfnbvMsZZKetRM2fBlO5qwMN7iYq7DjyfUcfOw+LC uwgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774382567; x=1774987367; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kIoQ7lbv168bi0FWWS4e+m0tEQWBFDeLOgV3ZRoxmXw=; b=hvt/N2HBUcjYqVNf3YN9Rc8Eh0l7BUkmgqSIJDPKNILzPuuWM8Q+w+OcvRnnxEXZQy 6Sr3aCjeYQeoDup6clbXwRo+VJEsqW5vKJdx4wv8e0XQNYt5gyxtIWyGbyWPLR0X/5T5 OU+xH7ynZI0nfCanzIV2fufUaXXoWwg8eixEuJC+dWQjAY+oVODpecbnefJgv12rB1HG tQulWP3ZBL/ZNTQMF7AxPrP6uPCtvGksoQ5UWamWH6nx5E/tCoA8v8DIj7ZIaDeNFE47 nNSijTgNNE/hzbnhEQnhlU0ZSWrtqieiPkL0WK2FgXIWyvM1XEURV705R409ixjCoI4b NVqQ== X-Forwarded-Encrypted: i=1; AJvYcCW1keMKRdnHuR3oRzGAF08/pi3xFeKywrAewxA9qJ+RrnTKDAUD2v7P6c1S1VhxSRZ10tRaIDm8sby7dfY=@vger.kernel.org X-Gm-Message-State: AOJu0Yxm4W0DQrzkDlIqDmci8DRTeYJ8mQU8GpxDqu1FUvUAF11c/YoI 92WMateZeeL65HAskqf0vvRgqInzNHLe5q5IBFVI64Y2Ki3Fbh2MWz5wBX6tGEcRgPycn2hFMgP aDdoA1TgFm3ZYA5qTOw== X-Received: from wmog18.prod.google.com ([2002:a05:600c:3112:b0:486:f774:82ca]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:8489:b0:486:fd3a:fd22 with SMTP id 5b1f17b1804b1-48715fc384dmr14610175e9.4.1774382567398; Tue, 24 Mar 2026 13:02:47 -0700 (PDT) Date: Tue, 24 Mar 2026 20:02:36 +0000 In-Reply-To: <20260324-close-fd-check-current-v3-0-b94274bedac7@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260324-close-fd-check-current-v3-0-b94274bedac7@google.com> X-Developer-Key: i=aliceryhl@google.com; a=openpgp; fpr=49F6C1FAA74960F43A5B86A1EE7A392FDE96209F X-Developer-Signature: v=1; a=openpgp-sha256; l=835; i=aliceryhl@google.com; h=from:subject:message-id; bh=d41NgLg8zXu9D/UFei/nQ2mRCnaWdYXV9EopXPaOlxM=; b=owEBbQKS/ZANAwAKAQRYvu5YxjlGAcsmYgBpwu3jM3DPG26LxR8+FA/RRLIp+z/KOckDFSQLE CaVfNVyaZ+JAjMEAAEKAB0WIQSDkqKUTWQHCvFIvbIEWL7uWMY5RgUCacLt4wAKCRAEWL7uWMY5 RpLvD/9QkWliYN16tfFXcDhh3+LWekHLVvCwa7tCNevqxER0/exUKxW9RuBMgwd7uZblvtoCyLJ Xi57NgCgCWcWDvuHGFE4SiwbY84TVFg/+RWyiVpYvCxc8ADfiQ7ZtDBGCP433qd85zvRBCYxEGI wVunJwCJVrYvXjxWuemEYQWlOgmbcTxPuSaSXhqyH6xaG0jOxwK6L9lIhq6QHI1imP2utDoVSdp NDzaLW96Hy0ACQHE0guHJ7+QEtuPyKrG76W3hjJgsUNzrLfGVosrc1x+nfAzDTFl/8JuqP3bqdN 0Vpin///+X/L8PZktYSObv9iml7Dhw38hza2Jmb1/KLmrdM4rEI2J2nyk1hmQOtmAhG47I4zD9+ RGX9RPA1/fU02LI4GFnCXxo2AK9ZJ0J7yG1a/Te96u8RZyWK/815huyjdPeJdDSjxicch51sD3A lUj9mfszeDaKfg0twls6rrzm63Po7KEG0A1b5pvGgeuyp8+7d2TftPiJUkQ/PcHT4tBvmqmN22+ ti0r+MGEcgpQV6CBl96CJZP+FxG4SfKKFMNYc9TTTtTO00jxcglEn3rDpqqRszGuD/RrKR+My1a cD71Ic4mOfSDl3q4esI19FgPeBotFmKdy/tyAqxb4ZYCY44NpMj++Q8lsTQM3E7DTkmjna1qTEF lPLWhnVYPU/EvCg== X-Mailer: b4 0.14.3 Message-ID: <20260324-close-fd-check-current-v3-2-b94274bedac7@google.com> Subject: [PATCH v3 2/4] rust: task: implement == operator for Task From: Alice Ryhl To: Greg Kroah-Hartman , Carlos Llamas , Miguel Ojeda , Boqun Feng , Gary Guo , "=?utf-8?q?Bj=C3=B6rn_Roy_Baron?=" , Benno Lossin , Andreas Hindborg , Trevor Gross , Danilo Krummrich Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alice Ryhl Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable It's useful to compare if two tasks are the same task or not. Rust Binder wants this to check if a certain task is equal to the group leader of current. Reviewed-by: Gary Guo Signed-off-by: Alice Ryhl --- rust/kernel/task.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/rust/kernel/task.rs b/rust/kernel/task.rs index cc907fb531bc..deb948d99921 100644 --- a/rust/kernel/task.rs +++ b/rust/kernel/task.rs @@ -362,6 +362,15 @@ unsafe fn dec_ref(obj: ptr::NonNull) { } } =20 +impl PartialEq for Task { + #[inline] + fn eq(&self, other: &Self) -> bool { + ptr::eq(self.as_ptr(), other.as_ptr()) + } +} + +impl Eq for Task {} + impl Kuid { /// Get the current euid. #[inline] --=20 2.53.0.1018.g2bb0e51243-goog From nobody Sun Apr 5 16:29:00 2026 Received: from mail-ed1-f73.google.com (mail-ed1-f73.google.com [209.85.208.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8EB27301465 for ; Tue, 24 Mar 2026 20:02:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774382579; cv=none; b=fwy++0vwoAmvq0WQxGf7FWFfTX7FWqAoRlL6ODwlyPq4PVVM+Cv8wNZPh89nuc1SgRlJG5ZD1rOu8SCYlc4ptMmomo5uXCTj6T/QreTariM1C/bYtY9m3YMuoyYZpJHneit+9lJlXLYzBj4XLc3eBQyiEzwA5ZmI1fu02o1efLo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774382579; c=relaxed/simple; bh=9Q2BIJY9XGZIVPXCHLNkksj5N6VhYIDtkdiyYeFZrjc=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=dUsa9F3LRCL6s5q0rDiPASeFaTYI5tSC5GguPgy0gEjIeczrDG59P5I0+XWW/we83SjI+VhnMNN2c7DqeFOzCxqJgUWGXu0VdIrFF398ToWvRbEb9JlBHzXKYw733s0c3/nnLa3dYzehn6+J2iH3h8DOu6/S2Zj9SvjLhrbOsm8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=C09tpgau; arc=none smtp.client-ip=209.85.208.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="C09tpgau" Received: by mail-ed1-f73.google.com with SMTP id 4fb4d7f45d1cf-660f98d40ccso717488a12.1 for ; Tue, 24 Mar 2026 13:02:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1774382569; x=1774987369; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=OO/LAjZIunen0Lhk2qpZmDx7MpLXKvlzJBeljL6KS7Y=; b=C09tpgaufmbMOTR6KfHN1u4Yd+JllvNrG3qIaoa73dj4QVwSGzYPYMWvMo1+cILwXw /EMwMiOZZ7a/VfTWRIuXnFg24N9eFHRSY+cDfnqlObmOo7aT9yjuLVZhDcE7EgV8VcFf KIin8sOFRH0c+OTel7rXGg067WTiGdgSdWMyzD6pZQ4ryYVinLI68s7p6IY3WisJR7nC hnzCP9aTgsB8Zbboh+bl6o5Zn2HljqNzvWYwkT4EvPKqJOEpXIE5NCqy1ZuSQurtm6/F luran7uYeEWL7C9TERoo03XHeVkwYO2+jYAPSwIN40W97NQ/j3rC1AtxoTVTXXJXUZia v8hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774382569; x=1774987369; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=OO/LAjZIunen0Lhk2qpZmDx7MpLXKvlzJBeljL6KS7Y=; b=gsrgo/kgvzcTSY/XiJcXW406Y8oLVVIBEVJuwG2cm63Ipsklxp6U88yt25fFdAcGrg ibX8X4o+T9KIQPz0aJGZo8noKjRTjSSghMeRjeOQAHOPStccdSKitmeUQfYeqD3Uc0dT +Vl2zTAZDsImgIpgyL1cJbpLRPfV+Y0LWmuC8dHnR7WPFUBUZWzPlFLQnkcAPmkpbhV9 fZTtFXC9jbdHjqc2XLCc2TmUpZXrzy3aDVxkgvFi43sWYEzch3c3bUCZHUe40Ujsno+I 4x6vKA/uFqKhsDbuvcNr3lmjxdoWguUQCySukXZEq55audFBcsf6hvw02lNbm5rfNC39 Uwiw== X-Forwarded-Encrypted: i=1; AJvYcCWmVTNsqLWSVY0PsA/uf8cbAuRXVLti6El+7QmPm6H3JpiB6tmT8V3JDLwTXeypixIl858Lg0kafppNKWQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxDVZymZeT7ajRw0Wqgr0v6sp2HJ3YqtlO9x7wOqhGVreAUNnFp UMI57MZ+jeBu0VVsWZbJT4//uuBcsnRg+l2Y7wEpypmeZZZLhQD28h9VQsZeeQhGsQJpAdGt4Dc wF1rR4XqcMHk0HlA0CQ== X-Received: from ejcbb10.prod.google.com ([2002:a17:907:a0a:b0:b8f:93d4:516f]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a17:907:7b84:b0:b98:b08:7459 with SMTP id a640c23a62f3a-b9a3f15ef7fmr62448866b.8.1774382568735; Tue, 24 Mar 2026 13:02:48 -0700 (PDT) Date: Tue, 24 Mar 2026 20:02:37 +0000 In-Reply-To: <20260324-close-fd-check-current-v3-0-b94274bedac7@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260324-close-fd-check-current-v3-0-b94274bedac7@google.com> X-Developer-Key: i=aliceryhl@google.com; a=openpgp; fpr=49F6C1FAA74960F43A5B86A1EE7A392FDE96209F X-Developer-Signature: v=1; a=openpgp-sha256; l=1426; i=aliceryhl@google.com; h=from:subject:message-id; bh=9Q2BIJY9XGZIVPXCHLNkksj5N6VhYIDtkdiyYeFZrjc=; b=kA0DAAoBBFi+7ljGOUYByyZiAGnC7ePIFLQEsAVzQW/tuPtGIPuWg1Ojm74DJOfrcVIIk/a1i YkCMwQAAQoAHRYhBIOSopRNZAcK8Ui9sgRYvu5YxjlGBQJpwu3jAAoJEARYvu5YxjlGuOQP/3rw 8foueprmQay/sCrQ8do3+JDAR7+9FCobtk3t1TKgMJbxEt6HuCHkWeko/6SsSaKAqGfFnetLh0s lwVoXNRX+FX6a/zRX2nsnmftRIRJBAex9eLdYr2PktqS7rAjxVyUP+DNSj3IqX5C1QK88Hyl14D bpLoOy2yoqqjh7maYYukDApIK7cKF43yc+ERJs508l/BNmBRsklrcZoS9EKiqOjpRHN2PK3H0Bv nfP44z8xjw56TLhoHyTXqWAWeZH37gmANw/iCIhG8OCs0Go9NOklWC5wtsQk4mybRkpDeeRA+kr 5TDLpb+sXT3l45x0u+lZJXGeQu2VKaTFsi/5BUHoJTX6tQC8C6jYcgkSD+hKU91HztNi82lFCOx /uaO6ef3IjPeLhmRd2QmJpFAraNPEjm8Q26Fi6IkwCrwzJmDtywlLFkjG+tombPD9UMzWH3uIiA r4Rt9jhn7PBrQypvbXYsYnB64Kt7bwoAVjqiS4DpMYZ8H2i4bPIySF/4nuqFGZT8UNj2QWuoU3W qkP276T4i+EIj81694UPIe/5WAbd+CW9Ke1R/Jf/T65TDu1/f/3+Qn0F2QqDZJuP+rSpuOj4fKz itkXgtYtfszV/+UU6h2E0o2XIu3kYJUHRnHiZub/ZyHksIugIPhOGQPtMbRMyiJTLImINvGRD8A +4ECO X-Mailer: b4 0.14.3 Message-ID: <20260324-close-fd-check-current-v3-3-b94274bedac7@google.com> Subject: [PATCH v3 3/4] rust_binder: make use of == for Task From: Alice Ryhl To: Greg Kroah-Hartman , Carlos Llamas , Miguel Ojeda , Boqun Feng , Gary Guo , "=?utf-8?q?Bj=C3=B6rn_Roy_Baron?=" , Benno Lossin , Andreas Hindborg , Trevor Gross , Danilo Krummrich Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alice Ryhl Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Now that we have implemented the =3D=3D operator for Task, replace the two raw pointer comparisons in Binder with the =3D=3D operator. Reviewed-by: Gary Guo Signed-off-by: Alice Ryhl --- drivers/android/binder/process.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/android/binder/process.rs b/drivers/android/binder/pro= cess.rs index 41de5593197c..b78c1490e654 100644 --- a/drivers/android/binder/process.rs +++ b/drivers/android/binder/process.rs @@ -681,7 +681,7 @@ pub(crate) fn get_work_or_register<'a>( fn get_current_thread(self: ArcBorrow<'_, Self>) -> Result= > { let id =3D { let current =3D kernel::current!(); - if !core::ptr::eq(current.group_leader(), &*self.task) { + if self.task !=3D current.group_leader() { pr_err!("get_current_thread was called from the wrong proc= ess."); return Err(EINVAL); } @@ -1669,7 +1669,7 @@ pub(crate) fn mmap( vma: &mm::virt::VmaNew, ) -> Result { // We don't allow mmap to be used in a different process. - if !core::ptr::eq(kernel::current!().group_leader(), &*this.task) { + if this.task !=3D kernel::current!().group_leader() { return Err(EINVAL); } if vma.start() =3D=3D 0 { --=20 2.53.0.1018.g2bb0e51243-goog From nobody Sun Apr 5 16:29:00 2026 Received: from mail-wr1-f74.google.com (mail-wr1-f74.google.com [209.85.221.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9A1772ED84C for ; Tue, 24 Mar 2026 20:02:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774382573; cv=none; b=sq+Rnko8In23SEGAWHvLGIoHNSYq31hHuo+9doCIvUGAoTiNEoaVpr2psYPYXQaN6LKLkF55ltfNQ/ssu1o/nzJ3894AmwWQ8mxMf+aBdSLYGpm+rrKvajAF6uRU7thwyHKHtWZX8io3XLLB2WxzpsXRKG941D3MHI6s1RM789c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774382573; c=relaxed/simple; bh=fFN7lYugJ/QOgXO5yWuBBN6eYrZehQy1s12OfSqPlJs=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=I0biCw6yrzGA75rxAHCtsZSTXNDRg4lAUAB/3RS8JFDPYdVEpQ/DNXvh9YuvvdgvQSD/l0+dX7qOlwefaf96CigZfOigcnIffq+mFC6L+9A4EajB1dEkii5lJk08JRZAaGQ4mWJJLASDyiwvFAnIZ6E9MDZaHWgbyy5JdyEQcw0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=elo8UTSF; arc=none smtp.client-ip=209.85.221.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="elo8UTSF" Received: by mail-wr1-f74.google.com with SMTP id ffacd0b85a97d-43b53023d60so3884631f8f.2 for ; Tue, 24 Mar 2026 13:02:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1774382570; x=1774987370; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=7Bwpp1ufcceKLHFlGDegFIy1xoIkwFlNP/wIyy6koCQ=; b=elo8UTSFqb7Ho59kZoWDJQNqlbVAY4eVvsomjzFVZWroxsPNmyr0O6EzTtczJ5dy69 VBnjMHzZ6EKk8CXh8w5BENt/+Vt5HxL0Wz9oFCjHMHFN+PTBiuIgG2QKSBOc49ILZdfc KQxsUvoJTsWVGx8fWRujOsywa0geufc4XK/xKu/uiPuHkL8/rIVWcMNoWYI6gu7fTRz7 5kySQnps3VDm42ePasYANwxoz6AxpX+EamwXGd+KwT72mxHOFmYrKARMok14wd1UzWx6 d9LyD8kGpxd0EQWXYCh5T1/61rTIOhjVnPb5A54x/FeWKUVFpBljwGkIaFnMWF/tUuct +Hiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774382570; x=1774987370; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7Bwpp1ufcceKLHFlGDegFIy1xoIkwFlNP/wIyy6koCQ=; b=a/+Bw4P0gZKL/d9FPeDANJ8hUv0i6a4tVj4DeMSdORKa7+1XjgNUy7c6yi0nmeXUXt 8VkJOtv10lUk8T/HyWNYjhIvmWch+1mTkts0HR/0fOjeqL1M+dtEvuoU1ySeXUZDYPrx RvD5RX+PCViAuPU8tZgjJPaCPSGLHvw3GunhNrsyFQSnwaZdWETMSDKlp4F7iWHtBZWD XZ0z7siryXepRW/mvvngqGy0O49PUWit0pPACPNOxhDpkg7bngEXeeZk4WpALKZC21j3 bdnOhH5zpXxyBHs+XiBf2GlUMaCykdYM8fBoFDWQKdbVR32V4RH9CkJ9VMLnlSYfbTxZ rMhQ== X-Forwarded-Encrypted: i=1; AJvYcCVVW7ZZ4ojnWQj+7KLTCpXLF7wVAPH3uBYDLDQiTjfqTrnap6vO0BIDLvvOXGnaQpAYd+lEKrry8P5VDvQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwYX7YwF5Yg4KwDUPgx3SbaqlJ0fnE0ikk04Y7vhSXifFHPBaO6 vN9CyjEUdIpdYzaGth8ez29F12XTkuRWVLZj5PzSCeb3TuRK+rmDq8ZGuJiM65/8r99TFt04pgc 1POZWMycJCsSRUTakxA== X-Received: from wmtf12.prod.google.com ([2002:a05:600c:8b4c:b0:485:34c3:177]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:3b12:b0:485:419c:4eba with SMTP id 5b1f17b1804b1-48715fc3286mr16459705e9.1.1774382569992; Tue, 24 Mar 2026 13:02:49 -0700 (PDT) Date: Tue, 24 Mar 2026 20:02:38 +0000 In-Reply-To: <20260324-close-fd-check-current-v3-0-b94274bedac7@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260324-close-fd-check-current-v3-0-b94274bedac7@google.com> X-Developer-Key: i=aliceryhl@google.com; a=openpgp; fpr=49F6C1FAA74960F43A5B86A1EE7A392FDE96209F X-Developer-Signature: v=1; a=openpgp-sha256; l=3054; i=aliceryhl@google.com; h=from:subject:message-id; bh=fFN7lYugJ/QOgXO5yWuBBN6eYrZehQy1s12OfSqPlJs=; b=owEBbQKS/ZANAwAKAQRYvu5YxjlGAcsmYgBpwu3jLX17ugD1zE0Q7MbvgEEf8tsq/mb0xZ0J0 AJYF2+uOR2JAjMEAAEKAB0WIQSDkqKUTWQHCvFIvbIEWL7uWMY5RgUCacLt4wAKCRAEWL7uWMY5 Rq5iEACy0yQ/9DHDVHZypadhpRQLSdfzjU4/rBZzVPrdhQklr7fPTyH7BnqgukTCKJ4LoQN2Wzo z4P9mdvgfaepsWcIo8jmQBKEuxCj/y46bZHvxHHId6osa5tarFT6o8k9g/C6WqFu8Y6ZkatCOtW aW+j9dfIhaxqJZnhe9Z9EqFbsu/uBRIe9uUVP8lFuLNvuLuht7BZRYhT5Lwi6vGcoXIKcRENOXU j/P/GS0q3Js+K8Yuq0ikGuIt5FV+UkxbYnNbTaMOLeSJPt7jDdVGXEXC5uEboBa1YYsAMj5TmvP Uv9XrrZVs8ZVR1Qi5Mm3Bpykgh48CpkAbMt4epi0puirH/LZENvmAjUZnQQaaVkTvel+bBXNLj9 DWrp84QfK6OnCw7SzGfYzfyp21SELHebWpy5guaRTzsAigbm4VJm4buW88I0cWaSMkeFAWLmC0l MrtcrCGxxutuATrbx7TPNDDsQGk51EqjwVfU6eko0ayTgAsUuome1WfyJMrtg6p0smpp2XRrqHt vhqPYyILosVSJ9aQEXlRikal1NE4vTHNVd78oxsEw+OxGTQQ+sLh/sJXQpQjSBhKgBiJ4WXK2DN TcIc+4+umtNmlQPAF66zToUAp5Hx46qq4GAP/tft4GtwDuyP+d/b/prDEFQbHmkpU0Vg0qLEeTt sYLKxhaykIbnroA== X-Mailer: b4 0.14.3 Message-ID: <20260324-close-fd-check-current-v3-4-b94274bedac7@google.com> Subject: [PATCH v3 4/4] rust_binder: check current before closing fds From: Alice Ryhl To: Greg Kroah-Hartman , Carlos Llamas , Miguel Ojeda , Boqun Feng , Gary Guo , "=?utf-8?q?Bj=C3=B6rn_Roy_Baron?=" , Benno Lossin , Andreas Hindborg , Trevor Gross , Danilo Krummrich Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alice Ryhl , Jann Horn Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable This list gets populated once the transaction is delivered to the target process, at which point it's not touched again except in BC_FREE_BUFFER and process exit, so if the list has been populated then this code should not run in the context of the wrong userspace process. However, why tempt fate? The function itself can run in the context of both the sender and receiver, and if someone can engineer a scenario where it runs in the sender and this list is non-empty (or future Rust Binder changes make such a scenario possible), then that'd be a problem because we'd be closing random unrelated fds in the wrong process. Note that on process exit, the =3D=3D comparison may actually fail because it's called from a kthread. The fd closing code is a no-op on kthreads, so there is no actual behavior different though. Suggested-by: Jann Horn Signed-off-by: Alice Ryhl --- drivers/android/binder/allocation.rs | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/drivers/android/binder/allocation.rs b/drivers/android/binder/= allocation.rs index 7f65a9c3a0e5..691e4af5c1d0 100644 --- a/drivers/android/binder/allocation.rs +++ b/drivers/android/binder/allocation.rs @@ -260,19 +260,22 @@ fn drop(&mut self) { } } =20 - for &fd in &info.file_list.close_on_free { - let closer =3D match DeferredFdCloser::new(GFP_KERNEL) { - Ok(closer) =3D> closer, - Err(kernel::alloc::AllocError) =3D> { - // Ignore allocation failures. - break; - } - }; - - // Here, we ignore errors. The operation can fail if the f= d is not valid, or if the - // method is called from a kthread. However, this is alway= s called from a syscall, - // so the latter case cannot happen, and we don't care abo= ut the first case. - let _ =3D closer.close_fd(fd); + if self.process.task =3D=3D kernel::current!().group_leader() { + for &fd in &info.file_list.close_on_free { + let closer =3D match DeferredFdCloser::new(GFP_KERNEL)= { + Ok(closer) =3D> closer, + Err(kernel::alloc::AllocError) =3D> { + // Ignore allocation failures. + break; + } + }; + + // Here, we ignore errors. The operation can fail if t= he fd is not valid, or if + // the method is called from a kthread. However, this = is always called from a + // syscall, so the latter case cannot happen, and we d= on't care about the first + // case. + let _ =3D closer.close_fd(fd); + } } =20 if info.clear_on_free { --=20 2.53.0.1018.g2bb0e51243-goog