[PATCH] sysctl: Remove unused ctl_table forward declarations

Joel Granados posted 1 patch 1 month, 3 weeks ago
There is a newer version of this series
include/linux/fs.h      | 1 -
include/linux/hugetlb.h | 2 --
include/linux/printk.h  | 1 -
include/net/ax25.h      | 2 --
4 files changed, 6 deletions(-)
[PATCH] sysctl: Remove unused ctl_table forward declarations
Posted by Joel Granados 1 month, 3 weeks ago
Remove superfluous forward declarations of ctl_table from header files
where they are no longer needed. These declarations were left behind
after sysctl code refactoring and cleanup.

Signed-off-by: Joel Granados <joel.granados@kernel.org>
---
Apologies for such a big To: list. My idea is for this to go into
mainline through sysctl; get back to me if you prefer otherwise. On the
off chance that this has a V2, let me know if you want to be removed
from the To and I'll make that happen
---
 include/linux/fs.h      | 1 -
 include/linux/hugetlb.h | 2 --
 include/linux/printk.h  | 1 -
 include/net/ax25.h      | 2 --
 4 files changed, 6 deletions(-)

diff --git a/include/linux/fs.h b/include/linux/fs.h
index 04ceeca12a0d5caadb68643bf68b7a78e17c08d4..77f6302fdced1ef7e61ec1b35bed77c77b294124 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -3487,7 +3487,6 @@ ssize_t simple_attr_write(struct file *file, const char __user *buf,
 ssize_t simple_attr_write_signed(struct file *file, const char __user *buf,
 				 size_t len, loff_t *ppos);
 
-struct ctl_table;
 int __init list_bdev_fs_names(char *buf, size_t size);
 
 #define __FMODE_EXEC		((__force int) FMODE_EXEC)
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
index 019a1c5281e4e6e04a9207dff7f7aa58c9669a80..18d1c4ecc4f948b179679b8fcc7870f3d466a4d9 100644
--- a/include/linux/hugetlb.h
+++ b/include/linux/hugetlb.h
@@ -16,8 +16,6 @@
 #include <linux/userfaultfd_k.h>
 #include <linux/nodemask.h>
 
-struct ctl_table;
-struct user_struct;
 struct mmu_gather;
 struct node;
 
diff --git a/include/linux/printk.h b/include/linux/printk.h
index 45c663124c9bd3b294031d839f1253f410313faa..63d516c873b4c412eead6ee4eb9f90a5c28f630c 100644
--- a/include/linux/printk.h
+++ b/include/linux/printk.h
@@ -78,7 +78,6 @@ extern void console_verbose(void);
 /* strlen("ratelimit") + 1 */
 #define DEVKMSG_STR_MAX_SIZE 10
 extern char devkmsg_log_str[DEVKMSG_STR_MAX_SIZE];
-struct ctl_table;
 
 extern int suppress_printk;
 
diff --git a/include/net/ax25.h b/include/net/ax25.h
index a7bba42dde153a2aeaf010a7ef8b48d39d15a835..beec9712e9c71d4be90acb6fc7113022527bc1ab 100644
--- a/include/net/ax25.h
+++ b/include/net/ax25.h
@@ -215,8 +215,6 @@ typedef struct {
 	unsigned short		slave_timeout;		/* when? */
 } ax25_dama_info;
 
-struct ctl_table;
-
 typedef struct ax25_dev {
 	struct list_head	list;
 

---
base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
change-id: 20251215-jag-sysctl_fw_decl-58c718715c8c

Best regards,
-- 
Joel Granados <joel.granados@kernel.org>
Re: [PATCH] sysctl: Remove unused ctl_table forward declarations
Posted by Muchun Song 1 month, 3 weeks ago

> On Dec 15, 2025, at 23:25, Joel Granados <joel.granados@kernel.org> wrote:
> 
> Remove superfluous forward declarations of ctl_table from header files
> where they are no longer needed. These declarations were left behind
> after sysctl code refactoring and cleanup.
> 
> Signed-off-by: Joel Granados <joel.granados@kernel.org>

Acked-by: Muchun Song <muchun.song@linux.dev>

For HugeTLB.

Thanks.
Re: [PATCH] sysctl: Remove unused ctl_table forward declarations
Posted by Petr Mladek 1 month, 3 weeks ago
On Mon 2025-12-15 16:25:19, Joel Granados wrote:
> Remove superfluous forward declarations of ctl_table from header files
> where they are no longer needed. These declarations were left behind
> after sysctl code refactoring and cleanup.
> 
> Signed-off-by: Joel Granados <joel.granados@kernel.org>

For the printk part:

Reviewed-by: Petr Mladek <pmladek@suse.com>

That said, I have found one more declaration in kernel/printk/internal.h.
It is there because of devkmsg_sysctl_set_loglvl() declaration.
But I think that a better solution would be:

diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h
index dff97321741a..27169fd33231 100644
--- a/kernel/printk/internal.h
+++ b/kernel/printk/internal.h
@@ -4,9 +4,9 @@
  */
 #include <linux/console.h>
 #include <linux/types.h>
+#include <linux/sysctl.h>
 
 #if defined(CONFIG_PRINTK) && defined(CONFIG_SYSCTL)
-struct ctl_table;
 void __init printk_sysctl_init(void);
 int devkmsg_sysctl_set_loglvl(const struct ctl_table *table, int write,
 			      void *buffer, size_t *lenp, loff_t *ppos);
diff --git a/kernel/printk/sysctl.c b/kernel/printk/sysctl.c
index bb8fecb3fb05..512f0c692d6a 100644
--- a/kernel/printk/sysctl.c
+++ b/kernel/printk/sysctl.c
@@ -3,7 +3,6 @@
  * sysctl.c: General linux system control interface
  */
 
-#include <linux/sysctl.h>
 #include <linux/printk.h>
 #include <linux/capability.h>
 #include <linux/ratelimit.h>

Feel free to add this into v2. Or we could do this in a separate patch.

Best Regards,
Petr
Re: [PATCH] sysctl: Remove unused ctl_table forward declarations
Posted by Joel Granados 1 month, 3 weeks ago
On Tue, Dec 16, 2025 at 01:44:17PM +0100, Petr Mladek wrote:
> On Mon 2025-12-15 16:25:19, Joel Granados wrote:
> > Remove superfluous forward declarations of ctl_table from header files
> > where they are no longer needed. These declarations were left behind
> > after sysctl code refactoring and cleanup.
> > 
> > Signed-off-by: Joel Granados <joel.granados@kernel.org>
> 
> For the printk part:
> 
> Reviewed-by: Petr Mladek <pmladek@suse.com>
> 
> That said, I have found one more declaration in kernel/printk/internal.h.
> It is there because of devkmsg_sysctl_set_loglvl() declaration.
> But I think that a better solution would be:
> 
> diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h
> index dff97321741a..27169fd33231 100644
> --- a/kernel/printk/internal.h
> +++ b/kernel/printk/internal.h
> @@ -4,9 +4,9 @@
>   */
>  #include <linux/console.h>
>  #include <linux/types.h>
> +#include <linux/sysctl.h>
>  
>  #if defined(CONFIG_PRINTK) && defined(CONFIG_SYSCTL)
> -struct ctl_table;
>  void __init printk_sysctl_init(void);
>  int devkmsg_sysctl_set_loglvl(const struct ctl_table *table, int write,
>  			      void *buffer, size_t *lenp, loff_t *ppos);
> diff --git a/kernel/printk/sysctl.c b/kernel/printk/sysctl.c
> index bb8fecb3fb05..512f0c692d6a 100644
> --- a/kernel/printk/sysctl.c
> +++ b/kernel/printk/sysctl.c
> @@ -3,7 +3,6 @@
>   * sysctl.c: General linux system control interface
>   */
>  
> -#include <linux/sysctl.h>
>  #include <linux/printk.h>
>  #include <linux/capability.h>
>  #include <linux/ratelimit.h>
> 
> Feel free to add this into v2. Or we could do this in a separate patch.
> 
> Best Regards,
> Petr

Very nice, thx. 

I believe it fits inside the current commit (no need to make two).
I'll add this and send a V2. You can then add co-developed-by &
Signed-off-by if you want.

Best

-- 

Joel Granados
Re: [PATCH] sysctl: Remove unused ctl_table forward declarations
Posted by Jan Kara 1 month, 3 weeks ago
On Mon 15-12-25 16:25:19, Joel Granados wrote:
> Remove superfluous forward declarations of ctl_table from header files
> where they are no longer needed. These declarations were left behind
> after sysctl code refactoring and cleanup.
> 
> Signed-off-by: Joel Granados <joel.granados@kernel.org>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
> Apologies for such a big To: list. My idea is for this to go into
> mainline through sysctl; get back to me if you prefer otherwise. On the
> off chance that this has a V2, let me know if you want to be removed
> from the To and I'll make that happen
> ---
>  include/linux/fs.h      | 1 -
>  include/linux/hugetlb.h | 2 --
>  include/linux/printk.h  | 1 -
>  include/net/ax25.h      | 2 --
>  4 files changed, 6 deletions(-)
> 
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index 04ceeca12a0d5caadb68643bf68b7a78e17c08d4..77f6302fdced1ef7e61ec1b35bed77c77b294124 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -3487,7 +3487,6 @@ ssize_t simple_attr_write(struct file *file, const char __user *buf,
>  ssize_t simple_attr_write_signed(struct file *file, const char __user *buf,
>  				 size_t len, loff_t *ppos);
>  
> -struct ctl_table;
>  int __init list_bdev_fs_names(char *buf, size_t size);
>  
>  #define __FMODE_EXEC		((__force int) FMODE_EXEC)
> diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
> index 019a1c5281e4e6e04a9207dff7f7aa58c9669a80..18d1c4ecc4f948b179679b8fcc7870f3d466a4d9 100644
> --- a/include/linux/hugetlb.h
> +++ b/include/linux/hugetlb.h
> @@ -16,8 +16,6 @@
>  #include <linux/userfaultfd_k.h>
>  #include <linux/nodemask.h>
>  
> -struct ctl_table;
> -struct user_struct;
>  struct mmu_gather;
>  struct node;
>  
> diff --git a/include/linux/printk.h b/include/linux/printk.h
> index 45c663124c9bd3b294031d839f1253f410313faa..63d516c873b4c412eead6ee4eb9f90a5c28f630c 100644
> --- a/include/linux/printk.h
> +++ b/include/linux/printk.h
> @@ -78,7 +78,6 @@ extern void console_verbose(void);
>  /* strlen("ratelimit") + 1 */
>  #define DEVKMSG_STR_MAX_SIZE 10
>  extern char devkmsg_log_str[DEVKMSG_STR_MAX_SIZE];
> -struct ctl_table;
>  
>  extern int suppress_printk;
>  
> diff --git a/include/net/ax25.h b/include/net/ax25.h
> index a7bba42dde153a2aeaf010a7ef8b48d39d15a835..beec9712e9c71d4be90acb6fc7113022527bc1ab 100644
> --- a/include/net/ax25.h
> +++ b/include/net/ax25.h
> @@ -215,8 +215,6 @@ typedef struct {
>  	unsigned short		slave_timeout;		/* when? */
>  } ax25_dama_info;
>  
> -struct ctl_table;
> -
>  typedef struct ax25_dev {
>  	struct list_head	list;
>  
> 
> ---
> base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
> change-id: 20251215-jag-sysctl_fw_decl-58c718715c8c
> 
> Best regards,
> -- 
> Joel Granados <joel.granados@kernel.org>
> 
> 
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR