Hello Himal Prasad Ghimiray, Commit 09ba0a8f06cd ("drm/xe/svm: Implement prefetch support for SVM ranges") from May 13, 2025 (linux-next), leads to the following Smatch static checker warning:
drivers/gpu/drm/xe/xe_vm.c:2922 prefetch_ranges() warn: passing positive error code 's32min-(-96),(-94)-(-15),(-13)-(-12),(-10)-(-2),1' to 'ERR_PTR' drivers/gpu/drm/xe/xe_vm.c 2917 2918 err = xe_svm_range_get_pages(vm, svm_range, &ctx); 2919 if (err) { 2920 if (err == -EOPNOTSUPP || err == -EFAULT || err == -EPERM) 2921 err = -ENODATA; --> 2922 drm_dbg(&vm->xe->drm, "Get pages failed, asid=%u, gpusvm=%p, errno=%pe\n", 2923 vm->usm.asid, &vm->svm.gpusvm, ERR_PTR(err)); The comments on walk_page_range() say it can return > 0 on success but the comments on hmm_range_fault() say it can never return > 0. Smatch does a naive reading of the code and thinks that it can return > 0. Presumably the comments are correct but the code is too tricky for me. I can easily silence this in Smatch by adding deleting the positive returns from hmm_range_fault() from the cross function DB. Can someone confirm that's the correct thing to do? 2924 return err; 2925 } 2926 xe_svm_range_debug(svm_range, "PREFETCH - RANGE GET PAGES DONE"); 2927 } 2928 2929 return err; 2930 } regards, dan carpenter