int amdgpu_xgmi_set_pstate(struct amdgpu_device *adev, int pstate)
 {
        int ret = 0;
-       struct amdgpu_hive_info *hive = amdgpu_get_xgmi_hive(adev);
-       struct amdgpu_device *request_adev = hive->hi_req_gpu ?
-                                               hive->hi_req_gpu : adev;
+       struct amdgpu_hive_info *hive;
+       struct amdgpu_device *request_adev;
        bool is_hi_req = pstate == AMDGPU_XGMI_PSTATE_MAX_VEGA20;
-       bool init_low = hive->pstate == AMDGPU_XGMI_PSTATE_UNKNOWN;
+       bool init_low;
+
+       hive = amdgpu_get_xgmi_hive(adev);
+       if (!hive)
+               return 0;
 
+       request_adev = hive->hi_req_gpu ? hive->hi_req_gpu : adev;
+       init_low = hive->pstate == AMDGPU_XGMI_PSTATE_UNKNOWN;
        amdgpu_put_xgmi_hive(hive);
        /* fw bug so temporarily disable pstate switching */
        return 0;