linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] appletalk: Fix compile regression
@ 2019-03-05 13:24 Arnd Bergmann
  2019-03-05 21:00 ` David Miller
  2019-03-06  2:24 ` YueHaibing
  0 siblings, 2 replies; 3+ messages in thread
From: Arnd Bergmann @ 2019-03-05 13:24 UTC (permalink / raw)
  To: YueHaibing, David S. Miller; +Cc: Arnd Bergmann, linux-kernel

A bugfix just broke compilation of appletalk when CONFIG_SYSCTL
is disabled:

In file included from net/appletalk/ddp.c:65:
net/appletalk/ddp.c: In function 'atalk_init':
include/linux/atalk.h:164:34: error: expected expression before 'do'
 #define atalk_register_sysctl()  do { } while(0)
                                  ^~
net/appletalk/ddp.c:1934:7: note: in expansion of macro 'atalk_register_sysctl'
  rc = atalk_register_sysctl();

This is easier to avoid by using conventional inline functions
as stubs rather than macros. The header already has inline
functions for other purposes, so I'm changing over all the
macros for consistency.

Fixes: 6377f787aeb9 ("appletalk: Fix use-after-free in atalk_proc_exit")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 include/linux/atalk.h | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/include/linux/atalk.h b/include/linux/atalk.h
index 5a90f28d5ff2..d5cfc0b15b76 100644
--- a/include/linux/atalk.h
+++ b/include/linux/atalk.h
@@ -161,16 +161,26 @@ extern int sysctl_aarp_resolve_time;
 extern int atalk_register_sysctl(void);
 extern void atalk_unregister_sysctl(void);
 #else
-#define atalk_register_sysctl()		do { } while(0)
-#define atalk_unregister_sysctl()	do { } while(0)
+static inline int atalk_register_sysctl(void)
+{
+	return 0;
+}
+static inline void atalk_unregister_sysctl(void)
+{
+}
 #endif
 
 #ifdef CONFIG_PROC_FS
 extern int atalk_proc_init(void);
 extern void atalk_proc_exit(void);
 #else
-#define atalk_proc_init()	({ 0; })
-#define atalk_proc_exit()	do { } while(0)
+static inline int atalk_proc_init(void)
+{
+	return 0;
+}
+static inline void atalk_proc_exit(void)
+{
+}
 #endif /* CONFIG_PROC_FS */
 
 #endif /* __LINUX_ATALK_H__ */
-- 
2.20.0


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

* Re: [PATCH] appletalk: Fix compile regression
  2019-03-05 13:24 [PATCH] appletalk: Fix compile regression Arnd Bergmann
@ 2019-03-05 21:00 ` David Miller
  2019-03-06  2:24 ` YueHaibing
  1 sibling, 0 replies; 3+ messages in thread
From: David Miller @ 2019-03-05 21:00 UTC (permalink / raw)
  To: arnd; +Cc: yuehaibing, linux-kernel


Please repost this with netdev@vger.kernel.org CC:'d, so it gets logged in
patchwork.

Thank you Arnd.

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

* Re: [PATCH] appletalk: Fix compile regression
  2019-03-05 13:24 [PATCH] appletalk: Fix compile regression Arnd Bergmann
  2019-03-05 21:00 ` David Miller
@ 2019-03-06  2:24 ` YueHaibing
  1 sibling, 0 replies; 3+ messages in thread
From: YueHaibing @ 2019-03-06  2:24 UTC (permalink / raw)
  To: Arnd Bergmann, David S. Miller; +Cc: linux-kernel


On 2019/3/5 21:24, Arnd Bergmann wrote:
> A bugfix just broke compilation of appletalk when CONFIG_SYSCTL
> is disabled:
> 
> In file included from net/appletalk/ddp.c:65:
> net/appletalk/ddp.c: In function 'atalk_init':
> include/linux/atalk.h:164:34: error: expected expression before 'do'
>  #define atalk_register_sysctl()  do { } while(0)
>                                   ^~
> net/appletalk/ddp.c:1934:7: note: in expansion of macro 'atalk_register_sysctl'
>   rc = atalk_register_sysctl();
> 
> This is easier to avoid by using conventional inline functions
> as stubs rather than macros. The header already has inline
> functions for other purposes, so I'm changing over all the
> macros for consistency.
> 

Thank you for fix this


> Fixes: 6377f787aeb9 ("appletalk: Fix use-after-free in atalk_proc_exit")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  include/linux/atalk.h | 18 ++++++++++++++----
>  1 file changed, 14 insertions(+), 4 deletions(-)
> 
> diff --git a/include/linux/atalk.h b/include/linux/atalk.h
> index 5a90f28d5ff2..d5cfc0b15b76 100644
> --- a/include/linux/atalk.h
> +++ b/include/linux/atalk.h
> @@ -161,16 +161,26 @@ extern int sysctl_aarp_resolve_time;
>  extern int atalk_register_sysctl(void);
>  extern void atalk_unregister_sysctl(void);
>  #else
> -#define atalk_register_sysctl()		do { } while(0)
> -#define atalk_unregister_sysctl()	do { } while(0)
> +static inline int atalk_register_sysctl(void)
> +{
> +	return 0;
> +}
> +static inline void atalk_unregister_sysctl(void)
> +{
> +}
>  #endif
>  
>  #ifdef CONFIG_PROC_FS
>  extern int atalk_proc_init(void);
>  extern void atalk_proc_exit(void);
>  #else
> -#define atalk_proc_init()	({ 0; })
> -#define atalk_proc_exit()	do { } while(0)
> +static inline int atalk_proc_init(void)
> +{
> +	return 0;
> +}
> +static inline void atalk_proc_exit(void)
> +{
> +}
>  #endif /* CONFIG_PROC_FS */
>  
>  #endif /* __LINUX_ATALK_H__ */
> 


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

end of thread, other threads:[~2019-03-06  2:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-05 13:24 [PATCH] appletalk: Fix compile regression Arnd Bergmann
2019-03-05 21:00 ` David Miller
2019-03-06  2:24 ` YueHaibing

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).