Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd000e12 authored by Faisal Latif's avatar Faisal Latif Committed by Roland Dreier
Browse files

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: default avatarFaisal Latif <faisal.latif@intel.com>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent 886f98a3
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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);
+0 −3
Original line number Diff line number Diff line
@@ -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 */