Commit e648c81b authored by Linus Torvalds's avatar Linus Torvalds

DRI CVS merge: only free pages when we _have_ pages to free.

Cleanups.
parent d201bca9
......@@ -145,7 +145,7 @@ int DRM(addmap)( struct inode *inode, struct file *filp,
#ifdef __alpha__
map->offset += dev->hose->mem_space->start;
#endif
map->offset = map->offset + dev->agp->base;
map->offset += dev->agp->base;
map->mtrr = dev->agp->agp_mtrr; /* for getmap */
break;
#endif
......@@ -154,7 +154,7 @@ int DRM(addmap)( struct inode *inode, struct file *filp,
DRM(free)(map, sizeof(*map), DRM_MEM_MAPS);
return -EINVAL;
}
map->offset = map->offset + dev->sg->handle;
map->offset += dev->sg->handle;
break;
default:
......@@ -680,9 +680,11 @@ int DRM(addbufs_pci)( struct inode *inode, struct file *filp,
/* No allocations failed, so now we can replace the orginal pagelist
* with the new one.
*/
DRM(free)(dma->pagelist,
dma->page_count * sizeof(*dma->pagelist),
DRM_MEM_PAGES);
if (dma->page_count) {
DRM(free)(dma->pagelist,
dma->page_count * sizeof(*dma->pagelist),
DRM_MEM_PAGES);
}
dma->pagelist = temp_pagelist;
dma->buf_count += entry->buf_count;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment