Received: by 2002:a05:6358:489b:b0:bb:da1:e618 with SMTP id x27csp1198893rwn; Thu, 8 Sep 2022 15:19:12 -0700 (PDT) X-Google-Smtp-Source: AA6agR6ZmsJr5aoIqbFwYvwsRKSWAe30BHDT7gdkvvaOv76G43tXUT/HOszp/6Ap5bNu4lAPy+ZV X-Received: by 2002:a62:d446:0:b0:53e:2781:6bd3 with SMTP id u6-20020a62d446000000b0053e27816bd3mr11028607pfl.30.1662675552373; Thu, 08 Sep 2022 15:19:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662675552; cv=none; d=google.com; s=arc-20160816; b=eYitzHE7ae70cqorrEC206pBngQ4QniZAfHiVO0frcwWIGtPsDknShiTpEpkpWqHsA 4WLQ/eFsgazzQmyMkKaEjIUnkU8ZcSvCj07fYNfEZaoP7XpPSqIZ7BTGaW2epCSONE4l FOeLrRaZOQM2a/nwRArf78Ca0f84JNLrjWiCUQNQe3MC8AOYQQ65Mba3QQdbPB7IR7dC 05shQ0wW6eAjN5OA1m5FijeV0MlakAxzjkq4Wy6Ie1pokyW/lG295U8wHFQ/xQ8Mfo20 dnQJx0QA2s5q8YDtjeVfH8yFMGRfE5YI64e9FIBVkCHLeODhDMJb8ve3T7e78B5YhVR3 c8GQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=lVq+VD1uH9MKLRTL6gEtH7MuN50tej+G6q/JJmZpkVE=; b=FNNiCqz8fY4W2qPqc+5/jwGIfE8DZ3djm9Auu+HhrQRBqShWQdurHDh3RxoYVghALT 6Tl7gkDVYF7by7D8ISecbrNOIby+6CQbrENIC4/dw3jR7jq6W/jKtmVjAFEVylRQm2P2 UkSCvwWuKVCniDePnviTpLJozPI9qOkI37S6+Ob/oHDa1GYlZaHazV7xbo+EDnA/QrfN 5FIc3c+8MYdZPlKacOpbgbPA93psTmhRe7ikqQN5F/I8BVxBQEJdPutRTHIZVDOU4ZK2 l0GLaHgbG40QUNvmnMWhnAQ6OuJfm1uqTRBEEAiUAFvDeIKi7//9gCB9hiratvPalb+t oNXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=ZNxBPMh7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b10-20020a056a000a8a00b00537280a2fc4si314130pfl.231.2022.09.08.15.19.00; Thu, 08 Sep 2022 15:19:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=ZNxBPMh7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230110AbiIHV3m (ORCPT + 99 others); Thu, 8 Sep 2022 17:29:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60446 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229449AbiIHV3j (ORCPT ); Thu, 8 Sep 2022 17:29:39 -0400 Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 944AA1F636; Thu, 8 Sep 2022 14:29:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662672577; x=1694208577; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=p9RDLCLff5AarBLMvzqWuVUZHN4Pa26xip27D/5/OeE=; b=ZNxBPMh7DarFS17+x9NB7Jnv5S7fh4QPKCRelS5CVoQzNcKyaB89pZmo RuQPcKJJMvCrCJ+VuBc4IBot8TUUSIkz+4cgvozRru39S/OUqSgFUfZte eTiNLcKGVsnWedimFznqcOm3OmrWPcBf2MUm9PPy/oGj/pvsKGohEUjYK 9M9oEGDSh/qM1q7OUhy46au+KOdjCaAQD/A02BBHaKaix+3747xvmt1x4 KFMMJ5ms+hoOrjrEo6DC32iskxMBE0tDLeF7CUDuzTbkuh8rPVT7p5Q/P XTIwMLXWyFQQClRX8l4xAUst/zdX9yZQXOXa+j4NBPqJHGKglTWMyiIoc Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10464"; a="359057553" X-IronPort-AV: E=Sophos;i="5.93,300,1654585200"; d="scan'208";a="359057553" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Sep 2022 14:29:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,300,1654585200"; d="scan'208";a="740827820" Received: from lkp-server02.sh.intel.com (HELO b2938d2e5c5a) ([10.239.97.151]) by orsmga004.jf.intel.com with ESMTP; 08 Sep 2022 14:29:31 -0700 Received: from kbuild by b2938d2e5c5a with local (Exim 4.96) (envelope-from ) id 1oWP5W-0000Kv-1Z; Thu, 08 Sep 2022 21:29:30 +0000 Date: Fri, 9 Sep 2022 05:29:11 +0800 From: kernel test robot To: Pavel Tikhomirov , Eric Biederman , Alexander Viro , Christian Brauner , Andrei Vagin , linux-kernel@vger.kernel.org Cc: kbuild-all@lists.01.org, Pavel Tikhomirov , Kees Cook , Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Daniel Bristot de Oliveira , Valentin Schneider , Andrew Morton , Linux Memory Management List , linux-ia64@vger.kernel.org, linux-fsdevel@vger.kernel.org, kernel@openvz.org Subject: Re: [PATCH v3 1/2] Add CABA tree to task_struct Message-ID: <202209090529.EL54HX2U-lkp@intel.com> References: <20220908140313.313020-2-ptikhomirov@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220908140313.313020-2-ptikhomirov@virtuozzo.com> X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Pavel, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on shuah-kselftest/next] [also build test WARNING on kees/for-next/execve tip/sched/core linus/master v6.0-rc4 next-20220908] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Pavel-Tikhomirov/Introduce-CABA-helper-process-tree/20220908-220639 base: https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git next config: s390-randconfig-s043-20220907 (https://download.01.org/0day-ci/archive/20220909/202209090529.EL54HX2U-lkp@intel.com/config) compiler: s390-linux-gcc (GCC) 12.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://github.com/intel-lab-lkp/linux/commit/17a897a33137d4f49f99c8be8d619f6f711fccdb git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Pavel-Tikhomirov/Introduce-CABA-helper-process-tree/20220908-220639 git checkout 17a897a33137d4f49f99c8be8d619f6f711fccdb # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=s390 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) kernel/fork.c:1307:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct file *[assigned] old_exe_file @@ got struct file [noderef] __rcu *[assigned] __ret @@ kernel/fork.c:1307:22: sparse: expected struct file *[assigned] old_exe_file kernel/fork.c:1307:22: sparse: got struct file [noderef] __rcu *[assigned] __ret kernel/fork.c:1638:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct refcount_struct [usertype] *r @@ got struct refcount_struct [noderef] __rcu * @@ kernel/fork.c:1638:38: sparse: expected struct refcount_struct [usertype] *r kernel/fork.c:1638:38: sparse: got struct refcount_struct [noderef] __rcu * kernel/fork.c:1647:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/fork.c:1647:31: sparse: expected struct spinlock [usertype] *lock kernel/fork.c:1647:31: sparse: got struct spinlock [noderef] __rcu * kernel/fork.c:1648:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got struct k_sigaction [noderef] __rcu * @@ kernel/fork.c:1648:9: sparse: expected void const * kernel/fork.c:1648:9: sparse: got struct k_sigaction [noderef] __rcu * kernel/fork.c:1648:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got struct k_sigaction [noderef] __rcu * @@ kernel/fork.c:1648:9: sparse: expected void const * kernel/fork.c:1648:9: sparse: got struct k_sigaction [noderef] __rcu * kernel/fork.c:1648:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got struct k_sigaction [noderef] __rcu * @@ kernel/fork.c:1648:9: sparse: expected void const * kernel/fork.c:1648:9: sparse: got struct k_sigaction [noderef] __rcu * kernel/fork.c:1649:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/fork.c:1649:33: sparse: expected struct spinlock [usertype] *lock kernel/fork.c:1649:33: sparse: got struct spinlock [noderef] __rcu * kernel/fork.c:1742:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct arch_spinlock_t [usertype] *lp @@ got struct arch_spinlock_t [noderef] __rcu * @@ kernel/fork.c:1742:9: sparse: expected struct arch_spinlock_t [usertype] *lp kernel/fork.c:1742:9: sparse: got struct arch_spinlock_t [noderef] __rcu * kernel/fork.c:2077:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/fork.c:2077:31: sparse: expected struct spinlock [usertype] *lock kernel/fork.c:2077:31: sparse: got struct spinlock [noderef] __rcu * kernel/fork.c:2081:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/fork.c:2081:33: sparse: expected struct spinlock [usertype] *lock kernel/fork.c:2081:33: sparse: got struct spinlock [noderef] __rcu * kernel/fork.c:2403:32: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct [noderef] __rcu *real_parent @@ got struct task_struct * @@ kernel/fork.c:2403:32: sparse: expected struct task_struct [noderef] __rcu *real_parent kernel/fork.c:2403:32: sparse: got struct task_struct * >> kernel/fork.c:2407:17: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct [noderef] __rcu *caba @@ got struct task_struct * @@ kernel/fork.c:2407:17: sparse: expected struct task_struct [noderef] __rcu *caba kernel/fork.c:2407:17: sparse: got struct task_struct * kernel/fork.c:2413:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/fork.c:2413:27: sparse: expected struct spinlock [usertype] *lock kernel/fork.c:2413:27: sparse: got struct spinlock [noderef] __rcu * kernel/fork.c:2460:54: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct list_head *head @@ got struct list_head [noderef] __rcu * @@ kernel/fork.c:2460:54: sparse: expected struct list_head *head kernel/fork.c:2460:54: sparse: got struct list_head [noderef] __rcu * kernel/fork.c:2461:51: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct list_head *head @@ got struct list_head [noderef] __rcu * @@ kernel/fork.c:2461:51: sparse: expected struct list_head *head kernel/fork.c:2461:51: sparse: got struct list_head [noderef] __rcu * kernel/fork.c:2482:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/fork.c:2482:29: sparse: expected struct spinlock [usertype] *lock kernel/fork.c:2482:29: sparse: got struct spinlock [noderef] __rcu * kernel/fork.c:2503:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/fork.c:2503:29: sparse: expected struct spinlock [usertype] *lock kernel/fork.c:2503:29: sparse: got struct spinlock [noderef] __rcu * kernel/fork.c:2530:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sighand_struct *sighand @@ got struct sighand_struct [noderef] __rcu *sighand @@ kernel/fork.c:2530:28: sparse: expected struct sighand_struct *sighand kernel/fork.c:2530:28: sparse: got struct sighand_struct [noderef] __rcu *sighand kernel/fork.c:2559:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/fork.c:2559:31: sparse: expected struct spinlock [usertype] *lock kernel/fork.c:2559:31: sparse: got struct spinlock [noderef] __rcu * kernel/fork.c:2561:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/fork.c:2561:33: sparse: expected struct spinlock [usertype] *lock kernel/fork.c:2561:33: sparse: got struct spinlock [noderef] __rcu * kernel/fork.c:2997:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *[assigned] parent @@ got struct task_struct [noderef] __rcu *real_parent @@ kernel/fork.c:2997:24: sparse: expected struct task_struct *[assigned] parent kernel/fork.c:2997:24: sparse: got struct task_struct [noderef] __rcu *real_parent kernel/fork.c:3078:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct refcount_struct const [usertype] *r @@ got struct refcount_struct [noderef] __rcu * @@ kernel/fork.c:3078:43: sparse: expected struct refcount_struct const [usertype] *r kernel/fork.c:3078:43: sparse: got struct refcount_struct [noderef] __rcu * kernel/fork.c:2122:22: sparse: sparse: dereference of noderef expression kernel/fork.c: note: in included file (through arch/s390/include/asm/stacktrace.h, arch/s390/include/asm/perf_event.h, include/linux/perf_event.h, ...): include/linux/ptrace.h:210:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct task_struct *new_parent @@ got struct task_struct [noderef] __rcu *parent @@ include/linux/ptrace.h:210:45: sparse: expected struct task_struct *new_parent include/linux/ptrace.h:210:45: sparse: got struct task_struct [noderef] __rcu *parent include/linux/ptrace.h:210:62: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected struct cred const *ptracer_cred @@ got struct cred const [noderef] __rcu *ptracer_cred @@ include/linux/ptrace.h:210:62: sparse: expected struct cred const *ptracer_cred include/linux/ptrace.h:210:62: sparse: got struct cred const [noderef] __rcu *ptracer_cred kernel/fork.c:2458:59: sparse: sparse: dereference of noderef expression kernel/fork.c:2459:59: sparse: sparse: dereference of noderef expression -- >> kernel/exit.c:84:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *[assigned] new_caba @@ got struct task_struct [noderef] __rcu *caba @@ kernel/exit.c:84:26: sparse: expected struct task_struct *[assigned] new_caba kernel/exit.c:84:26: sparse: got struct task_struct [noderef] __rcu *caba kernel/exit.c:302:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *tsk @@ got struct task_struct [noderef] __rcu *real_parent @@ kernel/exit.c:302:37: sparse: expected struct task_struct *tsk kernel/exit.c:302:37: sparse: got struct task_struct [noderef] __rcu *real_parent kernel/exit.c:305:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *task @@ got struct task_struct [noderef] __rcu *real_parent @@ kernel/exit.c:305:32: sparse: expected struct task_struct *task kernel/exit.c:305:32: sparse: got struct task_struct [noderef] __rcu *real_parent kernel/exit.c:306:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *task @@ got struct task_struct [noderef] __rcu *real_parent @@ kernel/exit.c:306:35: sparse: expected struct task_struct *task kernel/exit.c:306:35: sparse: got struct task_struct [noderef] __rcu *real_parent kernel/exit.c:351:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *parent @@ got struct task_struct [noderef] __rcu *real_parent @@ kernel/exit.c:351:24: sparse: expected struct task_struct *parent kernel/exit.c:351:24: sparse: got struct task_struct [noderef] __rcu *real_parent kernel/exit.c:378:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/exit.c:378:27: sparse: expected struct spinlock [usertype] *lock kernel/exit.c:378:27: sparse: got struct spinlock [noderef] __rcu * kernel/exit.c:381:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/exit.c:381:29: sparse: expected struct spinlock [usertype] *lock kernel/exit.c:381:29: sparse: got struct spinlock [noderef] __rcu * kernel/exit.c:604:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *reaper @@ got struct task_struct [noderef] __rcu *real_parent @@ kernel/exit.c:604:29: sparse: expected struct task_struct *reaper kernel/exit.c:604:29: sparse: got struct task_struct [noderef] __rcu *real_parent kernel/exit.c:606:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *reaper @@ got struct task_struct [noderef] __rcu *real_parent @@ kernel/exit.c:606:29: sparse: expected struct task_struct *reaper kernel/exit.c:606:29: sparse: got struct task_struct [noderef] __rcu *real_parent kernel/exit.c:930:63: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sighand_struct *const sighand @@ got struct sighand_struct [noderef] __rcu *sighand @@ kernel/exit.c:930:63: sparse: expected struct sighand_struct *const sighand kernel/exit.c:930:63: sparse: got struct sighand_struct [noderef] __rcu *sighand kernel/exit.c:1085:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/exit.c:1085:39: sparse: expected struct spinlock [usertype] *lock kernel/exit.c:1085:39: sparse: got struct spinlock [noderef] __rcu * kernel/exit.c:1110:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/exit.c:1110:41: sparse: expected struct spinlock [usertype] *lock kernel/exit.c:1110:41: sparse: got struct spinlock [noderef] __rcu * kernel/exit.c:1199:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/exit.c:1199:25: sparse: expected struct spinlock [usertype] *lock kernel/exit.c:1199:25: sparse: got struct spinlock [noderef] __rcu * kernel/exit.c:1214:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/exit.c:1214:27: sparse: expected struct spinlock [usertype] *lock kernel/exit.c:1214:27: sparse: got struct spinlock [noderef] __rcu * kernel/exit.c:1265:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/exit.c:1265:25: sparse: expected struct spinlock [usertype] *lock kernel/exit.c:1265:25: sparse: got struct spinlock [noderef] __rcu * kernel/exit.c:1268:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/exit.c:1268:35: sparse: expected struct spinlock [usertype] *lock kernel/exit.c:1268:35: sparse: got struct spinlock [noderef] __rcu * kernel/exit.c:1274:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@ kernel/exit.c:1274:27: sparse: expected struct spinlock [usertype] *lock kernel/exit.c:1274:27: sparse: got struct spinlock [noderef] __rcu * kernel/exit.c:1455:59: sparse: sparse: incompatible types in comparison expression (different base types): kernel/exit.c:1455:59: sparse: void * kernel/exit.c:1455:59: sparse: struct task_struct [noderef] __rcu * kernel/exit.c:1471:25: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *parent @@ got struct task_struct [noderef] __rcu * @@ kernel/exit.c:1471:25: sparse: expected struct task_struct *parent kernel/exit.c:1471:25: sparse: got struct task_struct [noderef] __rcu * kernel/exit.c: note: in included file: include/linux/ptrace.h:92:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p1 @@ got struct task_struct [noderef] __rcu *real_parent @@ include/linux/ptrace.h:92:40: sparse: expected struct task_struct *p1 include/linux/ptrace.h:92:40: sparse: got struct task_struct [noderef] __rcu *real_parent include/linux/ptrace.h:92:60: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct task_struct *p2 @@ got struct task_struct [noderef] __rcu *parent @@ include/linux/ptrace.h:92:60: sparse: expected struct task_struct *p2 include/linux/ptrace.h:92:60: sparse: got struct task_struct [noderef] __rcu *parent include/linux/ptrace.h:92:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p1 @@ got struct task_struct [noderef] __rcu *real_parent @@ include/linux/ptrace.h:92:40: sparse: expected struct task_struct *p1 include/linux/ptrace.h:92:40: sparse: got struct task_struct [noderef] __rcu *real_parent include/linux/ptrace.h:92:60: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct task_struct *p2 @@ got struct task_struct [noderef] __rcu *parent @@ include/linux/ptrace.h:92:60: sparse: expected struct task_struct *p2 include/linux/ptrace.h:92:60: sparse: got struct task_struct [noderef] __rcu *parent kernel/exit.c: note: in included file (through include/linux/sched/signal.h, include/linux/rcuwait.h, include/linux/percpu-rwsem.h, ...): include/linux/sched/task.h:110:21: sparse: sparse: context imbalance in 'wait_task_zombie' - unexpected unlock include/linux/sched/task.h:110:21: sparse: sparse: context imbalance in 'wait_task_stopped' - unexpected unlock include/linux/sched/task.h:110:21: sparse: sparse: context imbalance in 'wait_task_continued' - unexpected unlock kernel/exit.c: note: in included file: include/linux/ptrace.h:92:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p1 @@ got struct task_struct [noderef] __rcu *real_parent @@ include/linux/ptrace.h:92:40: sparse: expected struct task_struct *p1 include/linux/ptrace.h:92:40: sparse: got struct task_struct [noderef] __rcu *real_parent include/linux/ptrace.h:92:60: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct task_struct *p2 @@ got struct task_struct [noderef] __rcu *parent @@ include/linux/ptrace.h:92:60: sparse: expected struct task_struct *p2 include/linux/ptrace.h:92:60: sparse: got struct task_struct [noderef] __rcu *parent kernel/exit.c:1563:9: sparse: sparse: context imbalance in 'do_wait' - wrong count at exit -- init/init_task.c:107:28: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct [noderef] __rcu *real_parent @@ got struct task_struct * @@ init/init_task.c:107:28: sparse: expected struct task_struct [noderef] __rcu *real_parent init/init_task.c:107:28: sparse: got struct task_struct * init/init_task.c:108:28: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct [noderef] __rcu *parent @@ got struct task_struct * @@ init/init_task.c:108:28: sparse: expected struct task_struct [noderef] __rcu *parent init/init_task.c:108:28: sparse: got struct task_struct * >> init/init_task.c:112:28: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct [noderef] __rcu *caba @@ got struct task_struct * @@ init/init_task.c:112:28: sparse: expected struct task_struct [noderef] __rcu *caba init/init_task.c:112:28: sparse: got struct task_struct * init/init_task.c:125:28: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sighand_struct [noderef] __rcu *sighand @@ got struct sighand_struct * @@ init/init_task.c:125:28: sparse: expected struct sighand_struct [noderef] __rcu *sighand init/init_task.c:125:28: sparse: got struct sighand_struct * vim +2407 kernel/fork.c 2355 2356 /* 2357 * Ensure that the cgroup subsystem policies allow the new process to be 2358 * forked. It should be noted that the new process's css_set can be changed 2359 * between here and cgroup_post_fork() if an organisation operation is in 2360 * progress. 2361 */ 2362 retval = cgroup_can_fork(p, args); 2363 if (retval) 2364 goto bad_fork_put_pidfd; 2365 2366 /* 2367 * Now that the cgroups are pinned, re-clone the parent cgroup and put 2368 * the new task on the correct runqueue. All this *before* the task 2369 * becomes visible. 2370 * 2371 * This isn't part of ->can_fork() because while the re-cloning is 2372 * cgroup specific, it unconditionally needs to place the task on a 2373 * runqueue. 2374 */ 2375 sched_cgroup_fork(p, args); 2376 2377 /* 2378 * From this point on we must avoid any synchronous user-space 2379 * communication until we take the tasklist-lock. In particular, we do 2380 * not want user-space to be able to predict the process start-time by 2381 * stalling fork(2) after we recorded the start_time but before it is 2382 * visible to the system. 2383 */ 2384 2385 p->start_time = ktime_get_ns(); 2386 p->start_boottime = ktime_get_boottime_ns(); 2387 2388 /* 2389 * Make it visible to the rest of the system, but dont wake it up yet. 2390 * Need tasklist lock for parent etc handling! 2391 */ 2392 write_lock_irq(&tasklist_lock); 2393 2394 /* CLONE_PARENT re-uses the old parent */ 2395 if (clone_flags & (CLONE_PARENT|CLONE_THREAD)) { 2396 p->real_parent = current->real_parent; 2397 p->parent_exec_id = current->parent_exec_id; 2398 if (clone_flags & CLONE_THREAD) 2399 p->exit_signal = -1; 2400 else 2401 p->exit_signal = current->group_leader->exit_signal; 2402 } else { 2403 p->real_parent = current; 2404 p->parent_exec_id = current->self_exec_id; 2405 p->exit_signal = args->exit_signal; 2406 } > 2407 p->caba = current; 2408 2409 klp_copy_process(p); 2410 2411 sched_core_fork(p); 2412 2413 spin_lock(¤t->sighand->siglock); 2414 2415 /* 2416 * Copy seccomp details explicitly here, in case they were changed 2417 * before holding sighand lock. 2418 */ 2419 copy_seccomp(p); 2420 2421 rv_task_fork(p); 2422 2423 rseq_fork(p, clone_flags); 2424 2425 /* Don't start children in a dying pid namespace */ 2426 if (unlikely(!(ns_of_pid(pid)->pid_allocated & PIDNS_ADDING))) { 2427 retval = -ENOMEM; 2428 goto bad_fork_cancel_cgroup; 2429 } 2430 2431 /* Let kill terminate clone/fork in the middle */ 2432 if (fatal_signal_pending(current)) { 2433 retval = -EINTR; 2434 goto bad_fork_cancel_cgroup; 2435 } 2436 2437 init_task_pid_links(p); 2438 if (likely(p->pid)) { 2439 ptrace_init_task(p, (clone_flags & CLONE_PTRACE) || trace); 2440 2441 init_task_pid(p, PIDTYPE_PID, pid); 2442 if (thread_group_leader(p)) { 2443 init_task_pid(p, PIDTYPE_TGID, pid); 2444 init_task_pid(p, PIDTYPE_PGID, task_pgrp(current)); 2445 init_task_pid(p, PIDTYPE_SID, task_session(current)); 2446 2447 if (is_child_reaper(pid)) { 2448 ns_of_pid(pid)->child_reaper = p; 2449 p->signal->flags |= SIGNAL_UNKILLABLE; 2450 } 2451 p->signal->shared_pending.signal = delayed.signal; 2452 p->signal->tty = tty_kref_get(current->signal->tty); 2453 /* 2454 * Inherit has_child_subreaper flag under the same 2455 * tasklist_lock with adding child to the process tree 2456 * for propagate_has_child_subreaper optimization. 2457 */ 2458 p->signal->has_child_subreaper = p->real_parent->signal->has_child_subreaper || 2459 p->real_parent->signal->is_child_subreaper; 2460 list_add_tail(&p->sibling, &p->real_parent->children); 2461 list_add_tail(&p->cabd, &p->caba->cabds); 2462 list_add_tail_rcu(&p->tasks, &init_task.tasks); 2463 attach_pid(p, PIDTYPE_TGID); 2464 attach_pid(p, PIDTYPE_PGID); 2465 attach_pid(p, PIDTYPE_SID); 2466 __this_cpu_inc(process_counts); 2467 } else { 2468 current->signal->nr_threads++; 2469 atomic_inc(¤t->signal->live); 2470 refcount_inc(¤t->signal->sigcnt); 2471 task_join_group_stop(p); 2472 list_add_tail_rcu(&p->thread_group, 2473 &p->group_leader->thread_group); 2474 list_add_tail_rcu(&p->thread_node, 2475 &p->signal->thread_head); 2476 } 2477 attach_pid(p, PIDTYPE_PID); 2478 nr_threads++; 2479 } 2480 total_forks++; 2481 hlist_del_init(&delayed.node); 2482 spin_unlock(¤t->sighand->siglock); 2483 syscall_tracepoint_update(p); 2484 write_unlock_irq(&tasklist_lock); 2485 2486 if (pidfile) 2487 fd_install(pidfd, pidfile); 2488 2489 proc_fork_connector(p); 2490 sched_post_fork(p); 2491 cgroup_post_fork(p, args); 2492 perf_event_fork(p); 2493 2494 trace_task_newtask(p, clone_flags); 2495 uprobe_copy_process(p, clone_flags); 2496 2497 copy_oom_score_adj(clone_flags, p); 2498 2499 return p; 2500 2501 bad_fork_cancel_cgroup: 2502 sched_core_free(p); 2503 spin_unlock(¤t->sighand->siglock); 2504 write_unlock_irq(&tasklist_lock); 2505 cgroup_cancel_fork(p, args); 2506 bad_fork_put_pidfd: 2507 if (clone_flags & CLONE_PIDFD) { 2508 fput(pidfile); 2509 put_unused_fd(pidfd); 2510 } 2511 bad_fork_free_pid: 2512 if (pid != &init_struct_pid) 2513 free_pid(pid); 2514 bad_fork_cleanup_thread: 2515 exit_thread(p); 2516 bad_fork_cleanup_io: 2517 if (p->io_context) 2518 exit_io_context(p); 2519 bad_fork_cleanup_namespaces: 2520 exit_task_namespaces(p); 2521 bad_fork_cleanup_mm: 2522 if (p->mm) { 2523 mm_clear_owner(p->mm, p); 2524 mmput(p->mm); 2525 } 2526 bad_fork_cleanup_signal: 2527 if (!(clone_flags & CLONE_THREAD)) 2528 free_signal_struct(p->signal); 2529 bad_fork_cleanup_sighand: 2530 __cleanup_sighand(p->sighand); 2531 bad_fork_cleanup_fs: 2532 exit_fs(p); /* blocking */ 2533 bad_fork_cleanup_files: 2534 exit_files(p); /* blocking */ 2535 bad_fork_cleanup_semundo: 2536 exit_sem(p); 2537 bad_fork_cleanup_security: 2538 security_task_free(p); 2539 bad_fork_cleanup_audit: 2540 audit_free(p); 2541 bad_fork_cleanup_perf: 2542 perf_event_free_task(p); 2543 bad_fork_cleanup_policy: 2544 lockdep_free_task(p); 2545 #ifdef CONFIG_NUMA 2546 mpol_put(p->mempolicy); 2547 #endif 2548 bad_fork_cleanup_delayacct: 2549 delayacct_tsk_free(p); 2550 bad_fork_cleanup_count: 2551 dec_rlimit_ucounts(task_ucounts(p), UCOUNT_RLIMIT_NPROC, 1); 2552 exit_creds(p); 2553 bad_fork_free: 2554 WRITE_ONCE(p->__state, TASK_DEAD); 2555 exit_task_stack_account(p); 2556 put_task_stack(p); 2557 delayed_free_task(p); 2558 fork_out: 2559 spin_lock_irq(¤t->sighand->siglock); 2560 hlist_del_init(&delayed.node); 2561 spin_unlock_irq(¤t->sighand->siglock); 2562 return ERR_PTR(retval); 2563 } 2564 -- 0-DAY CI Kernel Test Service https://01.org/lkp