Re: [PATCH] csky: uaccess.h: Coding convention with asm generic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thx, Guenter

On Wed, Apr 28, 2021 at 11:18 AM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
>
> On Wed, Apr 21, 2021 at 08:54:15AM +0000, guoren@xxxxxxxxxx wrote:
> > From: Guo Ren <guoren@xxxxxxxxxxxxxxxxx>
> >
> > Using asm-generic/uaccess.h to prevent duplicated code:
> >  - Add user_addr_max which mentioned in generic uaccess.h
> >  - Remove custom definitions of KERNEL/USER_DS, get/set_fs,
> >    uaccess_kerenl
> >  - Using generic extable.h instead of custom definitions in
> >    uaccess.h
> >
> > Signed-off-by: Guo Ren <guoren@xxxxxxxxxxxxxxxxx>
> > Cc: Arnd Bergmann <arnd@xxxxxxxx>
>
> Building csky:tinyconfig ... failed
> --------------
> Error log:
> csky-linux-ld: fs/readdir.o: in function `__put_user_fn':
> readdir.c:(.text+0x7c): undefined reference to `__put_user_bad'
> csky-linux-ld: fs/readdir.o: in function `$d':
> readdir.c:(.text+0x1bc): undefined reference to `__put_user_bad'
> make[1]: *** [Makefile:1277: vmlinux] Error 1
> make: *** [Makefile:222: __sub-make] Error 2
It's a bug, I can't put __put_user_bad in __put_user_fn, and
__put_user has done that:

/*
 * These are the main single-value transfer routines.  They automatically
 * use the right size if we just have the right pointer type.
 * This version just falls back to copy_{from,to}_user, which should
 * provide a fast-path for small values.
 */
#define __put_user(x, ptr) \
({                                                              \
        __typeof__(*(ptr)) __x = (x);                           \
        int __pu_err = -EFAULT;                                 \
        __chk_user_ptr(ptr);                                    \
        switch (sizeof (*(ptr))) {                              \
        case 1:                                                 \
        case 2:                                                 \
        case 4:                                                 \
        case 8:                                                 \
                __pu_err = __put_user_fn(sizeof (*(ptr)),       \
                                         ptr, &__x);            \
                break;                                          \
        default:                                                \
                __put_user_bad();                               \
                break;                                          \
         }                                                      \
        __pu_err;                                               \
})

Also, the same problem in __get_user, and I didn't implement "case 8:".

I'll fix up it in another patch and implement __get_user_case_8
(similar with arch/arc.)

>
> Bisect log attached.
>
> Guenter
>
> ---
> # bad: [3f1fee3e7237347f09a2c7fa538119e6d9ea4b84] Add linux-next specific files for 20210426
> # good: [9f4ad9e425a1d3b6a34617b8ea226d56a119a717] Linux 5.12
> git bisect start 'HEAD' 'v5.12'
> # bad: [bb8f486776983897309645c98705670c3d2a16e5] Merge remote-tracking branch 'crypto/master'
> git bisect bad bb8f486776983897309645c98705670c3d2a16e5
> # bad: [6ab4f4364c450991a476eef5bc57bef3586354ed] Merge remote-tracking branch 'jc_docs/docs-next'
> git bisect bad 6ab4f4364c450991a476eef5bc57bef3586354ed
> # bad: [fd73cab0b2a046136842b23f027dae3686588ba5] Merge remote-tracking branch 'parisc-hd/for-next'
> git bisect bad fd73cab0b2a046136842b23f027dae3686588ba5
> # good: [f0e6103e023e0ede67848ddcd6b07044574f4fd3] soc: document merges
> git bisect good f0e6103e023e0ede67848ddcd6b07044574f4fd3
> # good: [70361dc0add47d3818acf9c33718ce7395f8aaa5] Merge remote-tracking branch 'arm-soc/for-next'
> git bisect good 70361dc0add47d3818acf9c33718ce7395f8aaa5
> # good: [f62ad9f6e1100e3a1b6ca7a004fd5a972ff768df] Merge remote-tracking branch 'ti-k3/ti-k3-next'
> git bisect good f62ad9f6e1100e3a1b6ca7a004fd5a972ff768df
> # bad: [b3b33dda4fd25e201c77f0ce9277dd34f31e86ce] Merge remote-tracking branch 'h8300/h8300-next'
> git bisect bad b3b33dda4fd25e201c77f0ce9277dd34f31e86ce
> # good: [6a861bd8cf3c96f5825d031732e365b7721a84a5] Merge branch 'clk-qcom' into clk-next
> git bisect good 6a861bd8cf3c96f5825d031732e365b7721a84a5
> # good: [1dd129f1deec0606fb70992521a7e5bcd2f85c69] Merge branch 'clk-qcom' into clk-next
> git bisect good 1dd129f1deec0606fb70992521a7e5bcd2f85c69
> # good: [8808515be0ed4e33de9bfdc65f4c1b547ee11065] h8300: Replace <linux/clk-provider.h> by <linux/of_clk.h>
> git bisect good 8808515be0ed4e33de9bfdc65f4c1b547ee11065
> # good: [e27d3ecdeb8923f35cb856fd20be14256aaa7575] Merge remote-tracking branch 'clk/clk-next'
> git bisect good e27d3ecdeb8923f35cb856fd20be14256aaa7575
> # bad: [d3900e8d918f8fbd1366b9c2998e2830e66a0081] csky: uaccess.h: Coding convention with asm generic
> git bisect bad d3900e8d918f8fbd1366b9c2998e2830e66a0081
> # good: [0b1f557a1fa02174a982f557581e348d91987ec6] csky: Fixup typos
> git bisect good 0b1f557a1fa02174a982f557581e348d91987ec6
> # good: [8bfe70e696584deeed1de1bcbfcde405aa1a1344] csky: fix syscache.c fallthrough warning
> git bisect good 8bfe70e696584deeed1de1bcbfcde405aa1a1344
> # first bad commit: [d3900e8d918f8fbd1366b9c2998e2830e66a0081] csky: uaccess.h: Coding convention with asm generic



-- 
Best Regards
 Guo Ren

ML: https://lore.kernel.org/linux-csky/



[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux