init_task: Include <linux/rbtree.h> in the right file

Message ID f06e810735c49a611e7dc75715f0689b5f7e87c6.1670153931.git.christophe.jaillet@wanadoo.fr
State New
Headers
Series init_task: Include <linux/rbtree.h> in the right file |

Commit Message

Christophe JAILLET Dec. 4, 2022, 11:39 a.m. UTC
  There is no need to include <linux/rbtree.h> in init_task.h.
Move it to the right place, in kernel/cred.c which uses RB_ROOT_CACHED.

This is a follow-up of commit 4e7e3adbba52 ("Expand various INIT_* macros
and remove") which moved things from init_task.h to init_task.c

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
Let see if build-bots agree with me!

This patch depends on [1] and [2].
All these patches are related to init_task.h simplification.

They are unrelated and can be applied separately, but as they modify more
or less the same place in the same file, there may be some merge conflict.

[1]: https://lore.kernel.org/all/1a3d5bd51b7807471a913f8fa621e5a4ecd08e6a.1670100520.git.christophe.jaillet@wanadoo.fr/
[2]: https://lore.kernel.org/all/94c8f2123a8833b61d84a662ec35f9c070cdf4dd.1670147823.git.christophe.jaillet@wanadoo.fr/
---
 include/linux/init_task.h | 1 -
 init/init_task.c          | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)
  

Comments

Marco Elver Dec. 4, 2022, 1:55 p.m. UTC | #1
[+Cc Ingo, who had been working on lots of include improvements.]

The Cc list is odd -- it appears that get_maintainers.pl is broken on
init_task.c:

	$> ./scripts/get_maintainer.pl init/init_task.c
	Mark Rutland <mark.rutland@arm.com> (commit_signer:1/1=100%)
	"Paul E. McKenney" <paulmck@kernel.org> (commit_signer:1/1=100%)
	Marco Elver <elver@google.com> (commit_signer:1/1=100%,authored:1/1=100%,removed_lines:5/5=100%)
	linux-kernel@vger.kernel.org (open list)

What's going on here?

