2007-08-24 09:29:31

by Robert P. J. Day

[permalink] [raw]
Subject: what is the value of the macro "__setup_param"?


perhaps i'm missing it, but it seems that the macro __setup_param is
entirely superfluous:

$ grep -rw __setup_param *
include/linux/init.h:#define __setup_param(str, unique_id, fn, early) \
include/linux/init.h: __setup_param(str, unique_id, NULL, 0)
include/linux/init.h: __setup_param(str, fn, fn, 0)
include/linux/init.h: __setup_param(str, fn, fn, 1)
include/linux/init.h:#define __setup_param(str, unique_id, fn) /* nothing */
$

or am i must misreading something badly?

rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================


2007-08-24 09:38:59

by Adrian Bunk

[permalink] [raw]
Subject: Re: what is the value of the macro "__setup_param"?

On Fri, Aug 24, 2007 at 05:19:29AM -0400, Robert P. J. Day wrote:
>
> perhaps i'm missing it, but it seems that the macro __setup_param is
> entirely superfluous:
>
> $ grep -rw __setup_param *
> include/linux/init.h:#define __setup_param(str, unique_id, fn, early) \
> include/linux/init.h: __setup_param(str, unique_id, NULL, 0)
> include/linux/init.h: __setup_param(str, fn, fn, 0)
> include/linux/init.h: __setup_param(str, fn, fn, 1)
> include/linux/init.h:#define __setup_param(str, unique_id, fn) /* nothing */
> $
>
> or am i must misreading something badly?

You miss that the inner 3 lines of your grep result are the usages...

> rday

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2007-08-24 09:42:17

by Robert P. J. Day

[permalink] [raw]
Subject: Re: what is the value of the macro "__setup_param"?

On Fri, 24 Aug 2007, Adrian Bunk wrote:

> On Fri, Aug 24, 2007 at 05:19:29AM -0400, Robert P. J. Day wrote:
> >
> > perhaps i'm missing it, but it seems that the macro __setup_param is
> > entirely superfluous:
> >
> > $ grep -rw __setup_param *
> > include/linux/init.h:#define __setup_param(str, unique_id, fn, early) \
> > include/linux/init.h: __setup_param(str, unique_id, NULL, 0)
> > include/linux/init.h: __setup_param(str, fn, fn, 0)
> > include/linux/init.h: __setup_param(str, fn, fn, 1)
> > include/linux/init.h:#define __setup_param(str, unique_id, fn) /* nothing */
> > $
> >
> > or am i must misreading something badly?
>
> You miss that the inner 3 lines of your grep result are the usages...

i need more sleep.

rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================

2007-08-24 09:52:31

by Paul Mundt

[permalink] [raw]
Subject: Re: what is the value of the macro "__setup_param"?

On Fri, Aug 24, 2007 at 05:19:29AM -0400, Robert P. J. Day wrote:
>
> perhaps i'm missing it, but it seems that the macro __setup_param is
> entirely superfluous:
>
> $ grep -rw __setup_param *
> include/linux/init.h:#define __setup_param(str, unique_id, fn, early) \
> include/linux/init.h: __setup_param(str, unique_id, NULL, 0)
> include/linux/init.h: __setup_param(str, fn, fn, 0)
> include/linux/init.h: __setup_param(str, fn, fn, 1)
> include/linux/init.h:#define __setup_param(str, unique_id, fn) /* nothing */
> $
>
> or am i must misreading something badly?
>
Superfluous how? It does different things depending on whether MODULE is
defined or not. It's a good indicator of how often people use
__setup_param() from module context though, given the complete mismatch
of parameters. It's probably worth fixing that up at least.

2007-08-24 09:59:21

by Robert P. J. Day

[permalink] [raw]
Subject: Re: what is the value of the macro "__setup_param"?

On Fri, 24 Aug 2007, Paul Mundt wrote:

> On Fri, Aug 24, 2007 at 05:19:29AM -0400, Robert P. J. Day wrote:
> >
> > perhaps i'm missing it, but it seems that the macro __setup_param is
> > entirely superfluous:
> >
> > $ grep -rw __setup_param *
> > include/linux/init.h:#define __setup_param(str, unique_id, fn, early) \
> > include/linux/init.h: __setup_param(str, unique_id, NULL, 0)
> > include/linux/init.h: __setup_param(str, fn, fn, 0)
> > include/linux/init.h: __setup_param(str, fn, fn, 1)
> > include/linux/init.h:#define __setup_param(str, unique_id, fn) /* nothing */
> > $
> >
> > or am i must misreading something badly?

> Superfluous how? It does different things depending on whether
> MODULE is defined or not. It's a good indicator of how often people
> use __setup_param() from module context though, given the complete
> mismatch of parameters. It's probably worth fixing that up at least.

