Patch "RDMA/rxe: fix xa_alloc_cycle() error return value check again" has been added to the 5.18-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    RDMA/rxe: fix xa_alloc_cycle() error return value check again

to the 5.18-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     rdma-rxe-fix-xa_alloc_cycle-error-return-value-check.patch
and it can be found in the queue-5.18 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 75a98d233f2dd6561c75e5e4ca1f0e0494547c03
Author: Dongliang Mu <mudongliangabcd@xxxxxxxxx>
Date:   Thu Jun 9 15:06:56 2022 +0800

    RDMA/rxe: fix xa_alloc_cycle() error return value check again
    
    [ Upstream commit 1a685940e6200e9def6e34bbaa19dd31dc5aeaf8 ]
    
    Currently rxe_alloc checks ret to indicate error, but 1 is also a valid
    return and just indicates that the allocation succeeded with a wrap.
    
    Fix this by modifying the check to be < 0.
    
    Link: https://lore.kernel.org/r/20220609070656.1446121-1-dzm91@xxxxxxxxxxx
    Fixes: 3225717f6dfa ("RDMA/rxe: Replace red-black trees by xarrays")
    Signed-off-by: Dongliang Mu <mudongliangabcd@xxxxxxxxx>
    Reviewed-by: Bob Pearson <rpearsonhpe@xxxxxxxxx>
    Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/infiniband/sw/rxe/rxe_pool.c b/drivers/infiniband/sw/rxe/rxe_pool.c
index 87066d04ed18..69db28944567 100644
--- a/drivers/infiniband/sw/rxe/rxe_pool.c
+++ b/drivers/infiniband/sw/rxe/rxe_pool.c
@@ -140,7 +140,7 @@ void *rxe_alloc(struct rxe_pool *pool)
 
 	err = xa_alloc_cyclic(&pool->xa, &elem->index, elem, pool->limit,
 			      &pool->next, GFP_KERNEL);
-	if (err)
+	if (err < 0)
 		goto err_free;
 
 	return obj;
@@ -168,7 +168,7 @@ int __rxe_add_to_pool(struct rxe_pool *pool, struct rxe_pool_elem *elem)
 
 	err = xa_alloc_cyclic(&pool->xa, &elem->index, elem, pool->limit,
 			      &pool->next, GFP_KERNEL);
-	if (err)
+	if (err < 0)
 		goto err_cnt;
 
 	return 0;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux