mm/gup.c:1674:16: error: unexpected token, expected comma

From: kernel test robot
Date: Wed Jan 19 2022 - 16:55:58 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1d1df41c5a33359a00e919d54eaebfb789711fdc
commit: bb523b406c849eef8f265a07cd7f320f1f177743 gup: Turn fault_in_pages_{readable,writeable} into fault_in_{readable,writeable}
date: 3 months ago
config: mips-randconfig-r003-20220118 (https://download.01.org/0day-ci/archive/20220120/202201200528.F5X9Vnfb-lkp@xxxxxxxxx/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 5f782d25a742302d25ef3c8b84b54f7483c2deb9)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bb523b406c849eef8f265a07cd7f320f1f177743
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout bb523b406c849eef8f265a07cd7f320f1f177743
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

>> mm/gup.c:1674:16: error: unexpected token, expected comma
if (unlikely(__put_user(0, uaddr) != 0))
^
arch/mips/include/asm/uaccess.h:171:18: note: expanded from macro '__put_user'
__put_data_asm(user_sb, __pu_ptr); \
^
<inline asm>:3:10: note: instantiated into assembly here
.set eva
^
>> mm/gup.c:1674:16: error: invalid operand for instruction
if (unlikely(__put_user(0, uaddr) != 0))
^
arch/mips/include/asm/uaccess.h:171:18: note: expanded from macro '__put_user'
__put_data_asm(user_sb, __pu_ptr); \
^
<inline asm>:4:10: note: instantiated into assembly here
sbe $0, 0($17)
^
mm/gup.c:1682:16: error: unexpected token, expected comma
if (unlikely(__put_user(0, uaddr) != 0))
^
arch/mips/include/asm/uaccess.h:171:18: note: expanded from macro '__put_user'
__put_data_asm(user_sb, __pu_ptr); \
^
<inline asm>:3:10: note: instantiated into assembly here
.set eva
^
mm/gup.c:1682:16: error: invalid operand for instruction
if (unlikely(__put_user(0, uaddr) != 0))
^
arch/mips/include/asm/uaccess.h:171:18: note: expanded from macro '__put_user'
__put_data_asm(user_sb, __pu_ptr); \
^
<inline asm>:4:10: note: instantiated into assembly here
sbe $0, 0($2)
^
mm/gup.c:1710:16: error: unexpected token, expected comma
if (unlikely(__get_user(c, uaddr) != 0))
^
arch/mips/include/asm/uaccess.h:218:23: note: expanded from macro '__get_user'
__get_data_asm((x), user_lb, __gu_ptr); \
^
<inline asm>:3:10: note: instantiated into assembly here
.set eva
^
mm/gup.c:1710:16: error: invalid operand for instruction
if (unlikely(__get_user(c, uaddr) != 0))
^
arch/mips/include/asm/uaccess.h:218:23: note: expanded from macro '__get_user'
__get_data_asm((x), user_lb, __gu_ptr); \
^
<inline asm>:4:10: note: instantiated into assembly here
lbe $3, 0($17)
^
mm/gup.c:1718:16: error: unexpected token, expected comma
if (unlikely(__get_user(c, uaddr) != 0))
^
arch/mips/include/asm/uaccess.h:218:23: note: expanded from macro '__get_user'
__get_data_asm((x), user_lb, __gu_ptr); \
^
<inline asm>:3:10: note: instantiated into assembly here
.set eva
^
mm/gup.c:1718:16: error: invalid operand for instruction
if (unlikely(__get_user(c, uaddr) != 0))
^
arch/mips/include/asm/uaccess.h:218:23: note: expanded from macro '__get_user'
__get_data_asm((x), user_lb, __gu_ptr); \
^
<inline asm>:4:10: note: instantiated into assembly here
lbe $5, 0($2)
^
8 errors generated.


vim +1674 mm/gup.c

1658
1659 /**
1660 * fault_in_writeable - fault in userspace address range for writing
1661 * @uaddr: start of address range
1662 * @size: size of address range
1663 *
1664 * Returns the number of bytes not faulted in (like copy_to_user() and
1665 * copy_from_user()).
1666 */
1667 size_t fault_in_writeable(char __user *uaddr, size_t size)
1668 {
1669 char __user *start = uaddr, *end;
1670
1671 if (unlikely(size == 0))
1672 return 0;
1673 if (!PAGE_ALIGNED(uaddr)) {
> 1674 if (unlikely(__put_user(0, uaddr) != 0))
1675 return size;
1676 uaddr = (char __user *)PAGE_ALIGN((unsigned long)uaddr);
1677 }
1678 end = (char __user *)PAGE_ALIGN((unsigned long)start + size);
1679 if (unlikely(end < start))
1680 end = NULL;
1681 while (uaddr != end) {
1682 if (unlikely(__put_user(0, uaddr) != 0))
1683 goto out;
1684 uaddr += PAGE_SIZE;
1685 }
1686
1687 out:
1688 if (size > uaddr - start)
1689 return size - (uaddr - start);
1690 return 0;
1691 }
1692 EXPORT_SYMBOL(fault_in_writeable);
1693

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx