From patchwork Sat Aug 21 09:24:48 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akinobu Mita X-Patchwork-Id: 62343 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id DDEE6B70E0 for ; Sat, 21 Aug 2010 19:31:26 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751701Ab0HUJbO (ORCPT ); Sat, 21 Aug 2010 05:31:14 -0400 Received: from mail-px0-f174.google.com ([209.85.212.174]:48327 "EHLO mail-px0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751610Ab0HUJbL (ORCPT ); Sat, 21 Aug 2010 05:31:11 -0400 Received: by pxi10 with SMTP id 10so1562077pxi.19 for ; Sat, 21 Aug 2010 02:31:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer; bh=/25YAUEiObEEqN6w5R1L0lxZudfJ/L9LXF86Xhk1XUY=; b=QHaQZwVm4Jea94ao2IpoMir/utlyZhVwmfNLq3vGpO0gdYa4bxUtCtVYYdDDZ1lVI7 zQO0QA7AxipX6US+5fgqj4sE068kEHvRFwUtaPPeHNFVvjfPYyuSHg1tB4dSS9+7PJgy y+1zHWVsIiEKRW4krhF68D+N3uUhA/dp61trc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; b=Gm+wnjBckHsbZ4jx9glgXY2l/n4gKaJ6qgmHKT88yxKsB4N+D1MaJxMwTtjJBA8YH9 L+PbjfAvCwkI3agAV/WWTOJO+Qe8FL40sfMv6aYoFEQZpd7JzI2qzAeY7Z1rUhWJonwg 0ebIro2KBmh1GtCo2Ax2D66foUoOIYo4XKOGE= Received: by 10.142.165.7 with SMTP id n7mr2107288wfe.158.1282383070926; Sat, 21 Aug 2010 02:31:10 -0700 (PDT) Received: from localhost (p11187-adsau04yokonib3-acca.kanagawa.ocn.ne.jp [60.45.129.187]) by mx.google.com with ESMTPS id v38sm4603480wfh.0.2010.08.21.02.31.07 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 21 Aug 2010 02:31:09 -0700 (PDT) From: Akinobu Mita To: netdev@vger.kernel.org Cc: Akinobu Mita , Roland Dreier , "David S. Miller" Subject: [PATCH] mlx4: use bitmap library Date: Sat, 21 Aug 2010 18:24:48 +0900 Message-Id: <1282382688-5786-1-git-send-email-akinobu.mita@gmail.com> X-Mailer: git-send-email 1.6.0.6 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use bitmap_set() and bitmap_clear() Signed-off-by: Akinobu Mita Cc: Roland Dreier Cc: netdev@vger.kernel.org Cc: "David S. Miller" --- drivers/net/mlx4/alloc.c | 15 ++++----------- 1 files changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/net/mlx4/alloc.c b/drivers/net/mlx4/alloc.c index 8c85156..76595bd 100644 --- a/drivers/net/mlx4/alloc.c +++ b/drivers/net/mlx4/alloc.c @@ -74,7 +74,7 @@ void mlx4_bitmap_free(struct mlx4_bitmap *bitmap, u32 obj) u32 mlx4_bitmap_alloc_range(struct mlx4_bitmap *bitmap, int cnt, int align) { - u32 obj, i; + u32 obj; if (likely(cnt == 1 && align == 1)) return mlx4_bitmap_alloc(bitmap); @@ -91,8 +91,7 @@ u32 mlx4_bitmap_alloc_range(struct mlx4_bitmap *bitmap, int cnt, int align) } if (obj < bitmap->max) { - for (i = 0; i < cnt; i++) - set_bit(obj + i, bitmap->table); + bitmap_set(bitmap->table, obj, cnt); if (obj == bitmap->last) { bitmap->last = (obj + cnt); if (bitmap->last >= bitmap->max) @@ -109,13 +108,10 @@ u32 mlx4_bitmap_alloc_range(struct mlx4_bitmap *bitmap, int cnt, int align) void mlx4_bitmap_free_range(struct mlx4_bitmap *bitmap, u32 obj, int cnt) { - u32 i; - obj &= bitmap->max + bitmap->reserved_top - 1; spin_lock(&bitmap->lock); - for (i = 0; i < cnt; i++) - clear_bit(obj + i, bitmap->table); + bitmap_clear(bitmap->table, obj, cnt); bitmap->last = min(bitmap->last, obj); bitmap->top = (bitmap->top + bitmap->max + bitmap->reserved_top) & bitmap->mask; @@ -125,8 +121,6 @@ void mlx4_bitmap_free_range(struct mlx4_bitmap *bitmap, u32 obj, int cnt) int mlx4_bitmap_init(struct mlx4_bitmap *bitmap, u32 num, u32 mask, u32 reserved_bot, u32 reserved_top) { - int i; - /* num must be a power of 2 */ if (num != roundup_pow_of_two(num)) return -EINVAL; @@ -142,8 +136,7 @@ int mlx4_bitmap_init(struct mlx4_bitmap *bitmap, u32 num, u32 mask, if (!bitmap->table) return -ENOMEM; - for (i = 0; i < reserved_bot; ++i) - set_bit(i, bitmap->table); + bitmap_set(bitmap->table, 0, reserved_bot); return 0; }