[PATCH v3 2/2] mm/mm_slot.h: add comments for mm_slot_lookup/insert
From: xu.xin16
Date: Mon Jul 13 2026 - 21:28:26 EST
From: xu xin <xu.xin16@xxxxxxxxxx>
mm_slot_lookup() and mm_slot_insert() are the only helpers in
this header that are implemented as macros rather than static inline
functions. This may look inconsistent without explanation.
Explain they must be macros because hash_for_each_possible()
needs the table as an array (for sizeof), not a pointer.
Signed-off-by: xu xin <xu.xin16@xxxxxxxxxx>
---
mm/mm_slot.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/mm/mm_slot.h b/mm/mm_slot.h
index 5de3e91d86b4..9b09b68e5742 100644
--- a/mm/mm_slot.h
+++ b/mm/mm_slot.h
@@ -33,6 +33,12 @@ static inline void mm_slot_free(struct kmem_cache *cache, void *objp)
kmem_cache_free(cache, objp);
}
+/*
+ * Note: mm_slot_lookup and mm_slot_insert cannot be converted to static inline
+ * functions because the hash helpers (hash_for_each_possible and hash_add) rely
+ * on the actual array argument 'hashtable' for sizeof() instead of pointers.
+ */
+
#define mm_slot_lookup(_hashtable, _mm) \
({ \
struct mm_slot *tmp_slot, *mm_slot = NULL; \
--
2.25.1