Re: [PATCH] Make `obsolete params' work correctly if MODULE_SYMBOL_PREFIX is non-empty

Rusty Russell
2003-01-11T22:22:13Z

In message <Pine.LNX.4.44.0301102134150.9532-100000@home.transmeta.com> you wri
te:
>
> On Sat, 11 Jan 2003, Rusty Russell wrote:
> >
> > Just in case someone names a variable over 2000 chars, and uses it as
> > an old-style module parameter?
>
> No. Just because variable-sized arrays aren't C, and generate crappy code.
>
> > for (i = 0; i < num; i++) {
> > + char sym_name[strlen(obsparm[i].name)
> > + + sizeof(MODULE_SYMBOL_PREFIX)];
>
> It's still there.

OK, *please* explain to me in little words so I can understand.

Variable-sized arrays are C, as of C99. They've been a GNU extension
forever.

While gcc 2.95.4 generates fairly horrible code, gcc 3.0 does better
(the two compilers I have on my laptop).

Both generate correct code.

Speed is certainly of absolutely no importance here.

Changing it to do a kmalloc every time around the loop is complex,
inefficient, unneccessary, and introduces another failure path.

In summary, I can't see any reason why the clearest, simplest code
should be avoided.

Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.