[PATCH 0/3] rust_binder: Update bitmaps to use kernel::impl_flags!
Jahnavi MN via B4 Relay <[email protected]>
| Newsgroups | org.kernel.vger.rust-for-linux,org.kernel.feeds.b4-sent,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- Jahnavi MN (3): rust_binder: Update defer_work bitmaps to use kernel::impl_flags! rust_binder: Update looper_flags bitmaps to use kernel::impl_flags! rust_binder: Update transaction flags to use kernel::impl_flags! drivers/android/binder/process.rs | 34 +++++++++++------ drivers/android/binder/thread.rs | 69 +++++++++++++++++++++-------------- drivers/android/binder/transaction.rs | 56 +++++++++++++++++++++------- 3 files changed, 105 insertions(+), 54 deletions(-) --- base-commit: 775553d19b163446c38c5ff24dd0a01065376932 change-id: 20260715-b4-rust_binder_impl_flags-e53b4ebca85d Best regards, -- Jahnavi MN <[email protected]>