Messages in this thread | | | From | Valentin Obst <> | Subject | Re: [PATCH v2 0/5] In-place module initialisation | Date | Fri, 29 Mar 2024 13:10:33 +0100 |
| |
> Introduce `InPlaceModule`, which allows modules to be initialised > inplace, as opposed to the current state where modules must return an > instance which is moved to its final memory location. > > This allows us to have modules whose state hold objects that must be > initialised inplace like locks. It also allows us to implement > registrations (e.g., driver registration) inplace and have them similar > to their C counterparts where no new allocations are needed. > > This is built on top of the allocation APIs because the sample module is > a modified version of rust_minimal, which would be incompatible with the > allocation API series because it uses vectors. > > --- > > Changes in v2: > > - Rebased to latest rust-next > - Split off adding `Send` requirement to `Module` into a separate patch
I think the idea in [1] was to have this patch being included in the stable trees. I got little experience with stable trees but wouldn't the easiest way be that you add:
Cc: stable@vger.kernel.org # 6.8.x: 715dd8950d4e rust: phy: implement `Send` for `Registration` Cc: stable@vger.kernel.org Fixes: 247b365dc8dc ("rust: add `kernel` crate")
in the sign-off section for this patch? (Or mark the first one for stable inclusion as well, [2] has more information on that).
- Best Valentin
[1]: https://lore.kernel.org/rust-for-linux/20240327032337.188938-1-wedsonaf@gmail.com/T/#m4b4daf27038f920a0c6fafff453efb3c8da72067 [2]: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html#option-1
> - Prefixed all `core` and `kernel` references with `::` in > `module!` macro-generated code. > - Calling `__pinned_init` with explicit full path. > - Add `Mutex` to `rust_inplace` sample. > - Added `Send` implementation for `Registration` in net/phy. > - Link to v1: https://lore.kernel.org/rust-for-linux/20240327032337.188938-1-wedsonaf@gmail.com/T/#t > > --- > Wedson Almeida Filho (5): > rust: phy: implement `Send` for `Registration` > rust: kernel: require `Send` for `Module` implementations > rust: module: prefix all module paths with `::` > rust: introduce `InPlaceModule` > samples: rust: add in-place initialisation sample > > rust/kernel/lib.rs | 25 +++++++++++++++++++- > rust/kernel/net/phy.rs | 4 ++++ > rust/macros/module.rs | 36 ++++++++++++----------------- > samples/rust/Kconfig | 11 +++++++++ > samples/rust/Makefile | 1 + > samples/rust/rust_inplace.rs | 44 ++++++++++++++++++++++++++++++++++++ > 6 files changed, 99 insertions(+), 22 deletions(-) > create mode 100644 samples/rust/rust_inplace.rs > > > base-commit: 453275c66aa4d87c73c5152140b3573ab2435bb7 > -- > 2.34.1
| |