i965/drm: Use list_for_each_entry_safe in a couple of cases.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 5 Apr 2017 21:10:36 +0000 (14:10 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 10 Apr 2017 21:33:12 +0000 (14:33 -0700)
Suggested by Chris Wilson.  A tiny bit simpler.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
src/mesa/drivers/dri/i965/brw_bufmgr.c

index 08634468256b18d79369ca90601ca20366d633df..b12cd3acfc386028267bb795fd9a9b02c600345c 100644 (file)
@@ -236,10 +236,7 @@ static void
 brw_bo_cache_purge_bucket(struct brw_bufmgr *bufmgr,
                           struct bo_cache_bucket *bucket)
 {
-   while (!list_empty(&bucket->head)) {
-      struct brw_bo *bo;
-
-      bo = LIST_ENTRY(struct brw_bo, bucket->head.next, head);
+   list_for_each_entry_safe(struct brw_bo, bo, &bucket->head, head) {
       if (brw_bo_madvise(bo, I915_MADV_DONTNEED))
          break;
 
@@ -596,10 +593,7 @@ cleanup_bo_cache(struct brw_bufmgr *bufmgr, time_t time)
    for (i = 0; i < bufmgr->num_buckets; i++) {
       struct bo_cache_bucket *bucket = &bufmgr->cache_bucket[i];
 
-      while (!list_empty(&bucket->head)) {
-         struct brw_bo *bo;
-
-         bo = LIST_ENTRY(struct brw_bo, bucket->head.next, head);
+      list_for_each_entry_safe(struct brw_bo, bo, &bucket->head, head) {
          if (time - bo->free_time <= 1)
             break;
 
@@ -1096,10 +1090,8 @@ brw_bufmgr_destroy(struct brw_bufmgr *bufmgr)
    /* Free any cached buffer objects we were going to reuse */
    for (int i = 0; i < bufmgr->num_buckets; i++) {
       struct bo_cache_bucket *bucket = &bufmgr->cache_bucket[i];
-      struct brw_bo *bo;
 
-      while (!list_empty(&bucket->head)) {
-         bo = LIST_ENTRY(struct brw_bo, bucket->head.next, head);
+      list_for_each_entry_safe(struct brw_bo, bo, &bucket->head, head) {
          list_del(&bo->head);
 
          bo_free(bo);