From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from verein.lst.de (verein.lst.de [213.95.11.211]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3716132E12E for ; Fri, 26 Jun 2026 06:43:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.95.11.211 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782456220; cv=none; b=ZjQVlVHITkbGcbnV59KuZg2nogYtFHJ7NgLFNXnfetx3X0ZSNYkMgd5NIJWLwZI/3nJKcElBy/REI8eU/Gd4xQVGGfj+WSXWjYe9cK8fa1LlFIkRqCC79kUrRcz12iv8PaEHnU9kdo9E3bsqK9dvLR/S+OafybhzHKb/oDDyrbc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782456220; c=relaxed/simple; bh=OXJkeYh1+Hyce4WETwNP0giabetvAhyeOb8zNvVyS1M=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=U2Ym097hDWzTVPCqghkSrI2SmaiFnvEdPTnWwEpyIcYJHUM7rUX9Cg70FcuHzKc9lx03Vp+eNBPRDyukkjaRMj+Z2zm+olVDzDBMq3zTTOItLMNQPKl43X0hWo5zA2gb3n0rAAQwMWho9m3oqBJs4PRlzph7k9vcCRzwYVcq2Lw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=lst.de; spf=pass smtp.mailfrom=lst.de; arc=none smtp.client-ip=213.95.11.211 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=lst.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=lst.de Received: by verein.lst.de (Postfix, from userid 2407) id 5CB8468B05; Fri, 26 Jun 2026 08:43:35 +0200 (CEST) Date: Fri, 26 Jun 2026 08:43:35 +0200 From: Christoph Hellwig To: Nilay Shroff Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, hch@lst.de, kbusch@kernel.org, sagi@grimberg.me, axboe@fb.com, bvanassche@acm.org, elver@google.com, gjoyce@linux.ibm.com Subject: Re: [PATCHv2 07/17] nvme: add Clang context annotations for nvme_subsystem::lock Message-ID: <20260626064335.GG10731@lst.de> References: <20260614131541.2017845-1-nilay@linux.ibm.com> <20260614131541.2017845-8-nilay@linux.ibm.com> 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=us-ascii Content-Disposition: inline In-Reply-To: <20260614131541.2017845-8-nilay@linux.ibm.com> User-Agent: Mutt/1.5.17 (2007-11-01) > + scoped_guard(mutex_init, &subsys->lock) > + INIT_LIST_HEAD(&subsys->nsheads); Same init mess as a few patches earlier. > --- a/drivers/nvme/host/multipath.c > +++ b/drivers/nvme/host/multipath.c > @@ -719,7 +719,14 @@ int nvme_mpath_alloc_disk(struct nvme_ctrl *ctrl, struct nvme_ns_head *head) > INIT_WORK(&head->requeue_work, nvme_requeue_work); > INIT_WORK(&head->partition_scan_work, nvme_partition_scan_work); > INIT_DELAYED_WORK(&head->remove_work, nvme_remove_head_work); > - head->delayed_removal_secs = 0; > + /* > + * The namespace head is not yet visible to other threads, so > + * initializing delayed_removal_secs does not require holding > + * subsys->lock. So suppress Clang's context analyzer warning by > + * annotating initialization of delayed_removal_secs using > + * context_unsafe. > + */ > + context_unsafe(head->delayed_removal_secs = 0); head is a zeroed allocation, and we call nvme_mpath_alloc_disk exactly once on it. So we can just remove the initialization of delayed_removal_secs entirely here. > + struct list_head nsheads __guarded_by(&lock); > char subnqn[NVMF_NQN_SIZE]; > char serial[20]; > char model[40]; > @@ -562,7 +562,7 @@ struct nvme_ns_head { > struct mutex lock; > unsigned long flags; > struct delayed_work remove_work; > - unsigned int delayed_removal_secs; > + unsigned int delayed_removal_secs __guarded_by(&subsys->lock); Btw, I find throwing the __guarded_by at the end of the line really hard to read, especially with all these long lines. What about moving them to the next line with an extra tab indent instead?