diff --git a/linux-core/drm_memory_debug.c b/linux-core/drm_memory_debug.c index 875fec05..2ce2abcd 100644 --- a/linux-core/drm_memory_debug.c +++ b/linux-core/drm_memory_debug.c @@ -374,7 +374,11 @@ DRM_AGP_MEM *drm_alloc_agp(drm_device_t *dev, int pages, u32 type) return NULL; } +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) if ((handle = drm_agp_allocate_memory(pages, type))) { +#else + if ((handle = drm_agp_allocate_memory(dev->agp->bridge, pages, type))) { +#endif spin_lock(&drm_mem_lock); ++drm_mem_stats[DRM_MEM_TOTALAGP].succeed_count; drm_mem_stats[DRM_MEM_TOTALAGP].bytes_allocated @@ -387,6 +391,7 @@ DRM_AGP_MEM *drm_alloc_agp(drm_device_t *dev, int pages, u32 type) spin_unlock(&drm_mem_lock); return NULL; } +EXPORT_SYMBOL(drm_alloc_agp); int drm_free_agp(DRM_AGP_MEM * handle, int pages) { @@ -416,6 +421,7 @@ int drm_free_agp(DRM_AGP_MEM * handle, int pages) } return retval; } +EXPORT_SYMBOL(drm_free_agp); int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start) { @@ -440,6 +446,7 @@ int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start) spin_unlock(&drm_mem_lock); return retcode; } +EXPORT_SYMBOL(drm_bind_agp); int drm_unbind_agp(DRM_AGP_MEM * handle) { @@ -468,6 +475,7 @@ int drm_unbind_agp(DRM_AGP_MEM * handle) } return retcode; } +EXPORT_SYMBOL(drm_unbind_agp); #endif #endif diff --git a/linux-core/drm_stub.c b/linux-core/drm_stub.c index 2f9a2c32..d7baeb84 100644 --- a/linux-core/drm_stub.c +++ b/linux-core/drm_stub.c @@ -225,7 +225,6 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent, pci_enable_device(pdev); } if ((ret = fill_in_dev(dev, pdev, ent, driver))) { - printk(KERN_ERR "DRM: Fill_in_dev failed.\n"); goto err_g1; } if ((ret = drm_get_head(dev, &dev->primary))) @@ -234,10 +233,12 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent, /* postinit is a required function to display the signon banner */ /* drivers add secondary heads here if needed */ if ((ret = dev->driver->postinit(dev, ent->driver_data))) - goto err_g1; + goto err_g2; return 0; +err_g2: + drm_put_head(&dev->primary); err_g1: if (!drm_fb_loaded) { pci_set_drvdata(pdev, NULL); @@ -245,6 +246,7 @@ err_g1: pci_disable_device(pdev); } drm_free(dev, sizeof(*dev), DRM_MEM_STUB); + printk(KERN_ERR "DRM: drm_get_dev failed.\n"); return ret; } EXPORT_SYMBOL(drm_get_dev);