[PATCH v2] drm/amdgpu: Fix infinite loop in gfxhub_v1_2_xcc_gart_enable (v2)

Deucher, Alexander Alexander.Deucher at amd.com
Wed Jul 19 16:30:49 UTC 2023


[Public]

With the scripts/package/builddeb changes dropped, the patch is:
Acked-by: Alex Deucher <alexander.deucher at amd.com>
________________________________
From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> on behalf of Victor Lu <victorchengchi.lu at amd.com>
Sent: Wednesday, July 19, 2023 10:52 AM
To: amd-gfx at lists.freedesktop.org <amd-gfx at lists.freedesktop.org>
Cc: Skvortsov, Victor <Victor.Skvortsov at amd.com>; Zhou, Bob <Bob.Zhou at amd.com>; Lazar, Lijo <Lijo.Lazar at amd.com>; Lu, Victor Cheng Chi (Victor) <VictorChengChi.Lu at amd.com>
Subject: [PATCH v2] drm/amdgpu: Fix infinite loop in gfxhub_v1_2_xcc_gart_enable (v2)

An instance of for_each_inst() was not changed to match its new
behaviour and is causing a loop.

v2: remove tmp_mask variable

Fixes: 50c1d81d6365 ("drm/amdgpu: Modify for_each_inst macro")
Signed-off-by: Victor Lu <victorchengchi.lu at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c |  5 +-
 scripts/package/builddeb                 | 60 ++++++++++++------------
 2 files changed, 31 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c
index 47f95ec218a3..dbdee1a0aefe 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c
@@ -402,18 +402,15 @@ static void gfxhub_v1_2_xcc_program_invalidation(struct amdgpu_device *adev,
 static int gfxhub_v1_2_xcc_gart_enable(struct amdgpu_device *adev,
                                        uint32_t xcc_mask)
 {
-       uint32_t tmp_mask;
         int i;

-       tmp_mask = xcc_mask;
         /*
          * MC_VM_FB_LOCATION_BASE/TOP is NULL for VF, because they are
          * VF copy registers so vbios post doesn't program them, for
          * SRIOV driver need to program them
          */
         if (amdgpu_sriov_vf(adev)) {
-               for_each_inst(i, tmp_mask) {
-                       i = ffs(tmp_mask) - 1;
+               for_each_inst(i, xcc_mask) {
                         WREG32_SOC15_RLC(GC, GET_INST(GC, i), regMC_VM_FB_LOCATION_BASE,
                                      adev->gmc.vram_start >> 24);
                         WREG32_SOC15_RLC(GC, GET_INST(GC, i), regMC_VM_FB_LOCATION_TOP,
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 67cd420dcf89..c5508054bfc8 100755
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -164,23 +164,23 @@ if is_enabled CONFIG_MODULES; then
                 mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/"
                 rmdir "$tmpdir/lib/modules/$version"
         fi
-       if [ -n "$BUILD_DEBUG" ] ; then
-               for module in $(find $tmpdir/lib/modules/ -name *.ko -printf '%P\n'); do
-                       module=lib/modules/$module
-                       mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module)
-                       # only keep debug symbols in the debug file
-                       $OBJCOPY --only-keep-debug $tmpdir/$module $dbg_dir/usr/lib/debug/$module
-                       # strip original module from debug symbols
-                       $OBJCOPY --strip-debug $tmpdir/$module
-                       # then add a link to those
-                       $OBJCOPY --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $tmpdir/$module
-               done
-
-               # resign stripped modules
-               if is_enabled CONFIG_MODULE_SIG_ALL; then
-                       INSTALL_MOD_PATH="$tmpdir" $MAKE -f $srctree/Makefile modules_sign
-               fi
-       fi
+       #if [ -n "$BUILD_DEBUG" ] ; then
+       #       for module in $(find $tmpdir/lib/modules/ -name *.ko -printf '%P\n'); do
+       #               module=lib/modules/$module
+       #               mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module)
+       #               # only keep debug symbols in the debug file
+       #               $OBJCOPY --only-keep-debug $tmpdir/$module $dbg_dir/usr/lib/debug/$module
+       #               # strip original module from debug symbols
+       #               $OBJCOPY --strip-debug $tmpdir/$module
+       #               # then add a link to those
+       #               $OBJCOPY --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $tmpdir/$module
+       #       done
+
+       #       # resign stripped modules
+       #       if is_enabled CONFIG_MODULE_SIG_ALL; then
+       #               INSTALL_MOD_PATH="$tmpdir" $MAKE -f $srctree/Makefile modules_sign
+       #       fi
+       #fi
 fi

 # Install the maintainer scripts
@@ -220,18 +220,18 @@ fi

 create_package "$packagename" "$tmpdir"

-if [ -n "$BUILD_DEBUG" ] ; then
-       # Build debug package
-       # Different tools want the image in different locations
-       # perf
-       mkdir -p $dbg_dir/usr/lib/debug/lib/modules/$version/
-       cp vmlinux $dbg_dir/usr/lib/debug/lib/modules/$version/
-       # systemtap
-       mkdir -p $dbg_dir/usr/lib/debug/boot/
-       ln -s ../lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/boot/vmlinux-$version
-       # kdump-tools
-       ln -s lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/vmlinux-$version
-       create_package "$dbg_packagename" "$dbg_dir"
-fi
+#if [ -n "$BUILD_DEBUG" ] ; then
+#      # Build debug package
+#      # Different tools want the image in different locations
+#      # perf
+#      mkdir -p $dbg_dir/usr/lib/debug/lib/modules/$version/
+#      cp vmlinux $dbg_dir/usr/lib/debug/lib/modules/$version/
+#      # systemtap
+#      mkdir -p $dbg_dir/usr/lib/debug/boot/
+#      ln -s ../lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/boot/vmlinux-$version
+#      # kdump-tools
+#      ln -s lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/vmlinux-$version
+#      create_package "$dbg_packagename" "$dbg_dir"
+#fi

 exit 0
--
2.34.1

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20230719/3ad1ad17/attachment-0001.htm>


More information about the amd-gfx mailing list