Mesa (staging/21.1): util: Zero out all of mask in util_set_thread_affinity

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 16 06:40:59 UTC 2021


Module: Mesa
Branch: staging/21.1
Commit: 61d145ba7902eea282cf1c76f910693f987f2d34
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=61d145ba7902eea282cf1c76f910693f987f2d34

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Tue Jun  8 15:08:50 2021 -0700

util: Zero out all of mask in util_set_thread_affinity

memset operates in bytes, and there are 8-bits in a byte.  This is a
very easy to miss typo. :(

Fixes: 9758b1d416a1 ("util: add util_set_thread_affinity helpers including Windows support")

Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11228>
(cherry picked from commit a923e95b10152726a3cdf4bdbc35690425ce9bc3)

---

 .pick_status.json   | 2 +-
 src/util/u_thread.h | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 69f9de36091..edf6148018e 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -652,7 +652,7 @@
         "description": "util: Zero out all of mask in util_set_thread_affinity",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "9758b1d416a109f92e911d7bac6f00f9419affab"
     },
diff --git a/src/util/u_thread.h b/src/util/u_thread.h
index 8366bfb6d49..a4c73cce884 100644
--- a/src/util/u_thread.h
+++ b/src/util/u_thread.h
@@ -142,7 +142,7 @@ util_set_thread_affinity(thrd_t thread,
       if (pthread_getaffinity_np(thread, sizeof(cpuset), &cpuset) != 0)
          return false;
 
-      memset(old_mask, 0, num_mask_bits / 32);
+      memset(old_mask, 0, num_mask_bits / 8);
       for (unsigned i = 0; i < num_mask_bits && i < CPU_SETSIZE; i++) {
          if (CPU_ISSET(i, &cpuset))
             old_mask[i / 32] |= 1u << (i % 32);
@@ -167,7 +167,7 @@ util_set_thread_affinity(thrd_t thread,
       return false;
 
    if (old_mask) {
-      memset(old_mask, 0, num_mask_bits / 32);
+      memset(old_mask, 0, num_mask_bits / 8);
 
       old_mask[0] = m;
 #ifdef _WIN64



More information about the mesa-commit mailing list