From mboxrd@z Thu Jan 1 00:00:00 1970 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 35B412797AC for ; Wed, 15 Apr 2026 09:39:33 +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=1776245974; cv=none; b=J3twtDs6FJFniDDDCodPrMUpe8Q/Mxm7iUGYhUgJfp9gNl+P9cGanNYLPSdOgvw+jjLK9GScri/43FFD6bjxJyx7YG0RJ1W4MFPBDfyepvMxPhZAO0BPP+DWCGrutANWW3SxfbpiNwW1hwaN8gdlCBDuP7m0yCEHEHMo43HxuDM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776245974; c=relaxed/simple; bh=IE/wFKrBh0t+EGfYLJfkCLHJUyNnOYhBFTtA6ZYlxXU=; h=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type; b=nD6ZNK5oZR/cWLU46Z8/SpXNdFE/Df69X/cNBfk6DKj3nU9xBOWSGelxSJQuKAfVh1vOgQCDoHvhjSTOPCwxwDS3AHAZWus1i1Dz9sY4xFpbV4deDd+Oy+doeVuqZzVhKi+UTO4Yfyg6x/SYwGpa2lSUkc9RwlfozgnMuD7UdHE= 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=jE/JCgHi; 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="jE/JCgHi" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-488c16958e9so46094925e9.1 for ; Wed, 15 Apr 2026 02:39:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1776245971; x=1776850771; darn=vger.kernel.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=wylQeg5hHwxb0C8yLQih5rfZGnRs2oIeCOYLEHEm7MY=; b=jE/JCgHioCxZv26PlWWU3s0o8CPpOOyoT8e3Akpf89qE6G2a4Q191EmqMc6qMnZWbz d5ygitAF4wdgWuk7D6eH+Rszqxi3Ga9YG+59oEk36de1mET8UunxIKZab6DbeQipgp4T wKbkyRPj36FUn0Bz+oiJIG4+Ey+oOhwMaHq6gRXV+YmpZ56CP/QkFlqkrguXTFXky83Y ih3tHcR/GP+qes6SrmXLINj9PrTI2AQt5R+Xgh27Pm6qz9hqczrq99rqCZ2tXsgjc3dy uL3ff7ZZOnhoECjjZpmy5+XQ44ZAi8m+CV+M09Nkojxu2tRBd6qjGpCQHE7zMhqgNugT c/kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776245971; x=1776850771; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=wylQeg5hHwxb0C8yLQih5rfZGnRs2oIeCOYLEHEm7MY=; b=AiWr9duJWtwKbvak0ABtNpWYW+XpQT588v7rDgt0fZEyVxoB+bO9ZwAspGQMbcAuha JQYFq84Hm9CaDtlV5dEmKuHgeo0ROecDPq2Kc380JxD32oscoI1nnHSJBohiou6NKVMW yLWlvpOqmGLMP6odtfmDiufiyUEqukIhSJs8Yps5IZoopIlNu4kRGkONbmwRmFHU/B7S Aazg8NDGgYBHECGFpy9gz1XPKCMEDSrC6xOqIMVCYFAEjLipyQ3v09hd2/mFHsFqOeKI vZ+rY25lG3DMEW+PAxK+yfH8VwAufz64spJOnZl9oA00JGOBlEIV7FArIddXiVE67vsh 3SAA== X-Gm-Message-State: AOJu0YwqG4I5QFwLXxV4bB1Tid+vk09FKIUr4qV6qmmUe9+6cH5ATdkj eNEHoKEc9Avw5h8jb4ioHEBx80qzqonu36f7kbPWY+L4XMLDGSYMDjQPukxPszcnNRxjnTF77b0 yp42VY/FsZ5aEpONgkQ== X-Received: from wmi10.prod.google.com ([2002:a05:600c:20a:b0:480:6ceb:eb1b]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:609a:b0:485:30f7:6e88 with SMTP id 5b1f17b1804b1-488d68a10d7mr293106775e9.31.1776245971456; Wed, 15 Apr 2026 02:39:31 -0700 (PDT) Date: Wed, 15 Apr 2026 09:37:50 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAG5c32kC/3WNyw7CIBQFf6VhLQYufcWV/2FcFLhtiRUUKtE0/ XdpXTTGuJyTzJyJBPQGAzlkE/EYTTDOJhC7jKi+sR1SoxMTYFAywUoqjdXoqcVxMPZCVQ2cMwm trHKSpJvH1jzX4On8YY/3R+qO29ibMDr/Wk8jX9a//cgpo7pRKAupatHCsXOuG3Cv3JUsrQibn 7P6x4fkK6YFVJoXuSi+/Hme34ss4isCAQAA X-Change-Id: 20260306-binder-netlink-c82110b2fb74 X-Developer-Key: i=aliceryhl@google.com; a=openpgp; fpr=49F6C1FAA74960F43A5B86A1EE7A392FDE96209F X-Developer-Signature: v=1; a=openpgp-sha256; l=2339; i=aliceryhl@google.com; h=from:subject:message-id; bh=IE/wFKrBh0t+EGfYLJfkCLHJUyNnOYhBFTtA6ZYlxXU=; b=owEBbQKS/ZANAwAKAQRYvu5YxjlGAcsmYgBp31zHSWyxY/7Yu5JlXYhq6gV3s2bmSeei2UZPp y7vinKoe82JAjMEAAEKAB0WIQSDkqKUTWQHCvFIvbIEWL7uWMY5RgUCad9cxwAKCRAEWL7uWMY5 RsGnD/9RDu36LVp0jfJ+/mkIL8DHa3ilX1GGGzubgXByF4dOdVplrkytaRaHMObCnboxQwnW6/a skIz1h8ikL0TBcNXAv6+/aeXbQNLgaNfyN8a47THd1daADxsCoMML6P/QCc96NVWGHIF+6YWQ/F YWMyTjsPhyOJ0RsWgJY542iopqNZRo26MdkcTjDLVNtF9Fllln8HVh0mEBcJrWJo9Oi2eo950No WyxfqToSzOe8rdwQBszC2DnTjUdWNC9KUcPQNAkXuXN7s7o4Je3bNugR+KSKxv01gW08JpGko6S kBM4qXqLei6+EdqrRARVgsMR+npatqd1mRl5kR3F/NmE7JGvyL0XjjrttjH/gLmGORQLw0LbIIP rYkegJcjwlJ+9PYBlQDFDh0OxEZimbcgMB7EE7yFxeoQtsPv/vzEa2XcmlnAhtaevBmHPtpgSff 5mBO5QvhzqxJ6TpT+MoFnvHFuA2Y35RxsEFP5oRRhOMKSvplnlfwwZzsC5NddgEsMZFUokSONKK z3OWUfk8TU1v3ruRAHz7uAlvSONuuR27TZ4JE3mg7BJRLr7FBfwD4fQoAXjr5B5UwNSQ1DeCD44 sgvRZVoM1hRcP4SEO2KBzY0RZR0OZCHvsKEuD2gHm1rCFmrI2mbGW+4CKF+NmD80aY4bkDqW0g/ kS9GQxhhWQwwcvA== X-Mailer: b4 0.14.3 Message-ID: <20260415-binder-netlink-v3-0-84be9ba63ee2@google.com> Subject: [PATCH v3 0/4] Rust netlink support + use in Rust Binder From: Alice Ryhl To: Miguel Ojeda , Boqun Feng , Gary Guo , "=?utf-8?q?Bj=C3=B6rn_Roy_Baron?=" , Benno Lossin , Andreas Hindborg , Trevor Gross , Danilo Krummrich , Donald Hunter , Jakub Kicinski , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Greg Kroah-Hartman , "=?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?=" , Todd Kjos , Christian Brauner , Carlos Llamas Cc: linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, netdev@vger.kernel.org, Alice Ryhl Content-Type: text/plain; charset="utf-8" The C Binder driver exposes messages over netlink when transactions fail, so that a userpace daemon can respond to processes with many failing transactions. This patch series adds netlink support from Rust, then implements an equivalent API in Rust Binder. As Binder only uses broadcast messages, I did not add support for other kinds of messages. Based on char-misc-next. Signed-off-by: Alice Ryhl --- Changes in v3: - Fix spurious 'return' statements in Rust helpers (Patch 1). - Sashiko review: - Fix ynl_gen to handle empty multicast groups and correct multicast indexing (Patch 2). - Fix transaction failed reply logic to report via Netlink inside reply_inner() (Patch 4). - Link to v2: https://lore.kernel.org/r/20260408-binder-netlink-v2-0-c0d327d15435@google.com Changes in v2: - Make inclusion of to_pid conditional too. - Add note about file name in second patch. - Make it clear that the sk_buff wrapper is netlink-specific. - Better handle bitfield in patch 1. - Link to v1: https://lore.kernel.org/r/20260306-binder-netlink-v1-0-daceb5bc83f2@google.com --- Alice Ryhl (3): rust: netlink: add raw netlink abstraction ynl_gen: generate Rust files from yaml files rust_binder: add generated netlink.rs file Carlos Llamas (1): rust_binder: report netlink transactions drivers/android/Kconfig | 2 +- drivers/android/binder/netlink.rs | 113 ++++++++++ drivers/android/binder/rust_binder_main.rs | 8 +- drivers/android/binder/thread.rs | 10 + drivers/android/binder/transaction.rs | 40 ++++ rust/bindings/bindings_helper.h | 3 + rust/helpers/genetlink.c | 46 ++++ rust/helpers/helpers.c | 1 + rust/kernel/lib.rs | 1 + rust/kernel/netlink.rs | 329 +++++++++++++++++++++++++++++ rust/uapi/uapi_helper.h | 1 + tools/net/ynl/pyynl/ynl_gen_c.py | 139 +++++++++++- tools/net/ynl/ynl-regen.sh | 2 +- 13 files changed, 690 insertions(+), 5 deletions(-) --- base-commit: 0990a71f678aa0f045f2c126b39b6b581844d3b0 change-id: 20260306-binder-netlink-c82110b2fb74 Best regards, -- Alice Ryhl