Skip to content

Commit

Permalink
drm/i915: fix modeset devname allocation + agp init return check.
Browse files Browse the repository at this point in the history
devname needs to be allocated before the irq is installed, so the
irq routines get the correct name in /proc.

Also check the return value from the AGP init function, and
fixup the exit points.

Signed-off-by: Dave Airlie <airlied@redhat.com>
  • Loading branch information
Dave Airlie committed Dec 29, 2008
1 parent aad87df commit aa59662
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions drivers/gpu/drm/i915/i915_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -907,6 +907,12 @@ static int i915_load_modeset_init(struct drm_device *dev)
int fb_bar = IS_I9XX(dev) ? 2 : 0;
int ret = 0;

dev->devname = kstrdup(DRIVER_NAME, GFP_KERNEL);
if (!dev->devname) {
ret = -ENOMEM;
goto out;
}

dev->mode_config.fb_base = drm_get_resource_start(dev, fb_bar) &
0xff000000;

Expand All @@ -917,7 +923,9 @@ static int i915_load_modeset_init(struct drm_device *dev)
else
dev_priv->cursor_needs_physical = false;

i915_probe_agp(dev, &agp_size, &prealloc_size);
ret = i915_probe_agp(dev, &agp_size, &prealloc_size);
if (ret)
goto kfree_devname;

/* Basic memrange allocator for stolen space (aka vram) */
drm_mm_init(&dev_priv->vram, 0, prealloc_size);
Expand All @@ -927,7 +935,7 @@ static int i915_load_modeset_init(struct drm_device *dev)

ret = i915_gem_init_ringbuffer(dev);
if (ret)
goto out;
goto kfree_devname;

dev_priv->mm.gtt_mapping =
io_mapping_create_wc(dev->agp->base,
Expand Down Expand Up @@ -966,18 +974,12 @@ static int i915_load_modeset_init(struct drm_device *dev)

drm_helper_initial_config(dev, false);

dev->devname = kstrdup(DRIVER_NAME, GFP_KERNEL);
if (!dev->devname) {
ret = -ENOMEM;
goto modeset_cleanup;
}

return 0;

modeset_cleanup:
intel_modeset_cleanup(dev);
destroy_ringbuffer:
i915_gem_cleanup_ringbuffer(dev);
kfree_devname:
kfree(dev->devname);
out:
return ret;
}
Expand Down

0 comments on commit aa59662

Please sign in to comment.