static int
 nouveau_do_resume(struct drm_device *dev, bool runtime)
 {
+       int ret = 0;
        struct nouveau_drm *drm = nouveau_drm(dev);
 
        NV_DEBUG(drm, "resuming object tree...\n");
-       nvif_client_resume(&drm->master.base);
+       ret = nvif_client_resume(&drm->master.base);
+       if (ret) {
+               NV_ERROR(drm, "Client resume failed with error: %d\n", ret);
+               return ret;
+       }
 
        NV_DEBUG(drm, "resuming fence...\n");
        if (drm->fence && nouveau_fence(drm)->resume)
 {
        struct pci_dev *pdev = to_pci_dev(dev);
        struct drm_device *drm_dev = pci_get_drvdata(pdev);
+       struct nouveau_drm *drm = nouveau_drm(drm_dev);
        struct nvif_device *device = &nouveau_drm(drm_dev)->client.device;
        int ret;
 
        pci_set_master(pdev);
 
        ret = nouveau_do_resume(drm_dev, true);
+       if (ret) {
+               NV_ERROR(drm, "resume failed with: %d\n", ret);
+               return ret;
+       }
 
        /* do magic */
        nvif_mask(&device->object, 0x088488, (1 << 25), (1 << 25));