From 4c92abfa8d0b9f2ab14e6b915bdffd47fd2e2474 Mon Sep 17 00:00:00 2001 From: Robert Noland Date: Fri, 3 Oct 2008 13:56:50 -0400 Subject: [FreeBSD] Do a bit of optimization on drm_order() --- bsd-core/drm_bufs.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'bsd-core') diff --git a/bsd-core/drm_bufs.c b/bsd-core/drm_bufs.c index c9b5dc4e..60f57cfd 100644 --- a/bsd-core/drm_bufs.c +++ b/bsd-core/drm_bufs.c @@ -1099,11 +1099,12 @@ int drm_mapbufs(struct drm_device *dev, void *data, struct drm_file *file_priv) int drm_order(unsigned long size) { int order; - unsigned long tmp; - for (order = 0, tmp = size; tmp >>= 1; ++order); + if (size == 0) + return 0; - if (size & ~(1 << order)) + order = ffsl(size) - 1; + if (size & ~(1ul << order)) ++order; return order; -- cgit v1.2.3