drm/amdgpu: fix dereference before check
authorChristian König <christian.koenig@amd.com>
Mon, 11 May 2015 12:32:17 +0000 (14:32 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 4 Jun 2015 01:03:33 +0000 (21:03 -0400)
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Monk Liu <monk.liu@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c

index 66c66f83b40762e6d5cfabfa834c83a7c11259b4..74ed94ee7102fb8e77256e588b7801a1fa9d67ef 100644 (file)
@@ -138,9 +138,9 @@ void amdgpu_ib_free(struct amdgpu_device *adev, struct amdgpu_ib *ib)
 int amdgpu_ib_schedule(struct amdgpu_device *adev, unsigned num_ibs,
                       struct amdgpu_ib *ibs, void *owner)
 {
-       struct amdgpu_ring *ring;
-       struct amdgpu_vm *vm = ibs->vm;
        struct amdgpu_ib *ib = &ibs[0];
+       struct amdgpu_ring *ring;
+       struct amdgpu_vm *vm;
        unsigned i;
        int r = 0;
 
@@ -148,6 +148,8 @@ int amdgpu_ib_schedule(struct amdgpu_device *adev, unsigned num_ibs,
                return -EINVAL;
 
        ring = ibs->ring;
+       vm = ibs->vm;
+
        if (!ring->ready) {
                dev_err(adev->dev, "couldn't schedule ib\n");
                return -EINVAL;