On Sun, Dec 04, 2022 at 12:39PM +0100, Christophe JAILLET wrote:
> There is no need to include <linux/rbtree.h> in init_task.h.
> Move it to the right place, in kernel/cred.c which uses RB_ROOT_CACHED.
> 
> This is a follow-up of commit 4e7e3adbba52 ("Expand various INIT_* macros
> and remove") which moved things from init_task.h to init_task.c
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
> Let see if build-bots agree with me!
> 
> This patch depends on [1] and [2].
> All these patches are related to init_task.h simplification.
> 
> They are unrelated and can be applied separately, but as they modify more
> or less the same place in the same file, there may be some merge conflict.
> 
> [1]: https://lore.kernel.org/all/1a3d5bd51b7807471a913f8fa621e5a4ecd08e6a.1670100520.git.christophe.jaillet@wanadoo.fr/
> [2]: https://lore.kernel.org/all/94c8f2123a8833b61d84a662ec35f9c070cdf4dd.1670147823.git.christophe.jaillet@wanadoo.fr/
> ---
>  include/linux/init_task.h | 1 -
>  init/init_task.c          | 1 +
>  2 files changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/init_task.h b/include/linux/init_task.h
> index 6d2c4ea4c97a..e18a6c6f6fd9 100644
> --- a/include/linux/init_task.h
> +++ b/include/linux/init_task.h
> @@ -9,7 +9,6 @@
>  #include <linux/ipc.h>
>  #include <linux/user_namespace.h>
>  #include <linux/seqlock.h>
> -#include <linux/rbtree.h>
>  #include <linux/refcount.h>
>  #include <linux/sched/autogroup.h>
>  #include <net/net_namespace.h>
> diff --git a/init/init_task.c b/init/init_task.c
> index ff6c4b9bfe6b..2392c0a67fb7 100644
> --- a/init/init_task.c
> +++ b/init/init_task.c
> @@ -2,6 +2,7 @@
>  #include <linux/init_task.h>
>  #include <linux/export.h>
>  #include <linux/mqueue.h>
> +#include <linux/rbtree.h>
>  #include <linux/sched.h>
>  #include <linux/sched/sysctl.h>
>  #include <linux/sched/rt.h>
> -- 
> 2.34.1
>
  
Joe Perches Dec. 4, 2022, 5:16 p.m. UTC | #2
On Sun, 2022-12-04 at 14:55 +0100, Marco Elver wrote:
> [+Cc Ingo, who had been working on lots of include improvements.]
> 
> The Cc list is odd -- it appears that get_maintainers.pl is broken on
> init_task.c:
> 
> 	$> ./scripts/get_maintainer.pl init/init_task.c
> 	Mark Rutland <mark.rutland@arm.com> (commit_signer:1/1=100%)
> 	"Paul E. McKenney" <paulmck@kernel.org> (commit_signer:1/1=100%)
> 	Marco Elver <elver@google.com> (commit_signer:1/1=100%,authored:1/1=100%,removed_lines:5/5=100%)
> 	linux-kernel@vger.kernel.org (open list)
> 
> What's going on here?

No one claims to be a maintainer of any init/ files
($ git grep "^F:.*init" MAINTAINERS)
so by default it merely shows the people that have patched the
particular file in the last year.

You could perhaps see this better by adding --no-git --no-gitfallback
to the get_maintainer.pl command line

$ ./scripts/get_maintainer.pl --nogit --nogit-fallback init/init_task.c
linux-kernel@vger.kernel.org (open list)

see the --help option for details

$ ./scripts/get_maintainer.pl --help
usage: ./scripts/get_maintainer.pl [options] patchfile
       ./scripts/get_maintainer.pl [options] -f file|directory
version: 0.26

MAINTAINER field selection options:
  --email => print email address(es) if any
    --git => include recent git *-by: signers
    --git-all-signature-types => include signers regardless of signature type
        or use only (Signed-off-by:|Reviewed-by:|Acked-by:) signers (default: 0)
    --git-fallback => use git when no exact MAINTAINERS pattern (default: 1)
    --git-chief-penguins => include (Linus Torvalds)
    --git-min-signatures => number of signatures required (default: 1)
    --git-max-maintainers => maximum maintainers to add (default: 5)
    --git-min-percent => minimum percentage of commits required (default: 5)
    --git-blame => use git blame to find modified commits for patch or file
    --git-blame-signatures => when used with --git-blame, also include all commit signers
    --git-since => git history to use (default: 1-year-ago)
    --hg-since => hg history to use (default: -365)
    --interactive => display a menu (mostly useful if used with the --git option)
    --m => include maintainer(s) if any
    --r => include reviewer(s) if any
    --n => include name 'Full Name <addr@domain.tld>'
    --l => include list(s) if any
    --moderated => include moderated lists(s) if any (default: true)
    --s => include subscriber only list(s) if any (default: false)
    --remove-duplicates => minimize duplicate email names/addresses
    --roles => show roles (status:subsystem, git-signer, list, etc...)
    --rolestats => show roles and statistics (commits/total_commits, %)
    --file-emails => add email addresses found in -f file (default: 0 (off))
    --fixes => for patches, add signatures of commits with 'Fixes: <commit>' (default: 1 (on))
  --scm => print SCM tree(s) if any
  --status => print status if any
  --subsystem => print subsystem name if any
  --web => print website(s) if any

Output type options:
  --separator [, ] => separator for multiple entries on 1 line
    using --separator also sets --nomultiline if --separator is not [, ]
  --multiline => print 1 entry per line

Other options:
  --pattern-depth => Number of pattern directory traversals (default: 0 (all))
  --keywords => scan patch for keywords (default: 1)
  --sections => print all of the subsystem sections with pattern matches
  --letters => print all matching 'letter' types from all matching sections
  --mailmap => use .mailmap file (default: 1)
  --no-tree => run without a kernel tree
  --self-test => show potential issues with MAINTAINERS file content
  --version => show version
  --help => show this help information

Default options:
  [--email --tree --nogit --git-fallback --m --r --n --l --multiline
   --pattern-depth=0 --remove-duplicates --rolestats]

Notes:
  Using "-f directory" may give unexpected results:
      Used with "--git", git signators for _all_ files in and below
          directory are examined as git recurses directories.
          Any specified X: (exclude) pattern matches are _not_ ignored.
      Used with "--nogit", directory is used as a pattern match,
          no individual file within the directory or subdirectory
          is matched.
      Used with "--git-blame", does not iterate all files in directory
  Using "--git-blame" is slow and may add old committers and authors
      that are no longer active maintainers to the output.
  Using "--roles" or "--rolestats" with git send-email --cc-cmd or any
      other automated tools that expect only ["name"] <email address>
      may not work because of additional output after <email address>.
  Using "--rolestats" and "--git-blame" shows the #/total=% commits,
      not the percentage of the entire file authored.  # of commits is
      not a good measure of amount of code authored.  1 major commit may
      contain a thousand lines, 5 trivial commits may modify a single line.
  If git is not installed, but mercurial (hg) is installed and an .hg
      repository exists, the following options apply to mercurial:
          --git,
          --git-min-signatures, --git-max-maintainers, --git-min-percent, and
          --git-blame
      Use --hg-since not --git-since to control date selection
  File ".get_maintainer.conf", if it exists in the linux kernel source root
      directory, can change whatever get_maintainer defaults are desired.
      Entries in this file can be any command line argument.
      This file is prepended to any additional command line arguments.
      Multiple lines and # comments are allowed.
  Most options have both positive and negative forms.
      The negative forms for --<foo> are --no<foo> and --no-<foo>.
  

Patch

diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index 6d2c4ea4c97a..e18a6c6f6fd9 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -9,7 +9,6 @@ 
 #include <linux/ipc.h>
 #include <linux/user_namespace.h>
 #include <linux/seqlock.h>
-#include <linux/rbtree.h>
 #include <linux/refcount.h>
 #include <linux/sched/autogroup.h>
 #include <net/net_namespace.h>
diff --git a/init/init_task.c b/init/init_task.c
index ff6c4b9bfe6b..2392c0a67fb7 100644
--- a/init/init_task.c
+++ b/init/init_task.c
@@ -2,6 +2,7 @@ 
 #include <linux/init_task.h>
 #include <linux/export.h>
 #include <linux/mqueue.h>
+#include <linux/rbtree.h>
 #include <linux/sched.h>
 #include <linux/sched/sysctl.h>
 #include <linux/sched/rt.h>