aboutsummaryrefslogtreecommitdiff
path: root/bsd-core/drm_scatter.c
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2004-11-07 00:25:49 +0000
committerEric Anholt <anholt@freebsd.org>2004-11-07 00:25:49 +0000
commitfa3fdbd99c6b6e5cec59f1044ce6ce1105b5e8dd (patch)
tree933ce98d92e14b9b801f4a9e4988314be685836a /bsd-core/drm_scatter.c
parentd37457b5996c09d1965f8906501cd1fde6aa9499 (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.c27
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 );