diff --git a/[refs] b/[refs] index b6ca174a33f1..d98d70b9ef22 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e8bb4beb2b1f90d499134f2849727ed04c3bedc4 +refs/heads/master: 1fa6d8181b7bb0361512170c30e436dcc95591ee diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 11944b44c2ff..2a73da0cd075 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -2915,8 +2915,6 @@ P: Faisal Latif M: flatif@neteffect.com P: Chien Tung M: ctung@neteffect.com -P: Glenn Streiff -M: gstreiff@neteffect.com L: general@lists.openfabrics.org W: http://www.neteffect.com S: Supported diff --git a/trunk/drivers/infiniband/hw/mthca/mthca_dev.h b/trunk/drivers/infiniband/hw/mthca/mthca_dev.h index 252590116df5..ee4d073c889f 100644 --- a/trunk/drivers/infiniband/hw/mthca/mthca_dev.h +++ b/trunk/drivers/infiniband/hw/mthca/mthca_dev.h @@ -202,7 +202,6 @@ struct mthca_pd_table { struct mthca_buddy { unsigned long **bits; - int *num_free; int max_order; spinlock_t lock; }; diff --git a/trunk/drivers/infiniband/hw/mthca/mthca_mr.c b/trunk/drivers/infiniband/hw/mthca/mthca_mr.c index 882e6b735915..8489b1e81c0f 100644 --- a/trunk/drivers/infiniband/hw/mthca/mthca_mr.c +++ b/trunk/drivers/infiniband/hw/mthca/mthca_mr.c @@ -89,26 +89,23 @@ static u32 mthca_buddy_alloc(struct mthca_buddy *buddy, int order) spin_lock(&buddy->lock); - for (o = order; o <= buddy->max_order; ++o) - if (buddy->num_free[o]) { - m = 1 << (buddy->max_order - o); - seg = find_first_bit(buddy->bits[o], m); - if (seg < m) - goto found; - } + for (o = order; o <= buddy->max_order; ++o) { + m = 1 << (buddy->max_order - o); + seg = find_first_bit(buddy->bits[o], m); + if (seg < m) + goto found; + } spin_unlock(&buddy->lock); return -1; found: clear_bit(seg, buddy->bits[o]); - --buddy->num_free[o]; while (o > order) { --o; seg <<= 1; set_bit(seg ^ 1, buddy->bits[o]); - ++buddy->num_free[o]; } spin_unlock(&buddy->lock); @@ -126,13 +123,11 @@ static void mthca_buddy_free(struct mthca_buddy *buddy, u32 seg, int order) while (test_bit(seg ^ 1, buddy->bits[order])) { clear_bit(seg ^ 1, buddy->bits[order]); - --buddy->num_free[order]; seg >>= 1; ++order; } set_bit(seg, buddy->bits[order]); - ++buddy->num_free[order]; spin_unlock(&buddy->lock); } @@ -146,9 +141,7 @@ static int mthca_buddy_init(struct mthca_buddy *buddy, int max_order) buddy->bits = kzalloc((buddy->max_order + 1) * sizeof (long *), GFP_KERNEL); - buddy->num_free = kzalloc((buddy->max_order + 1) * sizeof (int *), - GFP_KERNEL); - if (!buddy->bits || !buddy->num_free) + if (!buddy->bits) goto err_out; for (i = 0; i <= buddy->max_order; ++i) { @@ -161,7 +154,6 @@ static int mthca_buddy_init(struct mthca_buddy *buddy, int max_order) } set_bit(0, buddy->bits[buddy->max_order]); - buddy->num_free[buddy->max_order] = 1; return 0; @@ -169,10 +161,9 @@ static int mthca_buddy_init(struct mthca_buddy *buddy, int max_order) for (i = 0; i <= buddy->max_order; ++i) kfree(buddy->bits[i]); -err_out: kfree(buddy->bits); - kfree(buddy->num_free); +err_out: return -ENOMEM; } @@ -184,7 +175,6 @@ static void mthca_buddy_cleanup(struct mthca_buddy *buddy) kfree(buddy->bits[i]); kfree(buddy->bits); - kfree(buddy->num_free); } static u32 mthca_alloc_mtt_range(struct mthca_dev *dev, int order,