How to report and verify that a kernel bug was solved.
While building a driver for Fedora 11, kernel 2.6.30.5-43.fc11.i686.PAE, I encounter the following error,
[include/linux/mm_inline.h:31: error: implicit declaration of function ‘mem_cgroup_add_lru_list’ include/linux/mm_inline.h: In function ‘del_page_from_lru_list’: include/linux/mm_inline.h:39: error: implicit declaration of function ‘mem_cgroup_del_lru_list’] I think that this is a bug in the kernel. My questions are how and where to report the bug and how to verify that the bug has been solved in a recent version? |
Quote:
In any case, it seems to me that you just don't have the needed headers or kernel sources in place. Gcc can't find them, so it can't find the prototype for mem_cgroup_add_lru_list(), and hence it *thinks* that you are trying to declarate is implicitly. The real problem is most likely that the declaration can't be found because you are missing the source files. I know nothing about fedora, but you will usually need to install a package that's similar to 2.6.30.5-43.fc11.i686.PAE but with the word "headers" or "src" in the middle of that, those will contain the headers and sources for this kernel that you are using, and that are needed to compile drivers for this kernel. Additional steps might be needed depending on the driver itself. |
I have the kernel sources at /usr/src/kernels/2.6.30.5-43.fc11.i686.PAE
If I grep for mem_cgroup_add_lru_list(), I find three references to it: ./linux/mem_inline.h mem_cgroup_add_lru_list(.....) --- function call ./linux/memcontrol.h extern void mem_cgroup_add_lru_list(.....) ./linux/memcontrol.h static inline void mem_cgroup_add_lru_list (....) It seems that mem_inline should have included memcontrol.h which is not the case? |
Quote:
|
Here are couple of lines from the build log:
make -C /lib/modules/2.6.30.5-43.fc11.i686.PAE/build make[4]: Entering directory `/usr/src/kernels/2.6.30.5-43.fc11.i686.PAE' However, if I go and do a grep in lib/modules/2.6.30.5-43.fc11.i686.PAE/build, I get the same three hits. Is not it clear that mem_inline.h is not including the header file with the correct definition of the function? |
[confusing and incorrect info eliminated, sorry]
Or paste the .h file somewhere, pastebin.ca or whatever. |
I can paste both the header files on pastebin.ca. I have never used it. So what is the procedure? How would you pick that up from there. Do you need some info, or a tag from me.
Thanks for your support. |
You need to paste a link here.
When you paste something in a pastebin, it gives you an url as response, you need to copy it and paste it here. It's useful to exchange big log files, kernel configs, source files, the output of commands, and things like that. A lot of people us it for collaborative debugging, which is kind of the case here. |
|
Mine look the same, strange. I think that the problem in in the driver itself. Can you point me to these drivers so I can try to compile them myself?
|
It might not be possible for me to send you the drivers. I am under a contract. Is there any way, you could help me debug the issue without compiling the driver yourself?
|
Oh, sorry, I thought they were publicly available.
Well, I suggest you to try this on the sources of that driver: Code:
grep -r 'mm_inline.h' Code:
#ifndef LINUX_MM_INLINE_H Code:
#ifndef _LINUX_MEMCONTROL_H |
Thanks for your help. I would try to keep you updated.
|
Indeed adding
Quote:
|
Glad that it worked, see you around ;)
|
All times are GMT -5. The time now is 05:56 AM. |