.. | .. |
---|
168 | 168 | struct rb_node rb_hole_addr; |
---|
169 | 169 | u64 __subtree_last; |
---|
170 | 170 | 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 |
---|
173 | 175 | #ifdef CONFIG_DRM_DEBUG_MM |
---|
174 | 176 | depot_stack_handle_t stack; |
---|
175 | 177 | #endif |
---|
.. | .. |
---|
253 | 255 | */ |
---|
254 | 256 | static inline bool drm_mm_node_allocated(const struct drm_mm_node *node) |
---|
255 | 257 | { |
---|
256 | | - return node->allocated; |
---|
| 258 | + return test_bit(DRM_MM_NODE_ALLOCATED_BIT, &node->flags); |
---|
257 | 259 | } |
---|
258 | 260 | |
---|
259 | 261 | /** |
---|
.. | .. |
---|
271 | 273 | */ |
---|
272 | 274 | static inline bool drm_mm_initialized(const struct drm_mm *mm) |
---|
273 | 275 | { |
---|
274 | | - return mm->hole_stack.next; |
---|
| 276 | + return READ_ONCE(mm->hole_stack.next); |
---|
275 | 277 | } |
---|
276 | 278 | |
---|
277 | 279 | /** |
---|
.. | .. |
---|
336 | 338 | |
---|
337 | 339 | /** |
---|
338 | 340 | * 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 |
---|
340 | 342 | * |
---|
341 | 343 | * As the drm_mm range manager hides its node_list deep with its |
---|
342 | 344 | * structure, extracting it looks painful and repetitive. This is |
---|