[PATCH v2 0/2] rust_binder: Update bitmaps to use kernel::impl_flags!

From: Jahnavi MN via B4 Relay

Date: Sun Jul 19 2026 - 05:57:32 EST


In the current Rust Binder driver, internal state variables (thread
looper states, deferred work, and transaction configurations) are
represented as raw integers and manipulated using manual bitwise
operations.

This approach lacks type safety. Because the compiler treats all
integers identically, it is possible to pass a thread looper flag
into a function expecting a transaction flag without triggering
compile-time warnings. These cross-contamination errors compile
cleanly but can cause runtime bugs or undefined behavior.

This patch series resolves this issue by migrating these raw integer
bitmaps (`defer_work`, `looper_flags`, `flags`) to strongly-typed
bitmasks using the `kernel::impl_flags!` macro. Functions now accept
specific, distinct types rather than generic integers, preventing
flags from being mixed up. This transition also replaces manual
bitwise arithmetic with readable, safe methods.

Based on top of:
https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git

Signed-off-by: Jahnavi MN <jahnavimn@xxxxxxxxxx>
---
Changes in v2:
- Drop Patch 1 (defer_work) as it was merged into char-misc-testing.
- Rebase remaining two patches on latest char-misc-testing tree.
- Link to v1: https://lore.kernel.org/r/20260716-b4-rust_binder_impl_flags-v1-0-b4201d3f15b3@xxxxxxxxxx

---
Jahnavi MN (2):
rust_binder: Update looper_flags bitmaps to use kernel::impl_flags!
rust_binder: Update transaction flags to use kernel::impl_flags!

drivers/android/binder/thread.rs | 68 ++++++++++++++++++++---------------
drivers/android/binder/transaction.rs | 58 ++++++++++++++++++++++--------
2 files changed, 83 insertions(+), 43 deletions(-)
---
base-commit: 2cedf2272f1bb42471e646868ac572cc5752bd91
change-id: 20260715-b4-rust_binder_impl_flags-e53b4ebca85d

Best regards,
--
Jahnavi MN <jahnavimn@xxxxxxxxxx>