On Tuesday 16 February 2010 15:09:51 you wrote:Octavian Purdila wrote:On Tuesday 16 February 2010 10:41:07 you wrote:Well, you need to use copy_from_user() before call it.I'm afraid we can't, skip_spaces does not accept userspace buffers.+static int proc_skip_wspace(char __user **buf, size_t *size)In lib/string.c we have skip_spaces(), I think we can use it
+{
+ char c;
+
+ while (*size) {
+ if (get_user(c, *buf))
+ return -EFAULT;
+ if (!isspace(c))
+ break;
+ (*size)--; (*buf)++;
+ }
+
+ return 0;
+}
here instead of inventing another one.
And how much would you copy? You need to either use a stack buffer and do a loop copy or you would need to copy the whole userspace buffer which means we need to allocate a kernel buffer. I think its much cleaner the way is currently done.