IB/qib: Eliminate divide/mod in converting idx to egr buf pointer
[linux.git] / drivers / infiniband / hw / qib / qib_iba7220.c
index e1f947446c2a5bac53c28699c3ac3792924fea9b..3f1d562ba89824694808a6bd91f1f94dbaa12e4b 100644 (file)
@@ -4085,6 +4085,8 @@ static int qib_init_7220_variables(struct qib_devdata *dd)
        /* we always allocate at least 2048 bytes for eager buffers */
        ret = ib_mtu_enum_to_int(qib_ibmtu);
        dd->rcvegrbufsize = ret != -1 ? max(ret, 2048) : QIB_DEFAULT_MTU;
+       BUG_ON(!is_power_of_2(dd->rcvegrbufsize));
+       dd->rcvegrbufsize_shift = ilog2(dd->rcvegrbufsize);
 
        qib_7220_tidtemplate(dd);