On Fri, 8 Feb 2008, Jan Kiszka wrote: > > Well, let's try it this way: Find below a patch against kgdb.git that > removes the special fault handling (this wouldn't be the first feature I > recently removed from kgdb :->). Light testing revealed no obvious > problems yet.
That is indeed horrible code. No way will I merge anything that has things like that even in it's *history* (ie somebody needs to re-generate the tree without code like that - some things should not be allowed to exist). That said, while just using "probe_kernel_addr()" is certainly much better, it's still really inefficient. If you actually want to do a "safe memory copy", then the right way to do that is basically to do pagefault_disable(); leftover = __copy_from_user_inatomic(dst, src, count); pagefault_enable(); if (leftover) handle_the_fact_that_the_copy_didnt_complete(); which should even be reasonably efficient and should work in all contexts (hardware interrupts disabled, spinlocks held, you name it). So all those "kgdb_{get|set}_mem()" things seem bogus (they also have insane calling semantics - return NULL or errptr? Why not just return an integer error code? Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/