enum amd_pm_state_type pm;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        enum amd_pm_state_type  state;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        if (strncmp("battery", buf, strlen("battery")) == 0)
                state = POWER_STATE_TYPE_BATTERY;
        else if (strncmp("balanced", buf, strlen("balanced")) == 0)
        enum amd_dpm_forced_level level = 0xff;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        enum amd_dpm_forced_level current_level = 0xff;
        int ret = 0;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        if (strncmp("low", buf, strlen("low")) == 0) {
                level = AMD_DPM_FORCED_LEVEL_LOW;
        } else if (strncmp("high", buf, strlen("high")) == 0) {
        struct pp_states_info data;
        int i, buf_len, ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        enum amd_pm_state_type pm = 0;
        int i = 0, ret = 0;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        struct drm_device *ddev = dev_get_drvdata(dev);
        struct amdgpu_device *adev = ddev->dev_private;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        if (adev->pp_force_state_enabled)
                return amdgpu_get_pp_cur_state(dev, attr, buf);
        else
        unsigned long idx;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        if (strlen(buf) == 1)
                adev->pp_force_state_enabled = false;
        else if (is_support_sw_smu(adev))
        char *table = NULL;
        int size, ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        struct amdgpu_device *adev = ddev->dev_private;
        int ret = 0;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        const char delimiter[3] = {' ', '\n', '\0'};
        uint32_t type;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        if (count > 127)
                return -EINVAL;
 
        ssize_t size;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        uint64_t featuremask;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = kstrtou64(buf, 0, &featuremask);
        if (ret)
                return -EINVAL;
        ssize_t size;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        ssize_t size;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        int ret;
        uint32_t mask = 0;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = amdgpu_read_mask(buf, count, &mask);
        if (ret)
                return ret;
        ssize_t size;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        uint32_t mask = 0;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = amdgpu_read_mask(buf, count, &mask);
        if (ret)
                return ret;
        ssize_t size;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        int ret;
        uint32_t mask = 0;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = amdgpu_read_mask(buf, count, &mask);
        if (ret)
                return ret;
        ssize_t size;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        int ret;
        uint32_t mask = 0;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = amdgpu_read_mask(buf, count, &mask);
        if (ret)
                return ret;
        ssize_t size;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        int ret;
        uint32_t mask = 0;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = amdgpu_read_mask(buf, count, &mask);
        if (ret)
                return ret;
        ssize_t size;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        int ret;
        uint32_t mask = 0;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = amdgpu_read_mask(buf, count, &mask);
        if (ret)
                return ret;
        uint32_t value = 0;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        int ret;
        long int value;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = kstrtol(buf, 0, &value);
 
        if (ret)
        uint32_t value = 0;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        int ret;
        long int value;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = kstrtol(buf, 0, &value);
 
        if (ret)
        ssize_t size;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(ddev->dev);
        if (ret < 0)
                return ret;
        long int profile_mode = 0;
        const char delimiter[3] = {' ', '\n', '\0'};
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        tmp[0] = *(buf);
        tmp[1] = '\0';
        ret = kstrtol(tmp, 0, &profile_mode);
        struct amdgpu_device *adev = ddev->dev_private;
        int r, value, size = sizeof(value);
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        r = pm_runtime_get_sync(ddev->dev);
        if (r < 0)
                return r;
        struct amdgpu_device *adev = ddev->dev_private;
        int r, value, size = sizeof(value);
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        r = pm_runtime_get_sync(ddev->dev);
        if (r < 0)
                return r;
        uint64_t count0 = 0, count1 = 0;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        if (adev->flags & AMD_IS_APU)
                return -ENODATA;
 
        struct drm_device *ddev = dev_get_drvdata(dev);
        struct amdgpu_device *adev = ddev->dev_private;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        if (adev->unique_id)
                return snprintf(buf, PAGE_SIZE, "%016llx\n", adev->unique_id);
 
        int channel = to_sensor_dev_attr(attr)->index;
        int r, temp = 0, size = sizeof(temp);
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        if (channel >= PP_TEMP_MAX)
                return -EINVAL;
 
        u32 pwm_mode = 0;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(adev->ddev->dev);
        if (ret < 0)
                return ret;
        int err, ret;
        int value;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        err = kstrtoint(buf, 10, &value);
        if (err)
                return err;
        u32 value;
        u32 pwm_mode;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        err = pm_runtime_get_sync(adev->ddev->dev);
        if (err < 0)
                return err;
        int err;
        u32 speed = 0;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        err = pm_runtime_get_sync(adev->ddev->dev);
        if (err < 0)
                return err;
        int err;
        u32 speed = 0;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        err = pm_runtime_get_sync(adev->ddev->dev);
        if (err < 0)
                return err;
        u32 size = sizeof(min_rpm);
        int r;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        r = pm_runtime_get_sync(adev->ddev->dev);
        if (r < 0)
                return r;
        u32 size = sizeof(max_rpm);
        int r;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        r = pm_runtime_get_sync(adev->ddev->dev);
        if (r < 0)
                return r;
        int err;
        u32 rpm = 0;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        err = pm_runtime_get_sync(adev->ddev->dev);
        if (err < 0)
                return err;
        u32 value;
        u32 pwm_mode;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        err = pm_runtime_get_sync(adev->ddev->dev);
        if (err < 0)
                return err;
        u32 pwm_mode = 0;
        int ret;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        ret = pm_runtime_get_sync(adev->ddev->dev);
        if (ret < 0)
                return ret;
        int value;
        u32 pwm_mode;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        err = kstrtoint(buf, 10, &value);
        if (err)
                return err;
        u32 vddgfx;
        int r, size = sizeof(vddgfx);
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        r = pm_runtime_get_sync(adev->ddev->dev);
        if (r < 0)
                return r;
        u32 vddnb;
        int r, size = sizeof(vddnb);
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        /* only APUs have vddnb */
        if  (!(adev->flags & AMD_IS_APU))
                return -EINVAL;
        int r, size = sizeof(u32);
        unsigned uw;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        r = pm_runtime_get_sync(adev->ddev->dev);
        if (r < 0)
                return r;
        ssize_t size;
        int r;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        r = pm_runtime_get_sync(adev->ddev->dev);
        if (r < 0)
                return r;
        ssize_t size;
        int r;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        r = pm_runtime_get_sync(adev->ddev->dev);
        if (r < 0)
                return r;
        int err;
        u32 value;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        if (amdgpu_sriov_vf(adev))
                return -EINVAL;
 
        uint32_t sclk;
        int r, size = sizeof(sclk);
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        r = pm_runtime_get_sync(adev->ddev->dev);
        if (r < 0)
                return r;
        uint32_t mclk;
        int r, size = sizeof(mclk);
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        r = pm_runtime_get_sync(adev->ddev->dev);
        if (r < 0)
                return r;
        u32 flags = 0;
        int r;
 
+       if (adev->in_gpu_reset)
+               return -EPERM;
+
        r = pm_runtime_get_sync(dev->dev);
        if (r < 0)
                return r;