diff options
author | Eric Anholt <anholt@freebsd.org> | 2004-11-07 00:25:49 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2004-11-07 00:25:49 +0000 |
commit | fa3fdbd99c6b6e5cec59f1044ce6ce1105b5e8dd (patch) | |
tree | 933ce98d92e14b9b801f4a9e4988314be685836a /bsd-core/drm_scatter.c | |
parent | d37457b5996c09d1965f8906501cd1fde6aa9499 (diff) |
Now that the memory debug code is gone, and all 3 BSDs have M_ZERO, stop
using drm_alloc/drm_free in the core and instead use plain malloc/free.
Diffstat (limited to 'bsd-core/drm_scatter.c')
-rw-r--r-- | bsd-core/drm_scatter.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/bsd-core/drm_scatter.c b/bsd-core/drm_scatter.c index 82e6ef9a..03e82439 100644 --- a/bsd-core/drm_scatter.c +++ b/bsd-core/drm_scatter.c @@ -37,10 +37,8 @@ void drm_sg_cleanup(drm_sg_mem_t *entry) { free(entry->virtual, M_DRM); - drm_free(entry->busaddr, - entry->pages * sizeof(*entry->busaddr), - DRM_MEM_PAGES ); - drm_free(entry, sizeof(*entry), DRM_MEM_SGLISTS); + free(entry->busaddr, M_DRM); + free(entry, M_DRM); } int drm_sg_alloc(DRM_IOCTL_ARGS) @@ -58,36 +56,29 @@ int drm_sg_alloc(DRM_IOCTL_ARGS) DRM_COPY_FROM_USER_IOCTL(request, (drm_scatter_gather_t *)data, sizeof(request) ); - entry = drm_alloc(sizeof(*entry), DRM_MEM_SGLISTS); + entry = malloc(sizeof(*entry), M_DRM, M_NOWAIT | M_ZERO); if ( !entry ) return ENOMEM; - bzero( entry, sizeof(*entry) ); - pages = round_page(request.size) / PAGE_SIZE; DRM_DEBUG( "sg size=%ld pages=%ld\n", request.size, pages ); entry->pages = pages; - entry->busaddr = drm_alloc(pages * sizeof(*entry->busaddr), - DRM_MEM_PAGES); + entry->busaddr = malloc(pages * sizeof(*entry->busaddr), M_DRM, + M_NOWAIT | M_ZERO); if ( !entry->busaddr ) { - drm_free(entry, sizeof(*entry), DRM_MEM_SGLISTS); + free(entry, M_DRM); return ENOMEM; } - bzero( (void *)entry->busaddr, pages * sizeof(*entry->busaddr) ); - entry->virtual = malloc(pages << PAGE_SHIFT, M_DRM, M_WAITOK); + entry->virtual = malloc(pages << PAGE_SHIFT, M_DRM, M_WAITOK | M_ZERO); if ( !entry->virtual ) { - drm_free(entry->busaddr, - entry->pages * sizeof(*entry->busaddr), - DRM_MEM_PAGES); - drm_free(entry, sizeof(*entry), DRM_MEM_SGLISTS); + free(entry->busaddr, M_DRM); + free(entry, M_DRM); return ENOMEM; } - bzero( entry->virtual, pages << PAGE_SHIFT ); - entry->handle = (unsigned long)entry->virtual; DRM_DEBUG( "sg alloc handle = %08lx\n", entry->handle ); |