From: kernel test robot <lkp@intel.com>
To: "Pierre-Eric Pelloux-Prayer" <pierre-eric.pelloux-prayer@amd.com>,
"Alex Deucher" <alexander.deucher@amd.com>,
"Christian König" <christian.koenig@amd.com>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Felix Kuehling" <Felix.Kuehling@amd.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>,
amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 4/5] drm/amdgpu: add wedge event implementation
Date: Thu, 5 Nov 2026 12:39:45 +0800 [thread overview]
Message-ID: <202611051237.oXlTZ7GB-lkp@intel.com> (raw)
In-Reply-To: <20261029152000.22001-4-pierre-eric.pelloux-prayer@amd.com>
Hi Pierre-Eric,
kernel test robot noticed the following build errors:
[auto build test ERROR on next-20261028]
[cannot apply to drm-misc/drm-misc-next linus/master v7.3 v7.3-rc7 v7.3-rc6 v7.3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Pierre-Eric-Pelloux-Prayer/drm-amdgpu-add-gpu_recovery_enabled-flag-to-amdgpu_device/20261029-161949
base: next-20261028
patch link: https://lore.kernel.org/r/20261029152000.22001-4-pierre-eric.pelloux-prayer%40amd.com
patch subject: [PATCH v3 4/5] drm/amdgpu: add wedge event implementation
config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20261105/202611051237.oXlTZ7GB-lkp@intel.com/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261105/202611051237.oXlTZ7GB-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202611051237.oXlTZ7GB-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:956:3: error: cannot jump from this goto statement to its label
956 | goto error_put_gobj;
| ^
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:959:54: note: jump bypasses initialization of variable with __attribute__((cleanup))
959 | PM_RUNTIME_ACQUIRE_IF_ENABLED_AUTOSUSPEND(dev->dev, lock);
| ^
1 error generated.
vim +956 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
869
870 int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,
871 struct drm_file *filp)
872 {
873 const uint32_t valid_flags = AMDGPU_VM_DELAY_UPDATE |
874 AMDGPU_VM_PAGE_READABLE | AMDGPU_VM_PAGE_WRITEABLE |
875 AMDGPU_VM_PAGE_EXECUTABLE | AMDGPU_VM_MTYPE_MASK |
876 AMDGPU_VM_PAGE_NOALLOC;
877 const uint32_t prt_flags = AMDGPU_VM_DELAY_UPDATE |
878 AMDGPU_VM_PAGE_PRT;
879
880 struct drm_amdgpu_gem_va *args = data;
881 struct drm_gem_object *gobj;
882 struct amdgpu_device *adev = drm_to_adev(dev);
883 struct amdgpu_fpriv *fpriv = filp->driver_priv;
884 struct amdgpu_bo *abo;
885 struct amdgpu_bo_va *bo_va;
886 struct drm_syncobj *timeline_syncobj = NULL;
887 struct dma_fence_chain *timeline_chain = NULL;
888 struct drm_exec exec;
889 uint64_t vm_size, tmp;
890 int r = 0;
891
892 /* Validate virtual address range against reserved regions. */
893 if (args->va_address < AMDGPU_VA_RESERVED_BOTTOM) {
894 dev_dbg(dev->dev,
895 "va_address 0x%llx is in reserved area 0x%llx\n",
896 args->va_address, AMDGPU_VA_RESERVED_BOTTOM);
897 return -EINVAL;
898 }
899
900 if (args->va_address >= AMDGPU_GMC_HOLE_START &&
901 args->va_address < AMDGPU_GMC_HOLE_END) {
902 dev_dbg(dev->dev,
903 "va_address 0x%llx is in VA hole 0x%llx-0x%llx\n",
904 args->va_address, AMDGPU_GMC_HOLE_START,
905 AMDGPU_GMC_HOLE_END);
906 return -EINVAL;
907 }
908
909 args->va_address &= AMDGPU_GMC_HOLE_MASK;
910
911 vm_size = adev->vm_manager.max_pfn * AMDGPU_GPU_PAGE_SIZE;
912 vm_size -= AMDGPU_VA_RESERVED_TOP;
913 if (check_add_overflow(args->va_address, args->map_size, &tmp) || tmp > vm_size) {
914 dev_dbg(dev->dev,
915 "va_address 0x%llx is in top reserved area 0x%llx\n",
916 args->va_address + args->map_size, vm_size);
917 return -EINVAL;
918 }
919
920 if ((args->flags & ~valid_flags) && (args->flags & ~prt_flags)) {
921 dev_dbg(dev->dev, "invalid flags combination 0x%08X\n",
922 args->flags);
923 return -EINVAL;
924 }
925
926 /* Validate operation type. */
927 switch (args->operation) {
928 case AMDGPU_VA_OP_MAP:
929 case AMDGPU_VA_OP_UNMAP:
930 case AMDGPU_VA_OP_CLEAR:
931 case AMDGPU_VA_OP_REPLACE:
932 break;
933 default:
934 dev_dbg(dev->dev, "unsupported operation %d\n",
935 args->operation);
936 return -EINVAL;
937 }
938
939 if (args->flags & AMDGPU_VM_DELAY_UPDATE &&
940 args->vm_timeline_syncobj_out)
941 return -EINVAL;
942
943 if ((args->operation != AMDGPU_VA_OP_CLEAR) &&
944 !(args->flags & AMDGPU_VM_PAGE_PRT)) {
945 gobj = drm_gem_object_lookup(filp, args->handle);
946 if (gobj == NULL)
947 return -ENOENT;
948 abo = gem_to_amdgpu_bo(gobj);
949 } else {
950 gobj = NULL;
951 abo = NULL;
952 }
953
954 if (amdgpu_device_is_wedged(adev)) {
955 r = -ENODEV;
> 956 goto error_put_gobj;
957 }
958
959 PM_RUNTIME_ACQUIRE_IF_ENABLED_AUTOSUSPEND(dev->dev, lock);
960
961 r = PM_RUNTIME_ACQUIRE_ERR(&lock);
962 if (r)
963 goto error_put_gobj;
964
965 /* Add input syncobj fences (if any) for synchronization. */
966 r = amdgpu_gem_add_input_fence(filp,
967 args->input_fence_syncobj_handles,
968 args->num_syncobj_handles);
969 if (r)
970 goto error_put_gobj;
971
972 drm_exec_init(&exec, DRM_EXEC_INTERRUPTIBLE_WAIT |
973 DRM_EXEC_IGNORE_DUPLICATES, 0);
974 drm_exec_until_all_locked(&exec) {
975 if (gobj) {
976 r = drm_exec_lock_obj(&exec, gobj);
977 drm_exec_retry_on_contention(&exec);
978 if (unlikely(r))
979 goto error;
980 }
981
982 r = amdgpu_vm_lock_pd(&fpriv->vm, &exec, 2);
983 drm_exec_retry_on_contention(&exec);
984 if (unlikely(r))
985 goto error;
986 }
987
988 /* Resolve the BO-VA mapping for this VM/BO combination. */
989 if (abo) {
990 bo_va = amdgpu_vm_bo_find(&fpriv->vm, abo);
991 if (!bo_va) {
992 r = -ENOENT;
993 goto error;
994 }
995 } else if (args->operation != AMDGPU_VA_OP_CLEAR) {
996 bo_va = fpriv->prt_va;
997 } else {
998 bo_va = NULL;
999 }
1000
1001 /*
1002 * Prepare the timeline syncobj node if the user requested a VM
1003 * timeline update. This only allocates/looks up the syncobj and
1004 * chain node; the actual fence is attached later.
1005 */
1006 r = amdgpu_gem_update_timeline_node(filp,
1007 args->vm_timeline_syncobj_out,
1008 args->vm_timeline_point,
1009 &timeline_syncobj,
1010 &timeline_chain);
1011 if (r)
1012 goto error;
1013
1014 switch (args->operation) {
1015 case AMDGPU_VA_OP_MAP:
1016 r = amdgpu_vm_bo_map(adev, bo_va, args->va_address,
1017 args->offset_in_bo, args->map_size,
1018 args->flags);
1019 break;
1020 case AMDGPU_VA_OP_UNMAP:
1021 r = amdgpu_vm_bo_unmap(adev, bo_va, args->va_address);
1022 break;
1023
1024 case AMDGPU_VA_OP_CLEAR:
1025 r = amdgpu_vm_bo_clear_mappings(adev, &fpriv->vm,
1026 args->va_address,
1027 args->map_size);
1028 break;
1029 case AMDGPU_VA_OP_REPLACE:
1030 r = amdgpu_vm_bo_replace_map(adev, bo_va, args->va_address,
1031 args->offset_in_bo, args->map_size,
1032 args->flags);
1033 break;
1034 default:
1035 break;
1036 }
1037
1038 /*
1039 * Once the VA operation is done, update the VM and obtain the fence
1040 * that represents the last relevant update for this mapping. This
1041 * fence can then be exported to the user-visible VM timeline.
1042 */
1043 if (!r && !(args->flags & AMDGPU_VM_DELAY_UPDATE) &&
1044 (!adev->debug_vm || timeline_syncobj)) {
1045 struct dma_fence *fence;
1046
1047 fence = amdgpu_gem_va_update_vm(adev, &fpriv->vm, bo_va,
1048 args->operation);
1049 if (timeline_syncobj) {
1050 if (!args->vm_timeline_point) {
1051 /* Replace the existing fence when no point is given. */
1052 drm_syncobj_replace_fence(timeline_syncobj,
1053 fence);
1054 } else {
1055 /* Attach the last-update fence at a specific point. */
1056 drm_syncobj_add_point(timeline_syncobj,
1057 timeline_chain,
1058 fence,
1059 args->vm_timeline_point);
1060 timeline_chain = NULL;
1061 }
1062 }
1063 dma_fence_put(fence);
1064
1065 }
1066
1067 error:
1068 dma_fence_chain_free(timeline_chain);
1069 if (timeline_syncobj)
1070 drm_syncobj_put(timeline_syncobj);
1071 drm_exec_fini(&exec);
1072 error_put_gobj:
1073 drm_gem_object_put(gobj);
1074 return r;
1075 }
1076
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2026-11-05 4:39 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-29 15:19 [PATCH v3 1/5] drm/amdgpu: fix NULL deref in error path Pierre-Eric Pelloux-Prayer
2026-10-29 15:19 ` [PATCH v3 2/5] drm/amdgpu: add gpu_recovery_enabled flag to amdgpu_device Pierre-Eric Pelloux-Prayer
2026-11-02 15:21 ` Christian König
2026-10-29 15:19 ` [PATCH v3 3/5] drm/amdgpu: honor gpu_recovery_enabled in amdgpu_job_timedout Pierre-Eric Pelloux-Prayer
2026-10-29 15:19 ` [PATCH v3 4/5] drm/amdgpu: add wedge event implementation Pierre-Eric Pelloux-Prayer
2026-11-02 15:44 ` Christian König
2026-11-02 16:44 ` Pierre-Eric Pelloux-Prayer
2026-11-02 17:04 ` Christian König
2026-11-05 4:39 ` kernel test robot [this message]
2026-10-29 15:19 ` [PATCH v3 5/5] drm/amdgpu: introduce amdgpu_dev_enter / exit Pierre-Eric Pelloux-Prayer
2026-11-02 15:46 ` Christian König
2026-10-30 9:32 ` [PATCH v3 1/5] drm/amdgpu: fix NULL deref in error path Christian König
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202611051237.oXlTZ7GB-lkp@intel.com \
--to=lkp@intel.com \
--cc=Felix.Kuehling@amd.com \
--cc=airlied@gmail.com \
--cc=alexander.deucher@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=christian.koenig@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pierre-eric.pelloux-prayer@amd.com \
--cc=simona@ffwll.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®