RDMA/nes: check for zero stag
PATCH 8/11 RDMA/nes: check for zero stag
STags are generated randomly but the driver does not correctly prevent a zero STag. Using STag zero is privileged and causes a user space application to fail. This change prevents the driver from trying to allocate a zero STag.
Signed-off-by Faisal Latif <[email protected]>
--- drivers/infiniband/hw/nes/nes_hw.c | 3 ++- drivers/infiniband/hw/nes/nes_verbs.c | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/infiniband/hw/nes/nes_hw.c +2 -1
@@ -437,11 +437,12 @@ struct nes_adapter *nes_init_adapter(struct nes_device *nesdev, u8 hw_rev) { nesadapter->qp_table = (struct nes_qp **)(&nesadapter->allocated_arps[BITS_TO_LONGS (arp_table_size)]); -/* mark the usual suspect QPs and CQs as in use */ +/* mark the usual suspect QPs, MR and CQs as in use */ for (u32temp =0 ; u32temp <NES_FIRST_QPN ; u32temp++) {set_bit (u32temp, nesadapter->allocated_qps);set_bit (u32temp, nesadapter->allocated_cqs); } +set_bit (0 , nesadapter->allocated_mrs);for (u32temp =0 ; u32temp <20 ; u32temp++)set_bit (u32temp, nesadapter->allocated_pds);
drivers/infiniband/hw/nes/nes_verbs.c +0 -3
@@ -2503,9 +2503,6 @@ static struct ib_mr *nes_reg_user_mr(struct ib_pd *pd, u64 start, u64 length, stag = stag_index <<8 ; stag |= driver_key; stag += (u32 )stag_key; -if (stag ==0 ) { - stag =1 ; - } iova_start = virt;/* Make the leaf PBL the root if only one PBL */
Signature · 6 lines
1.5.3.3 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html