Re: [PATCH v13 1/6] x86/boot: Introduce kstrtoull() to boot directory instead of simple_strtoull()

From: kbuild test robot
Date: Sun Dec 16 2018 - 14:23:02 EST


Hi Chao,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.20-rc6 next-20181214]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Chao-Fan/x86-boot-KASLR-Parse-ACPI-table-and-limit-KASLR-to-choosing-immovable-memory/20181214-082218
config: i386-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

All error/warnings (new ones prefixed by >>):

In file included from include/linux/kernel.h:207:0,
from arch/x86/boot/string.c:17:
>> arch/x86/include/asm/div64.h:61:21: error: redefinition of 'div_u64_rem'
#define div_u64_rem div_u64_rem
^
>> arch/x86/boot/string.c:194:19: note: in expansion of macro 'div_u64_rem'
static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
^~~~~~~~~~~
arch/x86/include/asm/div64.h:43:19: note: previous definition of 'div_u64_rem' was here
static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
^~~~~~~~~~~
--
In file included from include/linux/kernel.h:207:0,
from arch/x86/boot/compressed/../string.c:17,
from arch/x86/boot/compressed/string.c:11:
>> arch/x86/include/asm/div64.h:61:21: error: redefinition of 'div_u64_rem'
#define div_u64_rem div_u64_rem
^
>> arch/x86/boot/compressed/../string.c:194:19: note: in expansion of macro 'div_u64_rem'
static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
^~~~~~~~~~~
arch/x86/include/asm/div64.h:43:19: note: previous definition of 'div_u64_rem' was here
static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
^~~~~~~~~~~

vim +/div_u64_rem +61 arch/x86/include/asm/div64.h

428c5a23 include/asm-x86/div64.h Chris Snook 2007-10-20 42
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 43 static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 44 {
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 45 union {
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 46 u64 v64;
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 47 u32 v32[2];
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 48 } d = { dividend };
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 49 u32 upper;
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 50
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 51 upper = d.v32[1];
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 52 d.v32[1] = 0;
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 53 if (upper >= divisor) {
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 54 d.v32[1] = upper / divisor;
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 55 upper %= divisor;
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 56 }
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 57 asm ("divl %2" : "=a" (d.v32[0]), "=d" (*remainder) :
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 58 "rm" (divisor), "0" (d.v32[0]), "1" (upper));
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 59 return d.v64;
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 60 }
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 @61 #define div_u64_rem div_u64_rem
2418f4f2 include/asm-x86/div64.h Roman Zippel 2008-05-01 62

:::::: The code at line 61 was first introduced by commit
:::::: 2418f4f28f8467b92a6177af32d05737ebf6206c introduce explicit signed/unsigned 64bit divide

:::::: TO: Roman Zippel <zippel@xxxxxxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip