Rust for Linux List
 help / color / mirror / Atom feed
* [PATCH] rust: helpers: move list_lru and task_work helpers out of binder.c
@ 2026-06-23  9:39 Xiaobo Liu
  2026-06-23  9:52 ` Miguel Ojeda
  0 siblings, 1 reply; 4+ messages in thread
From: Xiaobo Liu @ 2026-06-23  9:39 UTC (permalink / raw)
  To: rust-for-linux; +Cc: ojeda, Xiaobo Liu

The helpers in binder.c wrap generic list_lru and task_work inline
functions and have nothing to do with binder. Move them to mm.c and
task_work.c respectively, where they belong by subsystem.

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
---
 rust/helpers/binder.c    | 27 ---------------------------
 rust/helpers/helpers.c   |  2 +-
 rust/helpers/mm.c        | 14 ++++++++++++++
 rust/helpers/task_work.c |  9 +++++++++
 4 files changed, 24 insertions(+), 28 deletions(-)
 delete mode 100644 rust/helpers/binder.c
 create mode 100644 rust/helpers/task_work.c

diff --git a/rust/helpers/binder.c b/rust/helpers/binder.c
deleted file mode 100644
index a2327f1b3..000000000
--- a/rust/helpers/binder.c
+++ /dev/null
@@ -1,27 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-
-/*
- * Copyright (C) 2025 Google LLC.
- */
-
-#include <linux/list_lru.h>
-#include <linux/task_work.h>
-
-__rust_helper unsigned long rust_helper_list_lru_count(struct list_lru *lru)
-{
-	return list_lru_count(lru);
-}
-
-__rust_helper unsigned long rust_helper_list_lru_walk(struct list_lru *lru,
-						      list_lru_walk_cb isolate,
-						      void *cb_arg,
-						      unsigned long nr_to_walk)
-{
-	return list_lru_walk(lru, isolate, cb_arg, nr_to_walk);
-}
-
-__rust_helper void rust_helper_init_task_work(struct callback_head *twork,
-					      task_work_func_t func)
-{
-	init_task_work(twork, func);
-}
diff --git a/rust/helpers/helpers.c b/rust/helpers/helpers.c
index 998e31052..fe0883b33 100644
--- a/rust/helpers/helpers.c
+++ b/rust/helpers/helpers.c
@@ -43,7 +43,6 @@
 #include "atomic_ext.c"
 #include "auxiliary.c"
 #include "barrier.c"
-#include "binder.c"
 #include "bitmap.c"
 #include "bitops.c"
 #include "blk.c"
@@ -93,6 +92,7 @@
 #include "string.c"
 #include "sync.c"
 #include "task.c"
+#include "task_work.c"
 #include "time.c"
 #include "uaccess.c"
 #include "usb.c"
diff --git a/rust/helpers/mm.c b/rust/helpers/mm.c
index b5540997b..941984feb 100644
--- a/rust/helpers/mm.c
+++ b/rust/helpers/mm.c
@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 
+#include <linux/list_lru.h>
 #include <linux/mm.h>
 #include <linux/sched/mm.h>
 
@@ -8,6 +9,19 @@ __rust_helper void rust_helper_mmgrab(struct mm_struct *mm)
 	mmgrab(mm);
 }
 
+__rust_helper unsigned long rust_helper_list_lru_count(struct list_lru *lru)
+{
+	return list_lru_count(lru);
+}
+
+__rust_helper unsigned long rust_helper_list_lru_walk(struct list_lru *lru,
+						      list_lru_walk_cb isolate,
+						      void *cb_arg,
+						      unsigned long nr_to_walk)
+{
+	return list_lru_walk(lru, isolate, cb_arg, nr_to_walk);
+}
+
 __rust_helper void rust_helper_mmdrop(struct mm_struct *mm)
 {
 	mmdrop(mm);
diff --git a/rust/helpers/task_work.c b/rust/helpers/task_work.c
new file mode 100644
index 000000000..5bdb752cb
--- /dev/null
+++ b/rust/helpers/task_work.c
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <linux/task_work.h>
+
+__rust_helper void rust_helper_init_task_work(struct callback_head *twork,
+					      task_work_func_t func)
+{
+	init_task_work(twork, func);
+}
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] rust: helpers: move list_lru and task_work helpers out of binder.c
  2026-06-23  9:39 [PATCH] rust: helpers: move list_lru and task_work helpers out of binder.c Xiaobo Liu
@ 2026-06-23  9:52 ` Miguel Ojeda
  2026-06-23 10:24   ` [PATCH v2] " Xiaobo Liu
  0 siblings, 1 reply; 4+ messages in thread
From: Miguel Ojeda @ 2026-06-23  9:52 UTC (permalink / raw)
  To: Xiaobo Liu
  Cc: rust-for-linux, ojeda, Linux-MM, linux-kernel, Andrew Morton,
	Dave Chinner, Qi Zheng, Roman Gushchin, Muchun Song,
	Lorenzo Stoakes, Liam R. Howlett, Greg Kroah-Hartman,
	Arve Hjønnevåg, Todd Kjos, Christian Brauner,
	Carlos Llamas, Boqun Feng, Gary Guo, Björn Roy Baron,
	Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross,
	Danilo Krummrich, Daniel Almeida, Tamir Duberstein,
	Alexandre Courbot, Onur Özkan

On Tue, Jun 23, 2026 at 11:39 AM Xiaobo Liu <cppcoffee@gmail.com> wrote:
>
> The helpers in binder.c wrap generic list_lru and task_work inline
> functions and have nothing to do with binder. Move them to mm.c and
> task_work.c respectively, where they belong by subsystem.
>
> Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>

In general, please Cc the relevant maintainers/reviewers/subsystems as
well as the LKML -- `scripts/get_maintainer.pl` can help there;
otherwise, you can check `MAINTAINERS` manually too.

Doing so here for you to give you an idea of how it could look like --
I hope it helps.

> +#include <linux/list_lru.h>

Since you are creating a new file for `task_work`, what about one for
`list_lru` too?

(And we should likely add the new files to the respective
`MAINTAINERS` entries.)

Thanks!

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2] rust: helpers: move list_lru and task_work helpers out of binder.c
  2026-06-23  9:52 ` Miguel Ojeda
@ 2026-06-23 10:24   ` Xiaobo Liu
  2026-06-23 11:42     ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: Xiaobo Liu @ 2026-06-23 10:24 UTC (permalink / raw)
  To: rust-for-linux
  Cc: ojeda, miguel.ojeda.sandonis, akpm, david, qi.zheng,
	roman.gushchin, muchun.song, boqun, gary, bjorn3_gh, lossin,
	a.hindborg, aliceryhl, tmgross, linux-kernel, linux-mm,
	Xiaobo Liu

The helpers in binder.c wrap generic list_lru and task_work inline
functions and have nothing to do with binder. Move each of them to a
file named after its own C header:

  - list_lru helpers move to list_lru.c,
  - init_task_work moves to task_work.c.

Add the new list_lru.c to the SHRINKER entry in MAINTAINERS, which
already covers include/linux/list_lru.h.

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
---
 MAINTAINERS                           |  1 +
 rust/helpers/helpers.c                |  3 ++-
 rust/helpers/{binder.c => list_lru.c} |  7 -------
 rust/helpers/task_work.c              | 13 +++++++++++++
 4 files changed, 16 insertions(+), 8 deletions(-)
 rename rust/helpers/{binder.c => list_lru.c} (72%)
 create mode 100644 rust/helpers/task_work.c

diff --git a/MAINTAINERS b/MAINTAINERS
index ba45953bb..428992431 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -24590,6 +24590,7 @@ S:	Maintained
 F:	Documentation/admin-guide/mm/shrinker_debugfs.rst
 F:	include/linux/list_lru.h
 F:	include/linux/shrinker.h
+F:	rust/helpers/list_lru.c
 F:	mm/list_lru.c
 F:	mm/shrinker.c
 F:	mm/shrinker_debug.c
diff --git a/rust/helpers/helpers.c b/rust/helpers/helpers.c
index 998e31052..ea34101b9 100644
--- a/rust/helpers/helpers.c
+++ b/rust/helpers/helpers.c
@@ -43,7 +43,6 @@
 #include "atomic_ext.c"
 #include "auxiliary.c"
 #include "barrier.c"
-#include "binder.c"
 #include "bitmap.c"
 #include "bitops.c"
 #include "blk.c"
@@ -69,6 +68,7 @@
 #include "jump_label.c"
 #include "kunit.c"
 #include "list.c"
+#include "list_lru.c"
 #include "maple_tree.c"
 #include "mm.c"
 #include "mutex.c"
@@ -93,6 +93,7 @@
 #include "string.c"
 #include "sync.c"
 #include "task.c"
+#include "task_work.c"
 #include "time.c"
 #include "uaccess.c"
 #include "usb.c"
diff --git a/rust/helpers/binder.c b/rust/helpers/list_lru.c
similarity index 72%
rename from rust/helpers/binder.c
rename to rust/helpers/list_lru.c
index a2327f1b3..3b88d1a96 100644
--- a/rust/helpers/binder.c
+++ b/rust/helpers/list_lru.c
@@ -5,7 +5,6 @@
  */
 
 #include <linux/list_lru.h>
-#include <linux/task_work.h>
 
 __rust_helper unsigned long rust_helper_list_lru_count(struct list_lru *lru)
 {
@@ -19,9 +18,3 @@ __rust_helper unsigned long rust_helper_list_lru_walk(struct list_lru *lru,
 {
 	return list_lru_walk(lru, isolate, cb_arg, nr_to_walk);
 }
-
-__rust_helper void rust_helper_init_task_work(struct callback_head *twork,
-					      task_work_func_t func)
-{
-	init_task_work(twork, func);
-}
diff --git a/rust/helpers/task_work.c b/rust/helpers/task_work.c
new file mode 100644
index 000000000..cb961cd22
--- /dev/null
+++ b/rust/helpers/task_work.c
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/*
+ * Copyright (C) 2025 Google LLC.
+ */
+
+#include <linux/task_work.h>
+
+__rust_helper void rust_helper_init_task_work(struct callback_head *twork,
+					      task_work_func_t func)
+{
+	init_task_work(twork, func);
+}
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] rust: helpers: move list_lru and task_work helpers out of binder.c
  2026-06-23 10:24   ` [PATCH v2] " Xiaobo Liu
@ 2026-06-23 11:42     ` Greg KH
  0 siblings, 0 replies; 4+ messages in thread
From: Greg KH @ 2026-06-23 11:42 UTC (permalink / raw)
  To: Xiaobo Liu
  Cc: rust-for-linux, ojeda, miguel.ojeda.sandonis, akpm, david,
	qi.zheng, roman.gushchin, muchun.song, boqun, gary, bjorn3_gh,
	lossin, a.hindborg, aliceryhl, tmgross, linux-kernel, linux-mm

On Tue, Jun 23, 2026 at 06:24:31PM +0800, Xiaobo Liu wrote:
> The helpers in binder.c wrap generic list_lru and task_work inline
> functions and have nothing to do with binder. Move each of them to a
> file named after its own C header:
> 
>   - list_lru helpers move to list_lru.c,
>   - init_task_work moves to task_work.c.
> 
> Add the new list_lru.c to the SHRINKER entry in MAINTAINERS, which
> already covers include/linux/list_lru.h.
> 
> Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
> ---
>  MAINTAINERS                           |  1 +
>  rust/helpers/helpers.c                |  3 ++-
>  rust/helpers/{binder.c => list_lru.c} |  7 -------
>  rust/helpers/task_work.c              | 13 +++++++++++++
>  4 files changed, 16 insertions(+), 8 deletions(-)
>  rename rust/helpers/{binder.c => list_lru.c} (72%)
>  create mode 100644 rust/helpers/task_work.c
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index ba45953bb..428992431 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -24590,6 +24590,7 @@ S:	Maintained
>  F:	Documentation/admin-guide/mm/shrinker_debugfs.rst
>  F:	include/linux/list_lru.h
>  F:	include/linux/shrinker.h
> +F:	rust/helpers/list_lru.c
>  F:	mm/list_lru.c
>  F:	mm/shrinker.c
>  F:	mm/shrinker_debug.c
> diff --git a/rust/helpers/helpers.c b/rust/helpers/helpers.c
> index 998e31052..ea34101b9 100644
> --- a/rust/helpers/helpers.c
> +++ b/rust/helpers/helpers.c
> @@ -43,7 +43,6 @@
>  #include "atomic_ext.c"
>  #include "auxiliary.c"
>  #include "barrier.c"
> -#include "binder.c"
>  #include "bitmap.c"
>  #include "bitops.c"
>  #include "blk.c"
> @@ -69,6 +68,7 @@
>  #include "jump_label.c"
>  #include "kunit.c"
>  #include "list.c"
> +#include "list_lru.c"
>  #include "maple_tree.c"
>  #include "mm.c"
>  #include "mutex.c"
> @@ -93,6 +93,7 @@
>  #include "string.c"
>  #include "sync.c"
>  #include "task.c"
> +#include "task_work.c"
>  #include "time.c"
>  #include "uaccess.c"
>  #include "usb.c"
> diff --git a/rust/helpers/binder.c b/rust/helpers/list_lru.c
> similarity index 72%
> rename from rust/helpers/binder.c
> rename to rust/helpers/list_lru.c
> index a2327f1b3..3b88d1a96 100644
> --- a/rust/helpers/binder.c
> +++ b/rust/helpers/list_lru.c
> @@ -5,7 +5,6 @@
>   */
>  
>  #include <linux/list_lru.h>
> -#include <linux/task_work.h>
>  
>  __rust_helper unsigned long rust_helper_list_lru_count(struct list_lru *lru)
>  {
> @@ -19,9 +18,3 @@ __rust_helper unsigned long rust_helper_list_lru_walk(struct list_lru *lru,
>  {
>  	return list_lru_walk(lru, isolate, cb_arg, nr_to_walk);
>  }
> -
> -__rust_helper void rust_helper_init_task_work(struct callback_head *twork,
> -					      task_work_func_t func)
> -{
> -	init_task_work(twork, func);
> -}
> diff --git a/rust/helpers/task_work.c b/rust/helpers/task_work.c
> new file mode 100644
> index 000000000..cb961cd22
> --- /dev/null
> +++ b/rust/helpers/task_work.c
> @@ -0,0 +1,13 @@
> +// SPDX-License-Identifier: GPL-2.0
> +
> +/*
> + * Copyright (C) 2025 Google LLC.
> + */
> +
> +#include <linux/task_work.h>
> +
> +__rust_helper void rust_helper_init_task_work(struct callback_head *twork,
> +					      task_work_func_t func)
> +{
> +	init_task_work(twork, func);
> +}
> -- 
> 2.34.1
> 
> 

Hi,

This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
a patch that has triggered this response.  He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created.  Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.

You are receiving this message because of the following common error(s)
as indicated below:

- This looks like a new version of a previously submitted patch, but you
  did not list below the --- line any changes from the previous version.
  Please read the section entitled "The canonical patch format" in the
  kernel file, Documentation/process/submitting-patches.rst for what
  needs to be done here to properly describe this.

If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.

thanks,

greg k-h's patch email bot

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-06-23 11:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-23  9:39 [PATCH] rust: helpers: move list_lru and task_work helpers out of binder.c Xiaobo Liu
2026-06-23  9:52 ` Miguel Ojeda
2026-06-23 10:24   ` [PATCH v2] " Xiaobo Liu
2026-06-23 11:42     ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox