[$] Kernel symbol namespacing

In order to actually do anything, a kernel module must gain access to
functions and data structures in the rest of the kernel. Enabling and
controlling that access is the job of the symbol-export mechanism. While
the enabling certainly happens, the control part is not quite so clear;
many developers view the nearly 30,000 symbols in current kernels that are
available to all modules as being far too many. The symbol
namespaces patch set
from Martijn Coenen doesn’t reduce that number,
but it does provide a mechanism that might help to impose some order on
exported symbols in general.

Source: LWN