drm/ttm: Remove the ttm_bo_block_reservation() function.
[safe/jmp/linux-2.6] / drivers / gpu / drm / ttm / ttm_memory.c
index 072c281..c40e5f4 100644 (file)
@@ -152,7 +152,7 @@ static struct attribute *ttm_mem_zone_attrs[] = {
        NULL
 };
 
-static struct sysfs_ops ttm_mem_zone_ops = {
+static const struct sysfs_ops ttm_mem_zone_ops = {
        .show = &ttm_mem_zone_show,
        .store = &ttm_mem_zone_store
 };
@@ -260,8 +260,8 @@ static int ttm_mem_init_kernel_zone(struct ttm_mem_global *glob,
        zone->used_mem = 0;
        zone->glob = glob;
        glob->zone_kernel = zone;
-       kobject_init(&zone->kobj, &ttm_mem_zone_kobj_type);
-       ret = kobject_add(&zone->kobj, &glob->kobj, zone->name);
+       ret = kobject_init_and_add(
+               &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, zone->name);
        if (unlikely(ret != 0)) {
                kobject_put(&zone->kobj);
                return ret;
@@ -274,16 +274,17 @@ static int ttm_mem_init_kernel_zone(struct ttm_mem_global *glob,
 static int ttm_mem_init_highmem_zone(struct ttm_mem_global *glob,
                                     const struct sysinfo *si)
 {
-       struct ttm_mem_zone *zone = kzalloc(sizeof(*zone), GFP_KERNEL);
+       struct ttm_mem_zone *zone;
        uint64_t mem;
        int ret;
 
-       if (unlikely(!zone))
-               return -ENOMEM;
-
        if (si->totalhigh == 0)
                return 0;
 
+       zone = kzalloc(sizeof(*zone), GFP_KERNEL);
+       if (unlikely(!zone))
+               return -ENOMEM;
+
        mem = si->totalram;
        mem *= si->mem_unit;
 
@@ -295,8 +296,8 @@ static int ttm_mem_init_highmem_zone(struct ttm_mem_global *glob,
        zone->used_mem = 0;
        zone->glob = glob;
        glob->zone_highmem = zone;
-       kobject_init(&zone->kobj, &ttm_mem_zone_kobj_type);
-       ret = kobject_add(&zone->kobj, &glob->kobj, zone->name);
+       ret = kobject_init_and_add(
+               &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, zone->name);
        if (unlikely(ret != 0)) {
                kobject_put(&zone->kobj);
                return ret;
@@ -322,8 +323,10 @@ static int ttm_mem_init_dma32_zone(struct ttm_mem_global *glob,
         * No special dma32 zone needed.
         */
 
-       if (mem <= ((uint64_t) 1ULL << 32))
+       if (mem <= ((uint64_t) 1ULL << 32)) {
+               kfree(zone);
                return 0;
+       }
 
        /*
         * Limit max dma32 memory to 4GB for now
@@ -340,8 +343,8 @@ static int ttm_mem_init_dma32_zone(struct ttm_mem_global *glob,
        zone->used_mem = 0;
        zone->glob = glob;
        glob->zone_dma32 = zone;
-       kobject_init(&zone->kobj, &ttm_mem_zone_kobj_type);
-       ret = kobject_add(&zone->kobj, &glob->kobj, zone->name);
+       ret = kobject_init_and_add(
+               &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, zone->name);
        if (unlikely(ret != 0)) {
                kobject_put(&zone->kobj);
                return ret;
@@ -362,10 +365,8 @@ int ttm_mem_global_init(struct ttm_mem_global *glob)
        glob->swap_queue = create_singlethread_workqueue("ttm_swap");
        INIT_WORK(&glob->work, ttm_shrink_work);
        init_waitqueue_head(&glob->queue);
-       kobject_init(&glob->kobj, &ttm_mem_glob_kobj_type);
-       ret = kobject_add(&glob->kobj,
-                         ttm_get_kobj(),
-                         "memory_accounting");
+       ret = kobject_init_and_add(
+               &glob->kobj, &ttm_mem_glob_kobj_type, ttm_get_kobj(), "memory_accounting");
        if (unlikely(ret != 0)) {
                kobject_put(&glob->kobj);
                return ret;
@@ -460,6 +461,7 @@ void ttm_mem_global_free(struct ttm_mem_global *glob,
 {
        return ttm_mem_global_free_zone(glob, NULL, amount);
 }
+EXPORT_SYMBOL(ttm_mem_global_free);
 
 static int ttm_mem_global_reserve(struct ttm_mem_global *glob,
                                  struct ttm_mem_zone *single_zone,
@@ -533,6 +535,7 @@ int ttm_mem_global_alloc(struct ttm_mem_global *glob, uint64_t memory,
        return ttm_mem_global_alloc_zone(glob, NULL, memory, no_wait,
                                         interruptible);
 }
+EXPORT_SYMBOL(ttm_mem_global_alloc);
 
 int ttm_mem_global_alloc_page(struct ttm_mem_global *glob,
                              struct page *page,
@@ -588,3 +591,4 @@ size_t ttm_round_pot(size_t size)
        }
        return 0;
 }
+EXPORT_SYMBOL(ttm_round_pot);