Lines Matching refs:entry
46 static void drm_sg_cleanup(struct drm_sg_mem * entry)
51 for (i = 0; i < entry->pages; i++) {
52 page = entry->pagelist[i];
57 vfree(entry->virtual);
59 kfree(entry->busaddr);
60 kfree(entry->pagelist);
61 kfree(entry);
82 struct drm_sg_mem *entry;
99 entry = kzalloc(sizeof(*entry), GFP_KERNEL);
100 if (!entry)
106 entry->pages = pages;
107 entry->pagelist = kcalloc(pages, sizeof(*entry->pagelist), GFP_KERNEL);
108 if (!entry->pagelist) {
109 kfree(entry);
113 entry->busaddr = kcalloc(pages, sizeof(*entry->busaddr), GFP_KERNEL);
114 if (!entry->busaddr) {
115 kfree(entry->pagelist);
116 kfree(entry);
120 entry->virtual = vmalloc_32(pages << PAGE_SHIFT);
121 if (!entry->virtual) {
122 kfree(entry->busaddr);
123 kfree(entry->pagelist);
124 kfree(entry);
131 memset(entry->virtual, 0, pages << PAGE_SHIFT);
133 entry->handle = ScatterHandle((unsigned long)entry->virtual);
135 DRM_DEBUG("handle = %08lx\n", entry->handle);
136 DRM_DEBUG("virtual = %p\n", entry->virtual);
138 for (i = (unsigned long)entry->virtual, j = 0; j < pages;
140 entry->pagelist[j] = vmalloc_to_page((void *)i);
141 if (!entry->pagelist[j])
143 SetPageReserved(entry->pagelist[j]);
146 request->handle = entry->handle;
148 dev->sg = entry;
160 tmp = page_address(entry->pagelist[i]);
166 tmp = (unsigned long *)((u8 *) entry->virtual +
178 tmp = page_address(entry->pagelist[i]);
193 drm_sg_cleanup(entry);
201 struct drm_sg_mem *entry;
209 entry = dev->sg;
212 if (!entry || entry->handle != request->handle)
215 DRM_DEBUG("virtual = %p\n", entry->virtual);
217 drm_sg_cleanup(entry);