Re: [PATCH v4 02/10] include: Move compat_timespec/ timeval to compat_time.h

From: kbuild test robot
Date: Tue Mar 13 2018 - 11:23:28 EST


Hi Deepa,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on ]

url: https://github.com/0day-ci/linux/commits/Deepa-Dinamani/posix_clocks-Prepare-syscalls-for-64-bit-time_t-conversion/20180313-203305
base:
config: arm64-allnoconfig (attached as .config)
compiler: aarch64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm64

All errors (new ones prefixed by >>):

arch/arm64/kernel/process.c: In function 'copy_thread':
>> arch/arm64/kernel/process.c:342:8: error: implicit declaration of function 'is_compat_thread'; did you mean 'is_compat_task'? [-Werror=implicit-function-declaration]
if (is_compat_thread(task_thread_info(p)))
^~~~~~~~~~~~~~~~
is_compat_task
cc1: some warnings being treated as errors

vim +342 arch/arm64/kernel/process.c

b3901d54d Catalin Marinas 2012-03-05 307
b3901d54d Catalin Marinas 2012-03-05 308 int copy_thread(unsigned long clone_flags, unsigned long stack_start,
afa86fc42 Al Viro 2012-10-22 309 unsigned long stk_sz, struct task_struct *p)
b3901d54d Catalin Marinas 2012-03-05 310 {
b3901d54d Catalin Marinas 2012-03-05 311 struct pt_regs *childregs = task_pt_regs(p);
b3901d54d Catalin Marinas 2012-03-05 312
c34501d21 Catalin Marinas 2012-10-05 313 memset(&p->thread.cpu_context, 0, sizeof(struct cpu_context));
c34501d21 Catalin Marinas 2012-10-05 314
bc0ee4760 Dave Martin 2017-10-31 315 /*
bc0ee4760 Dave Martin 2017-10-31 316 * Unalias p->thread.sve_state (if any) from the parent task
bc0ee4760 Dave Martin 2017-10-31 317 * and disable discard SVE state for p:
bc0ee4760 Dave Martin 2017-10-31 318 */
bc0ee4760 Dave Martin 2017-10-31 319 clear_tsk_thread_flag(p, TIF_SVE);
bc0ee4760 Dave Martin 2017-10-31 320 p->thread.sve_state = NULL;
bc0ee4760 Dave Martin 2017-10-31 321
071b6d4a5 Dave Martin 2017-12-05 322 /*
071b6d4a5 Dave Martin 2017-12-05 323 * In case p was allocated the same task_struct pointer as some
071b6d4a5 Dave Martin 2017-12-05 324 * other recently-exited task, make sure p is disassociated from
071b6d4a5 Dave Martin 2017-12-05 325 * any cpu that may have run that now-exited task recently.
071b6d4a5 Dave Martin 2017-12-05 326 * Otherwise we could erroneously skip reloading the FPSIMD
071b6d4a5 Dave Martin 2017-12-05 327 * registers for p.
071b6d4a5 Dave Martin 2017-12-05 328 */
071b6d4a5 Dave Martin 2017-12-05 329 fpsimd_flush_task_state(p);
071b6d4a5 Dave Martin 2017-12-05 330
9ac080021 Al Viro 2012-10-21 331 if (likely(!(p->flags & PF_KTHREAD))) {
9ac080021 Al Viro 2012-10-21 332 *childregs = *current_pt_regs();
b3901d54d Catalin Marinas 2012-03-05 333 childregs->regs[0] = 0;
d00a3810c Will Deacon 2015-05-27 334
b3901d54d Catalin Marinas 2012-03-05 335 /*
b3901d54d Catalin Marinas 2012-03-05 336 * Read the current TLS pointer from tpidr_el0 as it may be
b3901d54d Catalin Marinas 2012-03-05 337 * out-of-sync with the saved value.
b3901d54d Catalin Marinas 2012-03-05 338 */
adf758999 Mark Rutland 2016-09-08 339 *task_user_tls(p) = read_sysreg(tpidr_el0);
d00a3810c Will Deacon 2015-05-27 340
e0fd18ce1 Al Viro 2012-10-18 341 if (stack_start) {
d00a3810c Will Deacon 2015-05-27 @342 if (is_compat_thread(task_thread_info(p)))
d00a3810c Will Deacon 2015-05-27 343 childregs->compat_sp = stack_start;
d00a3810c Will Deacon 2015-05-27 344 else
b3901d54d Catalin Marinas 2012-03-05 345 childregs->sp = stack_start;
b3901d54d Catalin Marinas 2012-03-05 346 }
d00a3810c Will Deacon 2015-05-27 347
c34501d21 Catalin Marinas 2012-10-05 348 /*
c34501d21 Catalin Marinas 2012-10-05 349 * If a TLS pointer was passed to clone (4th argument), use it
c34501d21 Catalin Marinas 2012-10-05 350 * for the new thread.
c34501d21 Catalin Marinas 2012-10-05 351 */
b3901d54d Catalin Marinas 2012-03-05 352 if (clone_flags & CLONE_SETTLS)
d00a3810c Will Deacon 2015-05-27 353 p->thread.tp_value = childregs->regs[3];
c34501d21 Catalin Marinas 2012-10-05 354 } else {
c34501d21 Catalin Marinas 2012-10-05 355 memset(childregs, 0, sizeof(struct pt_regs));
c34501d21 Catalin Marinas 2012-10-05 356 childregs->pstate = PSR_MODE_EL1h;
57f4959ba James Morse 2016-02-05 357 if (IS_ENABLED(CONFIG_ARM64_UAO) &&
a4023f682 Suzuki K Poulose 2016-11-08 358 cpus_have_const_cap(ARM64_HAS_UAO))
57f4959ba James Morse 2016-02-05 359 childregs->pstate |= PSR_UAO_BIT;
c34501d21 Catalin Marinas 2012-10-05 360 p->thread.cpu_context.x19 = stack_start;
c34501d21 Catalin Marinas 2012-10-05 361 p->thread.cpu_context.x20 = stk_sz;
c34501d21 Catalin Marinas 2012-10-05 362 }
c34501d21 Catalin Marinas 2012-10-05 363 p->thread.cpu_context.pc = (unsigned long)ret_from_fork;
c34501d21 Catalin Marinas 2012-10-05 364 p->thread.cpu_context.sp = (unsigned long)childregs;
b3901d54d Catalin Marinas 2012-03-05 365
b3901d54d Catalin Marinas 2012-03-05 366 ptrace_hw_copy_thread(p);
b3901d54d Catalin Marinas 2012-03-05 367
b3901d54d Catalin Marinas 2012-03-05 368 return 0;
b3901d54d Catalin Marinas 2012-03-05 369 }
b3901d54d Catalin Marinas 2012-03-05 370

:::::: The code at line 342 was first introduced by commit
:::::: d00a3810c16207d2541b7796a73cca5a24ea3742 arm64: context-switch user tls register tpidr_el0 for compat tasks

:::::: TO: Will Deacon <will.deacon@xxxxxxx>
:::::: CC: Catalin Marinas <catalin.marinas@xxxxxxx>

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

Attachment: .config.gz
Description: application/gzip