Patch "RDMA/rxe: Prevent faulty rkey generation" has been added to the 6.1-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: Prevent faulty rkey generation

to the 6.1-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-prevent-faulty-rkey-generation.patch
and it can be found in the queue-6.1 subdirectory.

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



commit b01d582e09c8c1556733349b72835682ae7529b7
Author: Daisuke Matsuda <matsuda-daisuke@xxxxxxxxxxx>
Date:   Tue Dec 20 17:08:48 2022 +0900

    RDMA/rxe: Prevent faulty rkey generation
    
    [ Upstream commit 1aefe5c177c1922119afb4ee443ddd6ac3140b37 ]
    
    If you create MRs more than 0x10000 times after loading the module,
    responder starts to reply NAKs for RDMA/Atomic operations because of rkey
    violation detected in check_rkey(). The root cause is that rkeys are
    incremented each time a new MR is created and the value overflows into the
    range reserved for MWs.
    
    This commit also increases the value of RXE_MAX_MW that has been limited
    unlike other parameters.
    
    Fixes: 0994a1bcd5f7 ("RDMA/rxe: Bump up default maximum values used via uverbs")
    Link: https://lore.kernel.org/r/20221220080848.253785-2-matsuda-daisuke@xxxxxxxxxxx
    Signed-off-by: Daisuke Matsuda <matsuda-daisuke@xxxxxxxxxxx>
    Tested-by: Li Zhijian <lizhijian@xxxxxxxxxxx>
    Reviewed-by: Li Zhijian <lizhijian@xxxxxxxxxxx>
    Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/infiniband/sw/rxe/rxe_param.h b/drivers/infiniband/sw/rxe/rxe_param.h
index 86c7a8bf3cbb..fa41009ce8a9 100644
--- a/drivers/infiniband/sw/rxe/rxe_param.h
+++ b/drivers/infiniband/sw/rxe/rxe_param.h
@@ -91,11 +91,11 @@ enum rxe_device_param {
 	RXE_MAX_SRQ			= DEFAULT_MAX_VALUE - RXE_MIN_SRQ_INDEX,
 
 	RXE_MIN_MR_INDEX		= 0x00000001,
-	RXE_MAX_MR_INDEX		= DEFAULT_MAX_VALUE,
-	RXE_MAX_MR			= DEFAULT_MAX_VALUE - RXE_MIN_MR_INDEX,
-	RXE_MIN_MW_INDEX		= 0x00010001,
-	RXE_MAX_MW_INDEX		= 0x00020000,
-	RXE_MAX_MW			= 0x00001000,
+	RXE_MAX_MR_INDEX		= DEFAULT_MAX_VALUE >> 1,
+	RXE_MAX_MR			= RXE_MAX_MR_INDEX - RXE_MIN_MR_INDEX,
+	RXE_MIN_MW_INDEX		= RXE_MAX_MR_INDEX + 1,
+	RXE_MAX_MW_INDEX		= DEFAULT_MAX_VALUE,
+	RXE_MAX_MW			= RXE_MAX_MW_INDEX - RXE_MIN_MW_INDEX,
 
 	RXE_MAX_PKT_PER_ACK		= 64,
 



[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