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, ...@@ -145,7 +145,7 @@ int DRM(addmap)( struct inode *inode, struct file *filp,
#ifdef __alpha__ #ifdef __alpha__
map->offset += dev->hose->mem_space->start; map->offset += dev->hose->mem_space->start;
#endif #endif
map->offset = map->offset + dev->agp->base; map->offset += dev->agp->base;
map->mtrr = dev->agp->agp_mtrr; /* for getmap */ map->mtrr = dev->agp->agp_mtrr; /* for getmap */
break; break;
#endif #endif
...@@ -154,7 +154,7 @@ int DRM(addmap)( struct inode *inode, struct file *filp, ...@@ -154,7 +154,7 @@ int DRM(addmap)( struct inode *inode, struct file *filp,
DRM(free)(map, sizeof(*map), DRM_MEM_MAPS); DRM(free)(map, sizeof(*map), DRM_MEM_MAPS);
return -EINVAL; return -EINVAL;
} }
map->offset = map->offset + dev->sg->handle; map->offset += dev->sg->handle;
break; break;
default: default:
...@@ -680,9 +680,11 @@ int DRM(addbufs_pci)( struct inode *inode, struct file *filp, ...@@ -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 /* No allocations failed, so now we can replace the orginal pagelist
* with the new one. * with the new one.
*/ */
DRM(free)(dma->pagelist, if (dma->page_count) {
dma->page_count * sizeof(*dma->pagelist), DRM(free)(dma->pagelist,
DRM_MEM_PAGES); dma->page_count * sizeof(*dma->pagelist),
DRM_MEM_PAGES);
}
dma->pagelist = temp_pagelist; dma->pagelist = temp_pagelist;
dma->buf_count += entry->buf_count; 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