IB/qib: Eliminate divide/mod in converting idx to egr buf pointer
[linux.git] / drivers / infiniband / hw / qib / qib_iba6120.c
index d8ca0a0b970d39879e7d981acbf5cb1647dca424..781a802a321f069d3a8b6552713a3cb550d52803 100644 (file)
@@ -3273,6 +3273,8 @@ static int init_6120_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_6120_tidtemplate(dd);