never mind, i've already clued in. up too long, and trying to do too
many things at once. more sleep or more coffee -- time to make a
decision. sorry for the noise.

rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================

2007-08-24 10:03:49

by Paul Mundt

[permalink] [raw]
Subject: Re: what is the value of the macro "__setup_param"?

On Fri, Aug 24, 2007 at 05:49:42AM -0400, Robert P. J. Day wrote:
> On Fri, 24 Aug 2007, Paul Mundt wrote:
>
> > On Fri, Aug 24, 2007 at 05:19:29AM -0400, Robert P. J. Day wrote:
> > >
> > > perhaps i'm missing it, but it seems that the macro __setup_param is
> > > entirely superfluous:
> > >
> > > $ grep -rw __setup_param *
> > > include/linux/init.h:#define __setup_param(str, unique_id, fn, early) \
> > > include/linux/init.h: __setup_param(str, unique_id, NULL, 0)
> > > include/linux/init.h: __setup_param(str, fn, fn, 0)
> > > include/linux/init.h: __setup_param(str, fn, fn, 1)
> > > include/linux/init.h:#define __setup_param(str, unique_id, fn) /* nothing */
> > > $
> > >
> > > or am i must misreading something badly?
>
> > Superfluous how? It does different things depending on whether
> > MODULE is defined or not. It's a good indicator of how often people
> > use __setup_param() from module context though, given the complete
> > mismatch of parameters. It's probably worth fixing that up at least.
>
> never mind, i've already clued in. up too long, and trying to do too
> many things at once. more sleep or more coffee -- time to make a
> decision. sorry for the noise.
>
That's great, but you've ignored the second part of my mail. I'll
summarize:

> > > include/linux/init.h:#define __setup_param(str, unique_id, fn, early) \
> > > include/linux/init.h:#define __setup_param(str, unique_id, fn) /* nothing */

Notice the problem now? :-)

2007-08-24 10:11:36

by Robert P. J. Day

[permalink] [raw]
Subject: Re: what is the value of the macro "__setup_param"?

On Fri, 24 Aug 2007, Paul Mundt wrote:

> On Fri, Aug 24, 2007 at 05:49:42AM -0400, Robert P. J. Day wrote:
> > On Fri, 24 Aug 2007, Paul Mundt wrote:
> >
> > > On Fri, Aug 24, 2007 at 05:19:29AM -0400, Robert P. J. Day wrote:
> > > >
> > > > perhaps i'm missing it, but it seems that the macro __setup_param is
> > > > entirely superfluous:
> > > >
> > > > $ grep -rw __setup_param *
> > > > include/linux/init.h:#define __setup_param(str, unique_id, fn, early) \
> > > > include/linux/init.h: __setup_param(str, unique_id, NULL, 0)
> > > > include/linux/init.h: __setup_param(str, fn, fn, 0)
> > > > include/linux/init.h: __setup_param(str, fn, fn, 1)
> > > > include/linux/init.h:#define __setup_param(str, unique_id, fn) /* nothing */
> > > > $
> > > >
> > > > or am i must misreading something badly?
> >
> > > Superfluous how? It does different things depending on whether
> > > MODULE is defined or not. It's a good indicator of how often people
> > > use __setup_param() from module context though, given the complete
> > > mismatch of parameters. It's probably worth fixing that up at least.
> >
> > never mind, i've already clued in. up too long, and trying to do too
> > many things at once. more sleep or more coffee -- time to make a
> > decision. sorry for the noise.
> >
> That's great, but you've ignored the second part of my mail. I'll
> summarize:
>
> > > > include/linux/init.h:#define __setup_param(str, unique_id, fn, early) \
> > > > include/linux/init.h:#define __setup_param(str, unique_id, fn) /* nothing */
>
> Notice the problem now? :-)

oh, certainly. i'm just thinking that, in my condition, i shouldn't
be allowed to submit patches or operate heavy machinery at the moment.
:-)

rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================

2007-08-24 11:16:32

by Satyam Sharma

[permalink] [raw]
Subject: Re: what is the value of the macro "__setup_param"?



On Fri, 24 Aug 2007, Paul Mundt wrote:
>
> > > > include/linux/init.h:#define __setup_param(str, unique_id, fn, early) \
> > > > include/linux/init.h:#define __setup_param(str, unique_id, fn) /* nothing */
>
> Notice the problem now? :-)

We should probably keep it that way. I don't see why anybody should be
using __setup_param directly anyway, so this becomes a nice build-time
error to flag such errant usage :-)

Seriously speaking, though, we should probably just get rid of that
wrong line. It's just an init.h-internal macro to be used by early_param
and __setup, and because those are themselves empty when MODULE, there's
no issues in removing the (unused, broken) __setup_param either.