On Tue, Jun 12, 2012 at 02:58:25PM +0300, Jani Nikula wrote:
> On Thu, 07 Jun 2012, Daniel Vetter <daniel.vet...@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.vet...@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.

Nice catch, will fix.

> Should there be a deinit of drm_pci_agp_init() if something goes wrong
> afterwards?

drm core should do that for use (but currently doesn't) by deinit agp if
it's initialized. The follow-up patches to wrestle the drm driver init
paths /should/ take care of this though.
-Daniel
-- 
Daniel Vetter
Mail: dan...@ffwll.ch
Mobile: +41 (0)79 365 57 48
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to