Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp156473ybg; Mon, 8 Jun 2020 19:25:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwIq6rKHi+bZgG2FDJfPr/pL3G2aCfm/vj6GfvxFZPrsoEuvPUXaof4G0kwCfBsL/zFTZbP X-Received: by 2002:a50:a418:: with SMTP id u24mr25715356edb.141.1591669511987; Mon, 08 Jun 2020 19:25:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591669511; cv=none; d=google.com; s=arc-20160816; b=mrclDnh3sy7rjuXn+J/mUfj9KKyTV+vuih7HXwFSoNjG5kcoVu009BLMtqTFxxa0j6 j7ZL4LBzy6UhKyxLT4G2WjXdgrG2qpoDPTxIfQSleJXB2rSt1AjIFv3fP0mYxwJndJn9 BW5qOEwFR0siOsW/GOCB4Vz0Tia7piA/7bz4CDHMJ51SQvIM2LsA0goeaeb9fZPpn5v6 42Ebnl53fTIFwyPXDkLeHeQyJ2wST2SHHINgCD9PL1ePAsxtbLoLkBLvK0DbZdZd+hYl Kq4TH6PBPq3+o28MKHtkpOieWUcFLVLljfrZmU00bUVCP9F0GROzZ/9RNhxOvtdB7zJC E7iw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from; bh=gr4Y+cJ6oNj5NOWZUgqy7g0T14Ak7tbmuygOEuvq/q0=; b=PJ8EWV/Bmjmh9KV4i8OMOTZtrmBAsNHa0fI1wl1Z9cdaYUm7WXRMcQSJGgHhQWjQP+ p8GCVpTz6q4rgtIY0omNdg7lNaB94rOcySv/LWfd8qVG7WU0kRE65Cz6OR7Zpjr+LY8l bVyzCIlSswUAS/7LFtDWa3/teYhOluuv1tSs84utkaL5BSZFxprLsVqXlgHcdRGWF8U+ LJo7PrxZlF59eHYh30863fYpK+doAV746r7m7zbQJo0Hz2Rex1g6s6PtC624fUIaniGK Xmp1E5eghLaB+TVn5Ez4pTwLBH2V6lqPYLeTKFdZhdEX15ITWTlDsEiUt3gBu1a12pmG LbcQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dn14si12388198ejc.414.2020.06.08.19.24.48; Mon, 08 Jun 2020 19:25:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726907AbgFICW7 (ORCPT + 99 others); Mon, 8 Jun 2020 22:22:59 -0400 Received: from szxga07-in.huawei.com ([45.249.212.35]:54714 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726749AbgFICW7 (ORCPT ); Mon, 8 Jun 2020 22:22:59 -0400 Received: from DGGEMS407-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 64ADC966C59515A7AA11; Tue, 9 Jun 2020 10:22:56 +0800 (CST) Received: from localhost (10.175.101.6) by DGGEMS407-HUB.china.huawei.com (10.3.19.207) with Microsoft SMTP Server id 14.3.487.0; Tue, 9 Jun 2020 10:22:51 +0800 From: Weilong Chen To: , , , CC: Subject: [PATCH linux-next] kernel/fork.c: annotate data races for copy_process Date: Tue, 9 Jun 2020 11:08:01 +0800 Message-ID: <20200609030801.272704-1-chenweilong@huawei.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.175.101.6] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The check is only there to stop root fork bombs. BUG: KCSAN: data-race in copy_process / copy_process write to 0xffffffff86f87d20 of 4 bytes by task 7121 on cpu 5: copy_process+0x2e1a/0x3af0 kernel/fork.c:2285 _do_fork+0xf7/0x790 kernel/fork.c:2430 __do_sys_clone+0xf9/0x130 kernel/fork.c:2585 __se_sys_clone kernel/fork.c:2566 [inline] __x64_sys_clone+0x6c/0x80 kernel/fork.c:2566 do_syscall_64+0xc7/0x3b0 arch/x86/entry/common.c:295 entry_SYSCALL_64_after_hwframe+0x44/0xa9 read to 0xffffffff86f87d20 of 4 bytes by task 7125 on cpu 3: copy_process+0x9eb/0x3af0 kernel/fork.c:1967 _do_fork+0xf7/0x790 kernel/fork.c:2430 __do_sys_clone+0xf9/0x130 kernel/fork.c:2585 __se_sys_clone kernel/fork.c:2566 [inline] __x64_sys_clone+0x6c/0x80 kernel/fork.c:2566 do_syscall_64+0xc7/0x3b0 arch/x86/entry/common.c:295 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Signed-off-by: Weilong Chen --- kernel/fork.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/fork.c b/kernel/fork.c index 142b23645d82..efc5493203ae 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1977,7 +1977,7 @@ static __latent_entropy struct task_struct *copy_process( * to stop root fork bombs. */ retval = -EAGAIN; - if (nr_threads >= max_threads) + if (data_race(nr_threads >= max_threads)) goto bad_fork_cleanup_count; delayacct_tsk_init(p); /* Must remain after dup_task_struct() */ -- 2.17.1