|
@@ -3458,13 +3458,18 @@ static int bnxt_hwrm_func_drv_rgtr(struct bnxt *bp)
|
|
|
req.ver_upd = DRV_VER_UPD;
|
|
|
|
|
|
if (BNXT_PF(bp)) {
|
|
|
- DECLARE_BITMAP(vf_req_snif_bmap, 256);
|
|
|
- u32 *data = (u32 *)vf_req_snif_bmap;
|
|
|
+ u32 data[8];
|
|
|
int i;
|
|
|
|
|
|
- memset(vf_req_snif_bmap, 0, sizeof(vf_req_snif_bmap));
|
|
|
- for (i = 0; i < ARRAY_SIZE(bnxt_vf_req_snif); i++)
|
|
|
- __set_bit(bnxt_vf_req_snif[i], vf_req_snif_bmap);
|
|
|
+ memset(data, 0, sizeof(data));
|
|
|
+ for (i = 0; i < ARRAY_SIZE(bnxt_vf_req_snif); i++) {
|
|
|
+ u16 cmd = bnxt_vf_req_snif[i];
|
|
|
+ unsigned int bit, idx;
|
|
|
+
|
|
|
+ idx = cmd / 32;
|
|
|
+ bit = cmd % 32;
|
|
|
+ data[idx] |= 1 << bit;
|
|
|
+ }
|
|
|
|
|
|
for (i = 0; i < 8; i++)
|
|
|
req.vf_req_fwd[i] = cpu_to_le32(data[i]);
|