Ignore my previous reply; it's incorrect. The problem is related, though, in that your "module" is being linked to something else, but actual modules are just ".o" files which aren't linked to anything. Chandrashekhar S wrote: > The toplevel makefile I am mentioning is the one which contains all the > .o files of the linux kernel. I know what the kernel's top level Makefile is. And it isn't relevant if you are trying to add your own module. What is relevant is the Makefile for the directory in which the module resides. It looks as if your code is being compiled for use as a module, but then being statically linked to the kernel (via net/network.o). Have you, by any chance, added the name of your object file to the "obj-y" definition in one of the net/* Makefiles? AFAICT, you shouldn't have. I suspect that the fact that you're including linux/modversions.h explicitly is why it doesn't like being statically linked. Only two source (".c") files in the 2.4.3 kernel source tree include this file directly, and then only if MODVERSIONS is defined. -- Glynn Clements <glynn.clements@virgin.net> - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org