Externally defined symbols with no external references can complicate
kernel hacking. Whenever a symbol is defined as static you *know* it
is only used in the current module or via X() or some sort of ops
structure. If a global symbol is not defined as static, you have to
start hunting for any external references, often there is none.
Some of these external names leave a lot to be desired. For example,
drivers/char/wdt.c defines 'io' and 'irq' with no prefix, a bit of name
space pollution there.
For the sanity of current and future kernel hackers, it would be nice
to reduce the number of "incorrectly" defined external variables.
Defining these symbols as static will also highlight any global
variables that are declared and not used. Given the large number of
modules, I would prefer to let the various maintainers update their own
modules.
Rather than mail a 2,000 line report to everybody on this list (15K
gzipped and uuencoded), anybody who is interested in cleaning up these
definitions can fetch the report by anonymous ftp from
ftp://ftp.ocs.com.au/pub/extra_externals-2.1.16.gz
Be gentle, it is behind a 28.8K link.