avoid loosing return value from copyin, and properly return it.
authorchl <chl@openbsd.org>
Mon, 1 Sep 2008 19:18:30 +0000 (19:18 +0000)
committerchl <chl@openbsd.org>
Mon, 1 Sep 2008 19:18:30 +0000 (19:18 +0000)
initial patch from me, reworked by oga@.

found by LLVM/Clang Static Analyzer.

ok oga@

sys/dev/pci/drm/drm_drawable.c

index be4444b..4d6e192 100644 (file)
@@ -171,7 +171,7 @@ drm_update_draw(struct drm_device *dev, void *data, struct drm_file *file_priv)
                /* For some reason the pointer arg is unsigned long long. */
                ret = copyin((void *)(intptr_t)update->data, info->rects,
                    sizeof(*info->rects) * info->num_rects);
-               DRM_SPINUNLOCK(&dev->drw_lock);
+               break;
        default:
                ret =  EINVAL;
        }