summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_abi16.c
diff options
context:
space:
mode:
authorIlia Mirkin2014-02-09 21:51:24 +0100
committerBen Skeggs2014-03-26 04:59:31 +0100
commit73970c47beb42f3e1ab0b86c537b1c79539f05f4 (patch)
treedb0e30783fe20810e97265d75ff3452db18195f0 /drivers/gpu/drm/nouveau/nouveau_abi16.c
parentdrm/nouveau/hwmon: replace strict_strtol() with kstrtol() (diff)
downloadkernel-qcow2-linux-73970c47beb42f3e1ab0b86c537b1c79539f05f4.tar.gz
kernel-qcow2-linux-73970c47beb42f3e1ab0b86c537b1c79539f05f4.tar.xz
kernel-qcow2-linux-73970c47beb42f3e1ab0b86c537b1c79539f05f4.zip
drm/nouveau: replace ffsll with __ffs64
The ffsll function is a lot slower than the __ffs64 built-in which compiles to a single instruction on 64-bit. It's also nice to avoid custom versions of standard functions. Note that __ffs == ffs - 1. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_abi16.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_abi16.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_abi16.c b/drivers/gpu/drm/nouveau/nouveau_abi16.c
index 900fae01793e..b70111711be3 100644
--- a/drivers/gpu/drm/nouveau/nouveau_abi16.c
+++ b/drivers/gpu/drm/nouveau/nouveau_abi16.c
@@ -270,8 +270,8 @@ nouveau_abi16_ioctl_channel_alloc(ABI16_IOCTL_ARGS)
return nouveau_abi16_put(abi16, -EINVAL);
/* allocate "abi16 channel" data and make up a handle for it */
- init->channel = ffsll(~abi16->handles);
- if (!init->channel--)
+ init->channel = __ffs64(~abi16->handles);
+ if (~abi16->handles == 0)
return nouveau_abi16_put(abi16, -ENOSPC);
chan = kzalloc(sizeof(*chan), GFP_KERNEL);