On Thu, 07 Jun 2012, Daniel Vetter <daniel.vetter at ffwll.ch> wrote: > We need it for all things ums (which essentially only means up to > gen5) and to support b0rked XvMC userspace on gen3. > > Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch> > --- > drivers/gpu/drm/i915/i915_dma.c | 21 ++++++++++++--------- > 1 files changed, 12 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c > index e4203df..0ab5d3d 100644 > --- a/drivers/gpu/drm/i915/i915_dma.c > +++ b/drivers/gpu/drm/i915/i915_dma.c > @@ -1422,15 +1422,6 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) > int ret = 0, mmio_bar; > uint32_t aperture_size; > > - ret = drm_pci_agp_init(dev); > - if (ret) > - return ret; > - > - if (!dev->agp) { > - DRM_ERROR("Cannot initialize the agpgart module.\n"); > - return -EINVAL; > - } > - > info = (struct intel_device_info *) flags; > > /* Refuse to load on gen6+ without kms enabled. */ > @@ -1453,6 +1444,18 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) > dev_priv->dev = dev; > dev_priv->info = info; > > + if (!drm_core_check_feature(dev, DRIVER_MODESET) || > + IS_GEN3(dev)) { > + ret = drm_pci_agp_init(dev); > + if (ret) > + return ret; > + > + if (!dev->agp) { > + DRM_ERROR("Cannot initialize the agpgart module.\n"); > + return -EINVAL; > + } You need to goto free_priv in the above error paths. Should there be a deinit of drm_pci_agp_init() if something goes wrong afterwards? BR, Jani. > + } > + > if (i915_get_bridge_dev(dev)) { > ret = -EIO; > goto free_priv; > -- > 1.7.7.6 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx