diff mbox series

proc: Make the proc_create[_data]() stubs static inlines

Message ID 20211116131112.508304-1-hdegoede@redhat.com (mailing list archive)
State New, archived
Headers show
Series proc: Make the proc_create[_data]() stubs static inlines | expand

Commit Message

Hans de Goede Nov. 16, 2021, 1:11 p.m. UTC
Change the proc_create[_data]() stubs which are used when CONFIG_PROC_FS
is not set from #defines to a static inline stubs.

Thix should fix clang -Werror builds failing due to errors like this:

drivers/platform/x86/thinkpad_acpi.c:918:30: error: unused variable
 'dispatch_proc_ops' [-Werror,-Wunused-const-variable]

Fixing this in include/linux/proc_fs.h should ensure that the same issue
is also fixed in any other drivers hitting the same -Werror issue.

Cc: platform-driver-x86@vger.kernel.org
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Note the commit message says "should fix" because I could not actually
be bothered to verify this. The whole notion of combining:
1. clang
2. -Werror
3. -Wunused-const-variable
Is frankly a bit crazy, causing way too much noise and has already
cost me too much time IMHO.
---
 include/linux/proc_fs.h | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

Comments

Christian Brauner Nov. 19, 2021, 1:48 p.m. UTC | #1
On Tue, Nov 16, 2021 at 02:11:12PM +0100, Hans de Goede wrote:
> Change the proc_create[_data]() stubs which are used when CONFIG_PROC_FS
> is not set from #defines to a static inline stubs.
> 
> Thix should fix clang -Werror builds failing due to errors like this:
> 
> drivers/platform/x86/thinkpad_acpi.c:918:30: error: unused variable
>  'dispatch_proc_ops' [-Werror,-Wunused-const-variable]
> 
> Fixing this in include/linux/proc_fs.h should ensure that the same issue
> is also fixed in any other drivers hitting the same -Werror issue.
> 
> Cc: platform-driver-x86@vger.kernel.org
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---

Hmkay, seems ok if this is required to please clang with -Werror.
Also using statement expressions to implement these nop helpers for
!CONFIG_PROC_FS seems a bit strange to me in the first place. Especially
since they seem to be sprinkled in alongside other static inline nops.

Acked-by: Christian Brauner <christian.brauner@ubuntu.com>

> Note the commit message says "should fix" because I could not actually
> be bothered to verify this. The whole notion of combining:
> 1. clang
> 2. -Werror
> 3. -Wunused-const-variable
> Is frankly a bit crazy, causing way too much noise and has already
> cost me too much time IMHO.
> ---
>  include/linux/proc_fs.h | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
> index 069c7fd95396..3d19453fb6b3 100644
> --- a/include/linux/proc_fs.h
> +++ b/include/linux/proc_fs.h
> @@ -178,8 +178,14 @@ static inline struct proc_dir_entry *proc_mkdir_mode(const char *name,
>  #define proc_create_seq(name, mode, parent, ops) ({NULL;})
>  #define proc_create_single(name, mode, parent, show) ({NULL;})
>  #define proc_create_single_data(name, mode, parent, show, data) ({NULL;})
> -#define proc_create(name, mode, parent, proc_ops) ({NULL;})
> -#define proc_create_data(name, mode, parent, proc_ops, data) ({NULL;})
> +
> +static inline struct proc_dir_entry *proc_create(
> +	const char *, umode_t, struct proc_dir_entry *, const struct proc_ops *)
> +{ return NULL; }
> +
> +static inline struct proc_dir_entry *proc_create_data(
> +	const char *, umode_t, struct proc_dir_entry *, const struct proc_ops *, void *)
> +{ return NULL; }
>  
>  static inline void proc_set_size(struct proc_dir_entry *de, loff_t size) {}
>  static inline void proc_set_user(struct proc_dir_entry *de, kuid_t uid, kgid_t gid) {}
> -- 
> 2.31.1
>
diff mbox series

Patch

diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index 069c7fd95396..3d19453fb6b3 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -178,8 +178,14 @@  static inline struct proc_dir_entry *proc_mkdir_mode(const char *name,
 #define proc_create_seq(name, mode, parent, ops) ({NULL;})
 #define proc_create_single(name, mode, parent, show) ({NULL;})
 #define proc_create_single_data(name, mode, parent, show, data) ({NULL;})
-#define proc_create(name, mode, parent, proc_ops) ({NULL;})
-#define proc_create_data(name, mode, parent, proc_ops, data) ({NULL;})
+
+static inline struct proc_dir_entry *proc_create(
+	const char *, umode_t, struct proc_dir_entry *, const struct proc_ops *)
+{ return NULL; }
+
+static inline struct proc_dir_entry *proc_create_data(
+	const char *, umode_t, struct proc_dir_entry *, const struct proc_ops *, void *)
+{ return NULL; }
 
 static inline void proc_set_size(struct proc_dir_entry *de, loff_t size) {}
 static inline void proc_set_user(struct proc_dir_entry *de, kuid_t uid, kgid_t gid) {}