Hi all, just a quick question. Is it the right mailing list to ask something related to the kernel 2.6? I found a strange implementation of the #define __access_ok in the specified file. I cannot think it is a bug and I like to know where I can post issue like this.
By the way, the problem is as follow The implementation of this define is #define __access_ok(addr,size) \ ((addr) <= current->thread.fs.seg \ && ((size) == 0 || (size) - 1 <= current->thread.fs.seg - (addr))) Il looks like it checking if a given pointer is in the user address space (stack) but, as far as I know, on the ppc the stack is growing from the highest addresses to the lowest. Therefore I would have expcted something like this #define __access_ok(addr,size) \ ((addr) >= current->thread.fs.seg \ && ((size) == 0 || (size) - 1 <= (addr) - current->thread.fs.seg)) This my guess is "confirmed" by the following function in the same file extern __inline__ int strnlen_user(const char __user *str, long len) { unsigned long top = current->thread.fs.seg; if ((unsigned long)str > top) return 0; return __strnlen_user(str, len, top); } where the relationship address vs thread.fs.seg is the other way round. Thanks for your help Lapo ------------------------------------------------- WebMail Tele2 http://www.tele2.it -------------------------------------------------