hc
2024-05-10 10ebd8556b7990499c896a550e3d416b444211e6
kernel/include/drm/drm_mm.h
....@@ -168,8 +168,10 @@
168168 struct rb_node rb_hole_addr;
169169 u64 __subtree_last;
170170 u64 hole_size;
171
- bool allocated : 1;
172
- bool scanned_block : 1;
171
+ u64 subtree_max_hole;
172
+ unsigned long flags;
173
+#define DRM_MM_NODE_ALLOCATED_BIT 0
174
+#define DRM_MM_NODE_SCANNED_BIT 1
173175 #ifdef CONFIG_DRM_DEBUG_MM
174176 depot_stack_handle_t stack;
175177 #endif
....@@ -253,7 +255,7 @@
253255 */
254256 static inline bool drm_mm_node_allocated(const struct drm_mm_node *node)
255257 {
256
- return node->allocated;
258
+ return test_bit(DRM_MM_NODE_ALLOCATED_BIT, &node->flags);
257259 }
258260
259261 /**
....@@ -271,7 +273,7 @@
271273 */
272274 static inline bool drm_mm_initialized(const struct drm_mm *mm)
273275 {
274
- return mm->hole_stack.next;
276
+ return READ_ONCE(mm->hole_stack.next);
275277 }
276278
277279 /**
....@@ -336,7 +338,7 @@
336338
337339 /**
338340 * drm_mm_nodes - list of nodes under the drm_mm range manager
339
- * @mm: the struct drm_mm range manger
341
+ * @mm: the struct drm_mm range manager
340342 *
341343 * As the drm_mm range manager hides its node_list deep with its
342344 * structure, extracting it looks painful and repetitive. This is