ac: Don't negate strstr return values in ac_query_gpu_info
authorMichel Dänzer <mdaenzer@redhat.com>
Wed, 18 Nov 2020 16:54:19 +0000 (17:54 +0100)
committerMarge Bot <eric+marge@anholt.net>
Thu, 19 Nov 2020 09:17:21 +0000 (09:17 +0000)
strstr returns a pointer to the needle sub-string within the haystack
string if the latter contains the former, or NULL otherwise. So this
essentially always set info->is_pro_graphics = true, since probably no
marketing name ever contains all of these sub-strings.

Fixes: b635dff25620 "ac: fix detection of Pro graphics"
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7675>

src/amd/common/ac_gpu_info.c

index 75f3a46..dd52f38 100644 (file)
@@ -468,9 +468,9 @@ bool ac_query_gpu_info(int fd, void *dev_p, struct radeon_info *info,
    info->family_id = amdinfo->family_id;
    info->chip_external_rev = amdinfo->chip_external_rev;
    info->marketing_name = amdgpu_get_marketing_name(dev);
-   info->is_pro_graphics = info->marketing_name && (!strstr(info->marketing_name, "Pro") ||
-                                                    !strstr(info->marketing_name, "PRO") ||
-                                                    !strstr(info->marketing_name, "Frontier"));
+   info->is_pro_graphics = info->marketing_name && (strstr(info->marketing_name, "Pro") ||
+                                                    strstr(info->marketing_name, "PRO") ||
+                                                    strstr(info->marketing_name, "Frontier"));
 
    /* Set which chips have dedicated VRAM. */
    info->has_dedicated_vram = !(amdinfo->ids_flags & AMDGPU_IDS_FLAGS_FUSION);