On Tue, 2023-06-27 at 12:50 +0300, kirill.shutemov@xxxxxxxxxxxxxxx wrote: > On Tue, Jun 27, 2023 at 02:12:37AM +1200, Kai Huang wrote: > > + /* > > + * The TDX module global initialization only needs to be done > > + * once on any cpu. > > + */ > > + raw_spin_lock_irqsave(&tdx_global_init_lock, flags); > > I don't understand how the comment justifies using raw spin lock. > This comment is for using lock in general. The reason to use raw_ version is because this function gets called in IRQ context, and for PREEMPT_RT kernel the normal spinlock is converted to sleeping lock. Dave suggested to comment on the function rather than comment on the raw_spin_lock directly, e.g., no other kernel code does that: https://lore.kernel.org/linux-mm/d2b3bc5e-1371-0c50-8ecb-64fc70917d42@xxxxxxxxx/ So I commented the function in this version: +/* + * Do the module global initialization if not done yet. + * It's always called with interrupts and preemption disabled. + */