}
}
-void bnxt_init_vnics(struct bnxt *bp)
+static void bnxt_init_vnics(struct bnxt *bp)
{
struct bnxt_vnic_info *vnic;
uint16_t max_vnics;
vnic->lb_rule = (uint16_t)HWRM_NA_SIGNATURE;
vnic->hash_mode =
HWRM_VNIC_RSS_CFG_INPUT_HASH_MODE_FLAGS_DEFAULT;
+ vnic->rx_queue_cnt = 0;
- prandom_bytes(vnic->rss_hash_key, HW_HASH_KEY_SIZE);
STAILQ_INIT(&vnic->filter);
STAILQ_INIT(&vnic->flow_list);
STAILQ_INSERT_TAIL(&bp->free_vnic_list, vnic, next);
void bnxt_free_all_vnics(struct bnxt *bp)
{
- struct bnxt_vnic_info *temp;
+ struct bnxt_vnic_info *vnic;
unsigned int i;
- for (i = 0; i < bp->nr_vnics; i++) {
- temp = &bp->vnic_info[i];
- STAILQ_INSERT_TAIL(&bp->free_vnic_list, temp, next);
+ for (i = 0; i < bp->max_vnics; i++) {
+ vnic = &bp->vnic_info[i];
+ STAILQ_INSERT_TAIL(&bp->free_vnic_list, vnic, next);
+ vnic->rx_queue_cnt = 0;
}
}
HW_HASH_KEY_SIZE);
vnic->mc_list_dma_addr = vnic->rss_hash_key_dma_addr +
HW_HASH_KEY_SIZE;
+ prandom_bytes(vnic->rss_hash_key, HW_HASH_KEY_SIZE);
}
return 0;
return -ENOMEM;
}
bp->vnic_info = vnic_mem;
+ bnxt_init_vnics(bp);
return 0;
}