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 3DCE3384244 for ; Mon, 25 May 2026 13:17:43 +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=1779715065; cv=none; b=kZqmJaV1haKIZHF44q1MpQiX5dVB+Dp5+QChG9dz+sYcVdyNVyuugoNRIOSZRZ1PZGNpG1djgxXWBu5uIqhRRSBNRR5xJvIGvnkxjR2Edpb+kTTHrkOM/mcYWQ4GYVDmVMkIW5ZvKCMGzq0ueUjiuzIaLQO391uzhlf6CV8eRng= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779715065; c=relaxed/simple; bh=4If/o2OX+ZW8k0516D2bD5teniSCcga6VoMuSFlNDok=; h=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type; b=OgsCL4CPzZ9B7/dNSwh4QxwpElpaMLJGQiOCqIQoWeGv35ofvsYaCUTDpB9BOz61Xm6GRB8+Sh2Z6taZnFbzJRWG55oCAXH6c0SbShOfrrzu8QmnaqBZT9Mtad19YdWBvzGomri5hdEU4f22/gRFw1JaaJSz1r9f6gzzt/rZHpw= 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=YzEdWEh4; 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="YzEdWEh4" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-48fd33b4921so62528815e9.2 for ; Mon, 25 May 2026 06:17:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1779715061; x=1780319861; darn=vger.kernel.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=3Eb3AbcCjLSWMmgt2DoqhcidSWGufXOejNAXiyWhMoM=; b=YzEdWEh4r6XMOcsF4FwOLG2/NsP+2iVzFOw+KIL/IwYvEturRNEwkF27Vk9cLjVz5n NKq75BSesmc3FfZFN+RSPVm5lHh3zLgK6zVEsh/cMybT99NZbwdHHvgqb/VqPSASRngP TsZ2IOB7VxQ92rsQPSXxW4/SKJWB9LITW9/NzQnN5CqRffAaXcTnZPB//5i5dt4E/ZLY suZ/qbBjXwJyHYt2vDQnAIdc9GXvTm+FIGKHV/DG+ZqEv2oBoEdPM/mf34MLqrjLEUQ1 lFi0JalQMGBh67NOvdr8be3+9Gs+5mAEqBrmtezKlsmC2i3SHyaGNG/tcvAozGw7bsRm Aczw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779715061; x=1780319861; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=3Eb3AbcCjLSWMmgt2DoqhcidSWGufXOejNAXiyWhMoM=; b=hF00KQVjxxtOaTSXd44AdL9zBrwhGnnV36nrXxQ4H0w44/coQklD5sqRxD3hR8CeGB t026RDsf5CHvZBRjzY24neRUHXs2CCr0X13e/i4NwOa0z6i7muDzaZQ8w2R3stx8QQNy HrRw3N3CD+EIZ2cJpgJQHdEmrVurLEe9EXX6ou4CzDjpXO1nL1rpHabRxL0+Ags5L3KG 60r2jbgHFFFEqkh166N1T3QKhMiKJcfaQwn5XZIphWTIs9x6WBZVuF0rdRBWoDzqXBPY DcT2Bk6XVFvTNscGqnzloER5dZOcED0+Gu7wsmYD7eWTd4aNbHpQLETyRhBHinuE4Cmy G50w== X-Forwarded-Encrypted: i=1; AFNElJ/rxtwvaS57Uabgqt2xvk9+vgc17CO1V95k53qObWY+phdrWbCPNSOYyuHNGhhrd8abVpps42uQg24Fh20=@vger.kernel.org X-Gm-Message-State: AOJu0YygqYYUN4t+28+27g+XobAREmg9T5Cjq5J5dCXfhwSF+9RrkvbM wNxlYLLHmSial7CFEQTq1d71L6yGxJgeC+OUCYE7J4WOZEwee+wtjqPRg2dHQUiDiprm6L/kpAC pgjtDbP+tHiZbWNv7LQ== X-Received: from wmfu8.prod.google.com ([2002:a05:600c:1388:b0:488:a71c:cf48]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:8b41:b0:490:4a1b:d8d4 with SMTP id 5b1f17b1804b1-4904a1bd912mr200379925e9.27.1779715060904; Mon, 25 May 2026 06:17:40 -0700 (PDT) Date: Mon, 25 May 2026 13:17:26 +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=H4sIAOZLFGoC/3XNwW7DIBAE0F+JOJdqWcBxc+p/VDl4Ye2gppBgx 2oV+d9LkoNToR5npDdzFSPnwKPYba4i8xzGkGIJ9mUj3KGLA8vgSxYI2ICGRlKInrOMPB1D/JS uRaWAsKetEQWdMvfh+z74sX/kzOdL2Z3W8hDGKeWf++msbu2/+7OSIH3nmCy5Vvf4PqQ0HPnVp S9x25px9QbaymPxDrzGrVfWaFt5/eSVrbwuvjXEb9Q1mrn+N6u3YCpvim9AkVHOo6W/flmWX/y l+pWCAQAA 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=2508; i=aliceryhl@google.com; h=from:subject:message-id; bh=4If/o2OX+ZW8k0516D2bD5teniSCcga6VoMuSFlNDok=; b=owEBbQKS/ZANAwAKAQRYvu5YxjlGAcsmYgBqFEvtyopGP/gLT9uM3cPVnpxwPjd5bSnXLBv2o 0UWs0CXKMiJAjMEAAEKAB0WIQSDkqKUTWQHCvFIvbIEWL7uWMY5RgUCahRL7QAKCRAEWL7uWMY5 Ro0VD/41ifg3qJPvQVMbsWWWTWn47LNLJ07zFc5y4n9ruYykcrUDjz3suMr6IFQazmk/mxi6oeH 4/oyTjrrmIwgsUr/gqLU1AM9bJGQQ8zszSzKrE9ur5qZlhOMEuj+rd8RARfhuXd5HtTaxFBpZaN 5UmtAmn/PMIIN8epM7Jrhiv4+7em5cbPdu3gVPr0K7JqDJ4VJ9MeKUlYvVLZSYkH/xUN3RwiR8S f+6LGgDln/ljJxH7mu6Bn1x8jS2v1QSVsvMphx0WB8DfltZz497tWFbF8MT8t6zIYBu5F67pheC 5dYPyIyXL1z5Y/lkNkGU+0HdfryiPoT7BxPVrJmOUsb/3TcJvhDjCXuqSw4TZADxEDIrV04Tqn3 aIg5TzLJTK28mgKAeDBf8+mwpjTuP2A+CXLvH7y7rZbOKjUh1raGbRhKtc/lp+swDIKlZCo/A5A WJtILkNSSxswZ9PHkS0HsVy+CgBqLHEmet3MpoVBwhejw8IqBIuwPH+ZXHV3AKH27lnPyWAXpjT HHbl2oHuaOfJfn2L4qifw0yHfhgMMLlotxaveATDWyhcBvJRzzivvnOI+qNLqUhk5Q4EIFSXxlh 9Aq9pdFW9c2WSkpCdGUgTF4IijCuSVD3skJhutvr9vk09oyiBi04ktDOOJYJph9IYNmmt65fred 9H11VebIOfa/Qnw== X-Mailer: b4 0.14.3 Message-ID: <20260525-binder-netlink-v5-0-a90e2923ebeb@google.com> Subject: [PATCH v5 0/2] Rust netlink support + use in Rust Binder From: Alice Ryhl To: Carlos Llamas , Greg Kroah-Hartman , Andrew Lunn , Donald Hunter , Jakub Kicinski , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Matthew Maurer Cc: Miguel Ojeda , Boqun Feng , Gary Guo , "=?utf-8?q?Bj=C3=B6rn_Roy_Baron?=" , Benno Lossin , Andreas Hindborg , Trevor Gross , Danilo Krummrich , Christian Brauner , 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. Signed-off-by: Alice Ryhl --- Changes in v5: - Remove patch 2. - Squash patches 3 and 4. - Link to v4: https://lore.kernel.org/r/20260504-binder-netlink-v4-0-601b41cd25b2@google.com Changes in v4: - Fix typo in 'report netlink transactions' commit message. - Document that some methods are for const context only. - Rebase and pick up tags. - Link to v3: https://lore.kernel.org/r/20260415-binder-netlink-v3-0-84be9ba63ee2@google.com 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 (1): rust: netlink: add raw netlink abstraction Carlos Llamas (1): rust_binder: report netlink transactions drivers/android/Kconfig | 2 +- drivers/android/binder/netlink.rs | 110 ++++++++++ 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 | 336 +++++++++++++++++++++++++++++ rust/uapi/uapi_helper.h | 1 + 11 files changed, 555 insertions(+), 3 deletions(-) --- base-commit: 5ad28496055858166eb2268344c8fda2c26d3561 change-id: 20260306-binder-netlink-c82110b2fb74 Best regards, -- Alice Ryhl