On Wed, 27 Jan 2016, Mathieu Desnoyers wrote: > +/* > + * sys_getcpu_cache - setup getcpu cache for caller thread > + */ > +SYSCALL_DEFINE2(getcpu_cache, int32_t __user **, cpu_cachep, int, flags) > +{ > + int32_t __user *cpu_cache; > + > + if (unlikely(flags)) > + return -EINVAL; > + /* Check if cpu_cache is already registered. */ > + if (current->cpu_cache) { > + if (put_user(current->cpu_cache, cpu_cachep)) > + return -EFAULT; > + return 0; > + } This is really odd. How is the caller supposed to differentiate between: 1) Get the installed cpucache pointer 2) Set the cpucache pointer We really want clearly seperated functionality here. getcpu_cache(ptr, GET_CACHEP); and getcpu_cache(ptr, SET_CACHEP); Returns -EBUSY if current->cpu_cache is already set, except we allow replacing the pointer. Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html