diff options
| author | Alice Ryhl <aliceryhl@google.com> | 2026-10-20 08:28:37 +0000 |
|---|---|---|
| committer | Jason Gunthorpe <jgg@nvidia.com> | 2026-10-21 13:59:47 -0300 |
| commit | bc6f2a284c63313e789d8cd294531e1cc2dc8c99 (patch) | |
| tree | d142cb36df50715e1ac115f2b23b3dc32af878ed /rust/bindgen_parameters | |
| parent | c03c1a14507dfaf8b856c2608f9ac216021fc222 (diff) | |
rust: fwctl: declare cfi_encoding for fwctl_rpc_scope
Currently, VTable::fw_rpc_callback() takes scope as a u32, whereas C
calls fwctl_ops::fw_rpc with enum fwctl_rpc_scope. With kCFI enabled,
enum types are encoded distinctly from integers, causing every fw_rpc
indirect call into a Rust fwctl driver to trip a CFI failure. Thus,
generate fwctl_rpc_scope as a newtype with a cfi_encoding attribute and
use it in fw_rpc_callback().
Link: https://patch.msgid.link/r/20261020-fwctl-cfi-encoding-v1-1-ebb30d1500df@google.com
Cc: stable@vger.kernel.org
Fixes: e052daab94ee ("rust: introduce abstractions for fwctl")
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Zhi Wang <zhiw@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Diffstat (limited to 'rust/bindgen_parameters')
| -rw-r--r-- | rust/bindgen_parameters | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/rust/bindgen_parameters b/rust/bindgen_parameters index 8402b0c93545..e4f8c07743a8 100644 --- a/rust/bindgen_parameters +++ b/rust/bindgen_parameters @@ -27,6 +27,8 @@ --opaque-type spinlock # enums that appear in indirect function calls should specify a cfi type +--newtype-enum fwctl_rpc_scope +--with-attribute-custom-enum=fwctl_rpc_scope='#[cfi_encoding="15fwctl_rpc_scope"]' --newtype-enum lru_status --with-attribute-custom-enum=lru_status='#[cfi_encoding="10lru_status"]' |
