Hello Xiaogang Chen, Commit 8544374c0f82 ("drm/amdkfd: Have kfd driver use same PASID values from graphic driver") from Jan 13, 2025 (linux-next), leads to the following Smatch static checker warning:
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c:1694 kfd_process_device_init_vm() warn: missing error code 'ret' drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c 1647 int kfd_process_device_init_vm(struct kfd_process_device *pdd, 1648 struct file *drm_file) 1649 { 1650 struct amdgpu_fpriv *drv_priv; 1651 struct amdgpu_vm *avm; 1652 struct kfd_process *p; 1653 struct dma_fence *ef; 1654 struct kfd_node *dev; 1655 int ret; 1656 1657 if (!drm_file) 1658 return -EINVAL; 1659 1660 if (pdd->drm_priv) 1661 return -EBUSY; 1662 1663 ret = amdgpu_file_to_fpriv(drm_file, &drv_priv); 1664 if (ret) 1665 return ret; 1666 avm = &drv_priv->vm; 1667 1668 p = pdd->process; 1669 dev = pdd->dev; 1670 1671 ret = amdgpu_amdkfd_gpuvm_acquire_process_vm(dev->adev, avm, 1672 &p->kgd_process_info, 1673 p->ef ? NULL : &ef); 1674 if (ret) { 1675 dev_err(dev->adev->dev, "Failed to create process VM object\n"); 1676 return ret; 1677 } 1678 1679 if (!p->ef) 1680 RCU_INIT_POINTER(p->ef, ef); 1681 1682 pdd->drm_priv = drm_file->private_data; 1683 1684 ret = kfd_process_device_reserve_ib_mem(pdd); 1685 if (ret) 1686 goto err_reserve_ib_mem; 1687 ret = kfd_process_device_init_cwsr_dgpu(pdd); 1688 if (ret) 1689 goto err_init_cwsr; 1690 1691 if (unlikely(!avm->pasid)) { 1692 dev_warn(pdd->dev->adev->dev, "WARN: vm %p has no pasid associated", 1693 avm); --> 1694 goto err_get_pasid; ret = -EINVAL? 1695 } 1696 1697 pdd->pasid = avm->pasid; 1698 pdd->drm_file = drm_file; 1699 1700 return 0; 1701 1702 err_get_pasid: 1703 kfd_process_device_destroy_cwsr_dgpu(pdd); 1704 err_init_cwsr: 1705 kfd_process_device_destroy_ib_mem(pdd); 1706 err_reserve_ib_mem: 1707 pdd->drm_priv = NULL; 1708 amdgpu_amdkfd_gpuvm_destroy_cb(dev->adev, avm); 1709 1710 return ret; 1711 } regards, dan carpenter