Re: [PATCH] Serial driver size reducing (2.3.29)

Keith Owens (kaos@ocs.com.au)
Sat, 11 Dec 1999 15:47:52 +1100


On Fri, 10 Dec 1999 23:31:09 -0500,
Jeff Garzik <jgarzik@mandrakesoft.com> wrote:
>But assumptions won't change. Consider your example, 8390.o.
>ethdev_init cannot be marked __init because it is an API function and
>might be needed by external modules. That fact has absolutely no
>relationship to whether or not 8390.o is compiled as a module.

We are in violent agreement. Initialization functions that might be
need by external modules must *not* be marked __init. But you seem to
assume that all __init definitions are correct where I am not so sure.

The problem is that if some function is incorrectly marked as __init
then it does not cause a problem at the moment because modules ignore
__init. When __init in a module is honoured, incorrect code that is
currently getting away with it will start breaking.

IMHO this is a good thing(TM). Bugs should be found and stamped on.
But I'm not going to make a kernel change with that potential impact at
this stage in the 2.3 cycle unless the major kernel developers agree
that this is desirable.

So Linus, Alan, David et al. Do you want module support for __init
given that any incorrect existing __init code will break? My gut
feeling is that it will take 3-5 kernel releases before all the broken
code is found. OTOH we might get lucky and find that all the __init
definitions are perfect.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/