|
@@ -3202,13 +3202,16 @@ int bnx2x_enable_sriov(struct bnx2x *bp)
|
|
|
bnx2x_iov_static_resc(bp, vf);
|
|
|
}
|
|
|
|
|
|
- /* prepare msix vectors in VF configuration space */
|
|
|
+ /* prepare msix vectors in VF configuration space - the value in the
|
|
|
+ * PCI configuration space should be the index of the last entry,
|
|
|
+ * namely one less than the actual size of the table
|
|
|
+ */
|
|
|
for (vf_idx = first_vf; vf_idx < first_vf + req_vfs; vf_idx++) {
|
|
|
bnx2x_pretend_func(bp, HW_VF_HANDLE(bp, vf_idx));
|
|
|
REG_WR(bp, PCICFG_OFFSET + GRC_CONFIG_REG_VF_MSIX_CONTROL,
|
|
|
- num_vf_queues);
|
|
|
+ num_vf_queues - 1);
|
|
|
DP(BNX2X_MSG_IOV, "set msix vec num in VF %d cfg space to %d\n",
|
|
|
- vf_idx, num_vf_queues);
|
|
|
+ vf_idx, num_vf_queues - 1);
|
|
|
}
|
|
|
bnx2x_pretend_func(bp, BP_ABS_FUNC(bp));
|
|
|
|