Re: [PATCHv2 09/17] nvme: add Clang context annotations for nvme_subsystems_lock
From: Nilay Shroff
Date: Fri Jun 26 2026 - 11:01:19 EST
On 6/26/26 12:15 PM, Christoph Hellwig wrote:
Makes sense. Will add this helper macro in next patchset.-static LIST_HEAD(nvme_subsystems);
+static __guarded_by(&nvme_subsystems_lock) LIST_HEAD(nvme_subsystems);
Having the guard_by before the LIST_HEAD makes this a real mess to
read.
Can we add a
#define LIST_HEAD_GUARDED(_list, _lock) \
__guarded_by(_lock) LIST_HEAD(_list)
and use that instead? And maybe do these after the lock declaration.
While the compiler doesn't care, that's much easier to follow for
humans.
Maybe INIT_LIST_HEAD_UNSAFE() helper as I suggested in the earlier+ /*
+ * Initializing subsys->ctrls list doesn't need to be protected
+ * using @nvme_subsystems_lock. So suppress the Clang's warning
+ * declaring context_unsafe.
+ */
+ context_unsafe(INIT_LIST_HEAD(&subsys->ctrls));
This could also use a helper.
message ?
BTW, I think these helpers should be added in include/linux/list.h so
it will be helpful in general for other kernel code as well.
Thanks,
--Nilay