|
@@ -83,30 +83,26 @@ int drm_sg_alloc(struct drm_device *dev, struct drm_scatter_gather * request)
|
|
if (dev->sg)
|
|
if (dev->sg)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
|
|
|
|
|
|
+ entry = kzalloc(sizeof(*entry), GFP_KERNEL);
|
|
if (!entry)
|
|
if (!entry)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
|
|
|
|
- memset(entry, 0, sizeof(*entry));
|
|
|
|
pages = (request->size + PAGE_SIZE - 1) / PAGE_SIZE;
|
|
pages = (request->size + PAGE_SIZE - 1) / PAGE_SIZE;
|
|
DRM_DEBUG("size=%ld pages=%ld\n", request->size, pages);
|
|
DRM_DEBUG("size=%ld pages=%ld\n", request->size, pages);
|
|
|
|
|
|
entry->pages = pages;
|
|
entry->pages = pages;
|
|
- entry->pagelist = kmalloc(pages * sizeof(*entry->pagelist), GFP_KERNEL);
|
|
|
|
|
|
+ entry->pagelist = kcalloc(pages, sizeof(*entry->pagelist), GFP_KERNEL);
|
|
if (!entry->pagelist) {
|
|
if (!entry->pagelist) {
|
|
kfree(entry);
|
|
kfree(entry);
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
}
|
|
}
|
|
|
|
|
|
- memset(entry->pagelist, 0, pages * sizeof(*entry->pagelist));
|
|
|
|
-
|
|
|
|
- entry->busaddr = kmalloc(pages * sizeof(*entry->busaddr), GFP_KERNEL);
|
|
|
|
|
|
+ entry->busaddr = kcalloc(pages, sizeof(*entry->busaddr), GFP_KERNEL);
|
|
if (!entry->busaddr) {
|
|
if (!entry->busaddr) {
|
|
kfree(entry->pagelist);
|
|
kfree(entry->pagelist);
|
|
kfree(entry);
|
|
kfree(entry);
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
}
|
|
}
|
|
- memset((void *)entry->busaddr, 0, pages * sizeof(*entry->busaddr));
|
|
|
|
|
|
|
|
entry->virtual = drm_vmalloc_dma(pages << PAGE_SHIFT);
|
|
entry->virtual = drm_vmalloc_dma(pages << PAGE_SHIFT);
|
|
if (!entry->virtual) {
|
|
if (!entry->virtual) {
|