diff mbox series

Fix one error in mthca_alloc

Message ID 20210826105215.2001-1-kangning18z@ict.ac.cn (mailing list archive)
State Superseded
Headers show
Series Fix one error in mthca_alloc | expand

Commit Message

kangning18z@ict.ac.cn Aug. 26, 2021, 10:52 a.m. UTC
drivers/infiniband/hw/mthca/mthca_allocator.c: alloc->last left unchanged in mthca_alloc, which
has impact on performance of function find_next_zero_bit in mthca_alloc.

Signed-off-by: kangning <kangning18z@ict.ac.cn>
---
 drivers/infiniband/hw/mthca/mthca_allocator.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Haakon Bugge Aug. 26, 2021, 12:49 p.m. UTC | #1
> On 26 Aug 2021, at 12:52, kangning <kangning18z@ict.ac.cn> wrote:
> 
> drivers/infiniband/hw/mthca/mthca_allocator.c: alloc->last left unchanged in mthca_alloc, which
> has impact on performance of function find_next_zero_bit in mthca_alloc.
> 
> Signed-off-by: kangning <kangning18z@ict.ac.cn>
> ---
> drivers/infiniband/hw/mthca/mthca_allocator.c | 4 ++++
> 1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/infiniband/hw/mthca/mthca_allocator.c b/drivers/infiniband/hw/mthca/mthca_allocator.c
> index aef1d274a14e..e81bb0fcd08e 100644
> --- a/drivers/infiniband/hw/mthca/mthca_allocator.c
> +++ b/drivers/infiniband/hw/mthca/mthca_allocator.c
> @@ -51,6 +51,10 @@ u32 mthca_alloc(struct mthca_alloc *alloc)
> 	}
> 
> 	if (obj < alloc->max) {
> +		alloc->last = (obj + 1);

No need for parenthesis.

> +		if (alloc->last == alloc->max) {

No need for braces.


Otherwise, looks good to me:

Reviewed-by: HÃ¥kon Bugge <haakon.bugge@oracle.com>


> +			alloc->last = 0;
> +		}
> 		set_bit(obj, alloc->table);
> 		obj |= alloc->top;
> 	} else
> -- 
> 2.17.1
>
diff mbox series

Patch

diff --git a/drivers/infiniband/hw/mthca/mthca_allocator.c b/drivers/infiniband/hw/mthca/mthca_allocator.c
index aef1d274a14e..e81bb0fcd08e 100644
--- a/drivers/infiniband/hw/mthca/mthca_allocator.c
+++ b/drivers/infiniband/hw/mthca/mthca_allocator.c
@@ -51,6 +51,10 @@  u32 mthca_alloc(struct mthca_alloc *alloc)
 	}
 
 	if (obj < alloc->max) {
+		alloc->last = (obj + 1);
+		if (alloc->last == alloc->max) {
+			alloc->last = 0;
+		}
 		set_bit(obj, alloc->table);
 		obj |= alloc->top;
 	} else