intel/aux_map: Convert l1_entry_addr_out to canonical
authorJosé Roberto de Souza <jose.souza@intel.com>
Mon, 10 Jul 2023 17:42:43 +0000 (10:42 -0700)
committerMarge Bot <emma+marge@anholt.net>
Wed, 19 Jul 2023 16:53:59 +0000 (16:53 +0000)
The expression 'l1_gpu_addr + l1_index * sizeof(*l1_map)' could cause
bit 47 to be set so it needs to be converted to canonical.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24077>

src/intel/common/intel_aux_map.c

index b023ce0..b302d90 100644 (file)
@@ -532,7 +532,7 @@ get_aux_entry(struct intel_aux_map_context *ctx, uint64_t main_address,
    if (l1_index_out)
       *l1_index_out = l1_index;
    if (l1_entry_addr_out)
-      *l1_entry_addr_out = l1_addr + l1_index * sizeof(*l1_map);
+      *l1_entry_addr_out = intel_canonical_address(l1_addr + l1_index * sizeof(*l1_map));
    if (l1_entry_map_out)
       *l1_entry_map_out = &l1_map[l1_index];
 }