Showing error 1623

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: drivers/gpu/drm/drm_gem.c
Line in file: 97
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-10 07:54:05 UTC


Source:

 67/**
 68 * Initialize the GEM device fields
 69 */
 70
 71int
 72drm_gem_init(struct drm_device *dev)
 73{
 74        spin_lock_init(&dev->object_name_lock);
 75        idr_init(&dev->object_name_idr);
 76        atomic_set(&dev->object_count, 0);
 77        atomic_set(&dev->object_memory, 0);
 78        atomic_set(&dev->pin_count, 0);
 79        atomic_set(&dev->pin_memory, 0);
 80        atomic_set(&dev->gtt_count, 0);
 81        atomic_set(&dev->gtt_memory, 0);
 82        return 0;
 83}
 84
 85/**
 86 * Allocate a GEM object of the specified size with shmfs backing store
 87 */
 88struct drm_gem_object *
 89drm_gem_object_alloc(struct drm_device *dev, size_t size)
 90{
 91        struct drm_gem_object *obj;
 92
 93        BUG_ON((size & (PAGE_SIZE - 1)) != 0);
 94
 95        obj = kcalloc(1, sizeof(*obj), GFP_KERNEL);
 96
 97        obj->dev = dev;
 98        obj->filp = shmem_file_setup("drm mm object", size, 0);
 99        if (IS_ERR(obj->filp)) {
100                kfree(obj);
101                return NULL;
102        }
103
104        kref_init(&obj->refcount);
105        kref_init(&obj->handlecount);
106        obj->size = size;
107        if (dev->driver->gem_init_object != NULL &&
Show full sources