On Thu, 15 Aug 2024 10:30:26 +0000 Andreas Hindborg <nmi@xxxxxxxxxxxx> wrote: > From: Andreas Hindborg <a.hindborg@xxxxxxxxxxx> > > This patch splits up the rust helpers C file. When rebasing patch sets on > upstream linux, merge conflicts in helpers.c is common and time consuming > [1]. Thus, split the file so that each kernel component can live in a > separate file. > > This patch lists helper files explicitly and thus conflicts in the file > list is still likely. However, they should be more simple to resolve than > the conflicts usually seen in helpers.c. > > Link: https://rust-for-linux.zulipchat.com/#narrow/stream/288089-General/topic/Splitting.20up.20helpers.2Ec/near/426694012 [1] > Signed-off-by: Andreas Hindborg <a.hindborg@xxxxxxxxxxx> > > --- > > Changes since v2 [2]: > - Rebase on 6.11-rc3. > - Use `cpp` instead of Makefile scripting to concatenate files. > > Link: > https://lore.kernel.org/rust-for-linux/20240507210818.672517-1-ojeda@xxxxxxxxxx/ [2] > --- > rust/Makefile | 6 +- > rust/helpers.c | 239 ------------------------------------ > rust/helpers/README.md | 17 +++ > rust/helpers/blk.c | 16 +++ > rust/helpers/bug.c | 9 ++ > rust/helpers/build_assert.c | 25 ++++ > rust/helpers/build_bug.c | 10 ++ > rust/helpers/err.c | 22 ++++ > rust/helpers/helpers.c | 18 +++ > rust/helpers/kunit.c | 10 ++ > rust/helpers/mutex.c | 10 ++ > rust/helpers/page.c | 24 ++++ > rust/helpers/refcount.c | 22 ++++ > rust/helpers/signal.c | 10 ++ > rust/helpers/slab.c | 10 ++ > rust/helpers/spinlock.c | 27 ++++ > rust/helpers/task.c | 22 ++++ > rust/helpers/uaccess.c | 17 +++ > rust/helpers/wait.c | 10 ++ > rust/helpers/workqueue.c | 16 +++ > 20 files changed, 298 insertions(+), 242 deletions(-) > delete mode 100644 rust/helpers.c > create mode 100644 rust/helpers/README.md > create mode 100644 rust/helpers/blk.c > create mode 100644 rust/helpers/bug.c > create mode 100644 rust/helpers/build_assert.c > create mode 100644 rust/helpers/build_bug.c > create mode 100644 rust/helpers/err.c > create mode 100644 rust/helpers/helpers.c > create mode 100644 rust/helpers/kunit.c > create mode 100644 rust/helpers/mutex.c > create mode 100644 rust/helpers/page.c > create mode 100644 rust/helpers/refcount.c > create mode 100644 rust/helpers/signal.c > create mode 100644 rust/helpers/slab.c > create mode 100644 rust/helpers/spinlock.c > create mode 100644 rust/helpers/task.c > create mode 100644 rust/helpers/uaccess.c > create mode 100644 rust/helpers/wait.c > create mode 100644 rust/helpers/workqueue.c > > diff --git a/rust/helpers/page.c b/rust/helpers/page.c > new file mode 100644 > index 000000000000..b3280c80b283 > --- /dev/null > +++ b/rust/helpers/page.c > @@ -0,0 +1,24 @@ > +// SPDX-License-Identifier: GPL-2.0 > + > +#include <linux/gfp.h> > +#include <linux/highmem.h> > + > +struct page *rust_helper_alloc_pages(gfp_t gfp_mask, unsigned int order) > +{ > + return alloc_pages(gfp_mask, order); > +} > +EXPORT_SYMBOL_GPL(rust_helper_alloc_pages); > + > +void *rust_helper_kmap_local_page(struct page *page) > +{ > + return kmap_local_page(page); > +} > +EXPORT_SYMBOL_GPL(rust_helper_kmap_local_page); > + > +void rust_helper_kunmap_local(const void *addr) > +{ > + kunmap_local(addr); > +} > +EXPORT_SYMBOL_GPL(rust_helper_kunmap_local); > + > + nit: there're two trailing newlines at the end of this file. Best, Gary > diff --git a/rust/helpers/refcount.c b/rust/helpers/refcount.c > new file mode 100644 > index 000000000000..13ab64805f77 > --- /dev/null > +++ b/rust/helpers/refcount.c > @@ -0,0 +1,22 @@ > +// SPDX-License-Identifier: GPL-2.0 > + > +#include <linux/export.h> > +#include <linux/refcount.h> > + > +refcount_t rust_helper_REFCOUNT_INIT(int n) > +{ > + return (refcount_t)REFCOUNT_INIT(n); > +} > +EXPORT_SYMBOL_GPL(rust_helper_REFCOUNT_INIT); > + > +void rust_helper_refcount_inc(refcount_t *r) > +{ > + refcount_inc(r); > +} > +EXPORT_SYMBOL_GPL(rust_helper_refcount_inc); > + > +bool rust_helper_refcount_dec_and_test(refcount_t *r) > +{ > + return refcount_dec_and_test(r); > +} > +EXPORT_SYMBOL_GPL(rust_helper_refcount_dec_and_test);