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(-)
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>
> 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.
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
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
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
© 2016 - 2026 Red Hat, Inc.