Lines Matching refs:entry

60 static void drm_sg_cleanup(struct drm_sg_mem * entry)
65 for (i = 0; i < entry->pages; i++) {
66 page = entry->pagelist[i];
71 vfree(entry->virtual);
73 kfree(entry->busaddr);
74 kfree(entry->pagelist);
75 kfree(entry);
96 struct drm_sg_mem *entry;
110 entry = kzalloc(sizeof(*entry), GFP_KERNEL);
111 if (!entry)
117 entry->pages = pages;
118 entry->pagelist = kcalloc(pages, sizeof(*entry->pagelist), GFP_KERNEL);
119 if (!entry->pagelist) {
120 kfree(entry);
124 entry->busaddr = kcalloc(pages, sizeof(*entry->busaddr), GFP_KERNEL);
125 if (!entry->busaddr) {
126 kfree(entry->pagelist);
127 kfree(entry);
131 entry->virtual = drm_vmalloc_dma(pages << PAGE_SHIFT);
132 if (!entry->virtual) {
133 kfree(entry->busaddr);
134 kfree(entry->pagelist);
135 kfree(entry);
142 memset(entry->virtual, 0, pages << PAGE_SHIFT);
144 entry->handle = ScatterHandle((unsigned long)entry->virtual);
146 DRM_DEBUG("handle = %08lx\n", entry->handle);
147 DRM_DEBUG("virtual = %p\n", entry->virtual);
149 for (i = (unsigned long)entry->virtual, j = 0; j < pages;
151 entry->pagelist[j] = vmalloc_to_page((void *)i);
152 if (!entry->pagelist[j])
154 SetPageReserved(entry->pagelist[j]);
157 request->handle = entry->handle;
159 dev->sg = entry;
171 tmp = page_address(entry->pagelist[i]);
177 tmp = (unsigned long *)((u8 *) entry->virtual +
189 tmp = page_address(entry->pagelist[i]);
204 drm_sg_cleanup(entry);
212 struct drm_sg_mem *entry;
220 entry = dev->sg;
223 if (!entry || entry->handle != request->handle)
226 DRM_DEBUG("virtual = %p\n", entry->virtual);
228 drm_sg_cleanup(entry);