On Wednesday 16 February 2011, Guan Xuetao wrote: > + > +#define __kernel_ok (segment_eq(get_fs(), KERNEL_DS)) > +#define __user_ok(addr, size) (((size) <= TASK_SIZE) \ > + && ((addr) <= TASK_SIZE - (size))) > +#define __access_ok(addr, size) (__kernel_ok || __user_ok((addr), (size))) A nice trick to simplify this is to introduce a per-process variable for comparing the pointer, set_fs() then sets this variable to either TASK_SIZE or UINT_MAX. This saves one conditional branch for each call to __access_ok. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html