mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] smp: fix __smp_processor_id() backup macro
@ 2023-10-14 16:14 Alexey Dobriyan
  2023-10-14 22:12 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Alexey Dobriyan @ 2023-10-14 16:14 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel

Every __smp_processor_id usage doesn't have arguments and
every raw_smp_processor_id usage doesn't have arguments,
therefore "#define __smp_processor_id(x)" can not possibly work.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---

 include/linux/smp.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -261,7 +261,7 @@ static inline int get_boot_cpu_id(void)
  * regular asm read for the stable.
  */
 #ifndef __smp_processor_id
-#define __smp_processor_id(x) raw_smp_processor_id(x)
+#define __smp_processor_id() raw_smp_processor_id()
 #endif
 
 #ifdef CONFIG_DEBUG_PREEMPT

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

* Re: [PATCH] smp: fix __smp_processor_id() backup macro
  2023-10-14 16:14 [PATCH] smp: fix __smp_processor_id() backup macro Alexey Dobriyan
@ 2023-10-14 22:12 ` Andrew Morton
  2023-10-15  9:55   ` Alexey Dobriyan
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2023-10-14 22:12 UTC (permalink / raw)
  To: Alexey Dobriyan; +Cc: linux-kernel, Peter Zijlstra

On Sat, 14 Oct 2023 19:14:15 +0300 Alexey Dobriyan <adobriyan@gmail.com> wrote:

> Every __smp_processor_id usage doesn't have arguments and
> every raw_smp_processor_id usage doesn't have arguments,
> therefore "#define __smp_processor_id(x)" can not possibly work.
> 
> ...
>
> --- a/include/linux/smp.h
> +++ b/include/linux/smp.h
> @@ -261,7 +261,7 @@ static inline int get_boot_cpu_id(void)
>   * regular asm read for the stable.
>   */
>  #ifndef __smp_processor_id
> -#define __smp_processor_id(x) raw_smp_processor_id(x)
> +#define __smp_processor_id() raw_smp_processor_id()
>  #endif
>  

It's been that way for at least 4 years.  Presumably this is never used
and should be removed?

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

* Re: [PATCH] smp: fix __smp_processor_id() backup macro
  2023-10-14 22:12 ` Andrew Morton
@ 2023-10-15  9:55   ` Alexey Dobriyan
  0 siblings, 0 replies; 3+ messages in thread
From: Alexey Dobriyan @ 2023-10-15  9:55 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Peter Zijlstra

On Sat, Oct 14, 2023 at 03:12:21PM -0700, Andrew Morton wrote:
> On Sat, 14 Oct 2023 19:14:15 +0300 Alexey Dobriyan <adobriyan@gmail.com> wrote:
> 
> > Every __smp_processor_id usage doesn't have arguments and
> > every raw_smp_processor_id usage doesn't have arguments,
> > therefore "#define __smp_processor_id(x)" can not possibly work.
> > 
> > ...
> >
> > --- a/include/linux/smp.h
> > +++ b/include/linux/smp.h
> > @@ -261,7 +261,7 @@ static inline int get_boot_cpu_id(void)
> >   * regular asm read for the stable.
> >   */
> >  #ifndef __smp_processor_id
> > -#define __smp_processor_id(x) raw_smp_processor_id(x)
> > +#define __smp_processor_id() raw_smp_processor_id()
> >  #endif
> >  
> 
> It's been that way for at least 4 years.  Presumably this is never used
> and should be removed?

Deleting breaks compilation immediately.

C89 6.8.3 §4 says

	"The number of arguments in an invocation of a function-like
	macro shall agree with the number of parameters in the macro
	definition, ..."

C99 relaxes this in 6.10.3 §4

	the number of arguments (including those arguments
	consisting of no preprocesing tokens) ... shall equal
	the number of parameters in the macro definition.

So, "#define M()" works with M() only, but "#define M(a)" worked with
M(1) and started working as M() which is very funny.

In other words changelog is wrong: it can and does work (sort of by
accident).

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

end of thread, other threads:[~2023-10-15  9:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-14 16:14 [PATCH] smp: fix __smp_processor_id() backup macro Alexey Dobriyan
2023-10-14 22:12 ` Andrew Morton
2023-10-15  9:55   ` Alexey Dobriyan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®