On Wed, May 30, 2012 at 10:09 AM, <alexdeucher@xxxxxxxxx> wrote: > From: Alex Deucher <alexander.deucher@xxxxxxx> > > 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: Michael Burian <michael.burian@xxxxxx> > > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> Reviewed-by: Jerome Glisse <jglisse@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > --- > drivers/gpu/drm/radeon/radeon_cs.c | 31 +++++++++++++++++-------------- > 1 files changed, 17 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c > index 0137689..142f894 100644 > --- a/drivers/gpu/drm/radeon/radeon_cs.c > +++ b/drivers/gpu/drm/radeon/radeon_cs.c > @@ -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,22 +246,24 @@ int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data) > } > } > > - if ((p->cs_flags & RADEON_CS_USE_VM) && > - !p->rdev->vm_manager.enabled) { > - DRM_ERROR("VM not active on asic!\n"); > - return -EINVAL; > - } > - > - /* we only support VM on SI+ */ > - if ((p->rdev->family >= CHIP_TAHITI) && > - ((p->cs_flags & RADEON_CS_USE_VM) == 0)) { > - DRM_ERROR("VM required on SI+!\n"); > - return -EINVAL; > - } > + /* 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"); > + return -EINVAL; > + } > > - if (radeon_cs_get_ring(p, ring, priority)) > - return -EINVAL; > + /* we only support VM on SI+ */ > + if ((p->rdev->family >= CHIP_TAHITI) && > + ((p->cs_flags & RADEON_CS_USE_VM) == 0)) { > + DRM_ERROR("VM required on SI+!\n"); > + return -EINVAL; > + } > > + if (radeon_cs_get_ring(p, ring, priority)) > + return -EINVAL; > + } > > /* deal with non-vm */ > if ((p->chunk_ib_idx != -1) && > -- > 1.7.7.5 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel