c
static __always_inline void maybe_wipe_obj_freeptr(struct kmem_cache *s,
						   void *obj)
{
+	unsigned long flags;

	if (unlikely(slab_want_init_on_free(s)) && obj) {
+		spin_lock_irqsave(&s->spinlock, flags); // Acquire lock
		memset((void *)((char *)kasan_reset_tag(obj) + s->offset),
			0, sizeof(void *));
+		spin_unlock_irqrestore(&s->spinlock, flags); // Release lock
	}
}
