Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9b00147d authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie
Browse files

drm/radeon: fix regression in UMS CS ioctl



radeon_cs_parser_init is called by both the legacy UMS
CS ioctl and the KMS CS ioctl.  Protect KMS specific
pieces of the code by checking that rdev is not NULL.

Reported-by: default avatarMichael Burian <michael.burian@sbg.at>

Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Reviewed-by: default avatarJerome Glisse <jglisse@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 0824db38
Loading
Loading
Loading
Loading
+17 −14
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@ static int radeon_cs_sync_rings(struct radeon_cs_parser *p)
					   sync_to_ring, p->ring);
}

/* XXX: note that this is called from the legacy UMS CS ioctl as well */
int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data)
{
	struct drm_radeon_cs *cs = data;
@@ -245,6 +246,8 @@ int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data)
		}
	}

	/* these are KMS only */
	if (p->rdev) {
		if ((p->cs_flags & RADEON_CS_USE_VM) &&
		    !p->rdev->vm_manager.enabled) {
			DRM_ERROR("VM not active on asic!\n");
@@ -260,7 +263,7 @@ int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data)

		if (radeon_cs_get_ring(p, ring, priority))
			return -EINVAL;

	}

	/* deal with non-vm */
	if ((p->chunk_ib_idx != -1) &&