From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from va-2-37.ptr.blmpb.com (va-2-37.ptr.blmpb.com [209.127.231.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ED320391E76 for ; Sat, 11 Jul 2026 10:56:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.127.231.37 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783767389; cv=none; b=tOL6JQvN3jgCTJJQeea49rcE+ABN+4fKKAN7tIjY6J4xhCOnUDyk/EWx4zTSB/IdyeJA51Y8hzb8IzBUnU6poBi1Q8Au9dqmEkDQ8pFWy8eVUThheiscdTgJiL5ZC5bEimcTSJIEHOgO7RA49lLVXZ9ZMO46I/FuZlXyq8klTyE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783767389; c=relaxed/simple; bh=AK+ACzT5VBcWQgKhvoERK4+tQo95s41v/e90QAoYcIM=; h=Mime-Version:Content-Type:In-Reply-To:Cc:From:Message-Id:Subject: Date:References:To; b=qmqP2r7ThnKWMxCU5lxdXY1QF9Y3t0u9DNmk23kH4YbENMohW/5HEVBmjzf2zudDyMd1ipgzD/WEfG1e6EqLPcBH1vEG/c5WjgOWdwWuv0HXefUOLkURSDDQSF9R7dRA3t+Wsb9Nj9bY1GgiIGzYU0hvEk3mDFpgnw8yg9vGISk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=fnnas.com; spf=pass smtp.mailfrom=fnnas.com; dkim=pass (2048-bit key) header.d=fnnas-com.20200927.dkim.feishu.cn header.i=@fnnas-com.20200927.dkim.feishu.cn header.b=1YmW9Hpf; arc=none smtp.client-ip=209.127.231.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=fnnas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fnnas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fnnas-com.20200927.dkim.feishu.cn header.i=@fnnas-com.20200927.dkim.feishu.cn header.b="1YmW9Hpf" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=s1; d=fnnas-com.20200927.dkim.feishu.cn; t=1783767374; h=from:subject:mime-version:from:date:message-id:subject:to:cc: reply-to:content-type:mime-version:in-reply-to:message-id; bh=f+q1M/OVRm/yFwpj4sF79wEdDC1fsuvgdteYp8P9T3E=; b=1YmW9HpfX6aqK2hSqiHiH9HlnvnRzV+4q38o3XNPHvdgS1FEMgmWHdcSUTd7A9JnZ01SgV Icg2ZBukN03USsd1EgsLdVFrlfL3zeJU1kVqM9JHyBQcjU+ueQWHTRXkkUwX4X4LhTGbx9 32iMsA2ha3uxpJppvWEhZSBdEvbUmMef+w9AUpkrf6iMnMis/MOMqXsNu+561Pz31QhItZ +CDBaPy0HM+A2zYXwCclwFjjyCTHEWjeRFMaKlS2Pb02yhLTUq8zD4i/m5SVQnBtW7dEbh NiKxKVeF3tyOFrmf5Luqbxo9UKlrWkAf1NwECt/YYtLURXrEJvo/wVC1lccpMw== Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 In-Reply-To: X-Lms-Return-Path: User-Agent: Mozilla Thunderbird Cc: X-Original-From: Chen Cheng From: "Chen Cheng" Message-Id: <2fcb6a64-25d7-4759-af6e-701a78f57e72@fnnas.com> Received: from [192.168.8.91] ([183.34.162.102]) by smtp.feishu.cn with ESMTPS; Sat, 11 Jul 2026 18:56:12 +0800 Content-Transfer-Encoding: quoted-printable Subject: Re: [PATCH] md: protect read mddev->recovery in md_sync_action() Date: Sat, 11 Jul 2026 18:56:10 +0800 References: <20260627102909.141036-1-chencheng@fnnas.com> To: "Abd-Alrhman Masalkhi" , "Chen Cheng" , , =E5=9C=A8 2026/6/27 19:25, Abd-Alrhman Masalkhi =E5=86=99=E9=81=93: >=20 > Hi Chen, >=20 > On Sat, Jun 27, 2026 at 18:52 +0800, Chen Cheng wrote: >> =E5=9C=A8 2026/6/27 18:46, Abd-Alrhman Masalkhi =E5=86=99=E9=81=93: >>> On Sat, Jun 27, 2026 at 18:29 +0800, Chen Cheng wrote: >>>> From: Chen Cheng >>>> >>>> md_sync_action() read mddev->recovery in lockless path, use READ_ONCE(= ) >>>> instead of u64 plain read. >>>> >>> unisgned long is not always u64... >>> I can not see what it fixes, is this just to silence KCSAN? If so, >>> please say so in the commit message. >> >> I need to find KCSAN report , I lost this one, but I think it's easy to >> find locklessly path to call md_sync_action(), so. READ_ONCE is need. >> > Thanks. Adding the KCSAN report would be helpful. >=20 hi Abd-Alrhman Uh... a apologize for my mislead . it's truelly report by review-bot ,=20 and after double check , I think it wouldn't be reproduce in my x86-64=20 machine , because 8B in x64-arch load is atomic +align.. thanks, cheng. >>> >>>> Fixes: e792a4c2156a3 ("md: add new helpers for sync_action") >>>> >>>> Signed-off-by: Chen Cheng >>>> --- >>>> drivers/md/md.c | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/drivers/md/md.c b/drivers/md/md.c >>>> index c5c50640b684..f4415c1a79d9 100644 >>>> --- a/drivers/md/md.c >>>> +++ b/drivers/md/md.c >>>> @@ -5074,11 +5074,11 @@ static enum sync_action md_get_active_sync_act= ion(struct mddev *mddev) >>>> return is_recover ? ACTION_RECOVER : ACTION_IDLE; >>>> } >>>> =20 >>>> enum sync_action md_sync_action(struct mddev *mddev) >>>> { >>>> - unsigned long recovery =3D mddev->recovery; >>>> + unsigned long recovery =3D READ_ONCE(mddev->recovery); >>>> enum sync_action active_action; >>>> =20 >>>> /* >>>> * frozen has the highest priority, means running sync_thread will= be >>>> * stopped immediately, and no new sync_thread can start. >>>> --=20 >>>> 2.54.0 >>>> >>> >> >