Răsfoiți Sursa

IB/hfi1: Fix QOS num_vl bit width

The bit width for num_vls, n, needs to be calculated based on
the pow2 rounded up of the number of vls.  Otherwise num_vls of 3,
5, 6, and 7 will have misplaced QOS RSM map entries.

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Dean Luick 9 ani în urmă
părinte
comite
153d58cd8e
1 a modificat fișierele cu 1 adăugiri și 1 ștergeri
  1. 1 1
      drivers/staging/rdma/hfi1/chip.c

+ 1 - 1
drivers/staging/rdma/hfi1/chip.c

@@ -13508,7 +13508,7 @@ static void init_qos(struct hfi1_devdata *dd, u32 first_ctxt)
 		goto bail;
 		goto bail;
 	qpns_per_vl = __roundup_pow_of_two(max_by_vl);
 	qpns_per_vl = __roundup_pow_of_two(max_by_vl);
 	/* determine bits vl */
 	/* determine bits vl */
-	n = ilog2(num_vls);
+	n = ilog2(__roundup_pow_of_two(num_vls));
 	/* determine bits for qpn */
 	/* determine bits for qpn */
 	m = ilog2(qpns_per_vl);
 	m = ilog2(qpns_per_vl);
 	if ((m + n) > 7)
 	if ((m + n) > 7)