> +     pagefault_disable();
> +     switch (len) {
> +     case 1:
> +             if (__get_user(tmp._u8, (uint8_t __user *)p))
> +                     goto end;
> +             tmp._u8 += (uint8_t)count;
> +             if (__put_user(tmp._u8, (uint8_t __user *)p))
> +                     goto end;
> +             break;

It seems the code size could be dramatically shrunk by using a function
pointer callback for the actual operation, and then avoiding all the
copies. Since this is only a fallback this shouldn't be a problem
(and modern branch predictors are fairly good in such situations anyways)

If you really want to keep the code it would be better if you used
some macros -- i bet there's a typo in here somewhere in this
forest.

-Andi

Reply via email to