Hello, I have been tasked with writing a kernel module to handle an own protocol (with an own EtherType) in the Linux kernel. While I am not a complete newbie in the Linux kernel, having to handle Ethernet traffic there is new to me. I have looked at several tutorials and also at sample code (for example http://www.phrack.org/archives/55/p55_0x0c_Building%20Into%20The%20Linux%20Network%20Layer_by_lifeline%20&%20kossak.txt, and some tutorials I cannot find at the moment...) and tried to cut it down to the bare essentials. I came up with the following code utilising Linux Protocol Module: http://www.trikaliotis.net/testmodule/test_kernel.c the correspondig Makefile is in http://www.trikaliotis.net/testmodule/Makefile Note: This is a cut-down version of the actual code which shows the problem. Additionally, I register for ETH_P_ALL so the problem occurs as fast as possible. While it essentially works as I want it to, I found that I am leaking memory this way. Having this module in a highly loaded network, "head -n5 /proc/meminfo" shows that MemFree is steadily falling, until the kernel OOPS with an out of memory condition. "Of course", if I undefine DO_MEMLEAK, the memory leak does not occur anymore. I tried for almost two weeks now to look at different tutorials, and I also looked in working code (for example, the IP LPM) and tried to compare with my code, but I could not find out what I am doing wrong here. I am sure it must be something obvious, and very silly - unfortunaely, for me, it is not obvious at the moment. Can anyone help me here, please? Best regards, Spiro. -- Spiro R. Trikaliotis http://opencbm.sf.net/ http://www.trikaliotis.net/ http://www.viceteam.org/ _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies