[PATCH v3 0/2] rust: page: Add support for existing struct page mappings

From: Abdiel Janulgue
Date: Tue Nov 19 2024 - 06:24:50 EST


This series aims to add support for pages that are not constructed by an
instance of the rust Page abstraction, for example those returned by
vmalloc_to_page() or virt_to_page().

Changes sinve v3:
- Use the struct page's reference count to decide when to free the
allocation (Alice Ryhl, Boqun Feng).
- Make Page::page_slice_to_page handle virt_to_page cases as well
(Danilo Krummrich).
- Link to v2: https://lore.kernel.org/lkml/20241022224832.1505432-1-abdiel.janulgue@xxxxxxxxx/

Changes since v2:
- Use Owned and Ownable types for constructing Page as suggested in
instad of using ptr::read().
- Link to v1: https://lore.kernel.org/rust-for-linux/20241007202752.3096472-1-abdiel.janulgue@xxxxxxxxx/

Abdiel Janulgue (2):
rust: page: use the page's reference count to decide when to free the
allocation
rust: page: Extend support to existing struct page mappings

rust/bindings/bindings_helper.h | 1 +
rust/helpers/page.c | 20 +++++
rust/kernel/page.rs | 135 ++++++++++++++++++++++++++++----
3 files changed, 142 insertions(+), 14 deletions(-)


base-commit: b2603f8ac8217bc59f5c7f248ac248423b9b99cb
--
2.43.0