X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fnet%2Fbnxt%2Fbnxt_vnic.c;h=104342e13be084604a95006f0647acea7cbcd770;hb=aa2cbd32e9695c0f552ee26653b7867cade5ffb3;hp=2f0ed10265c290214a07c7eb087d8900c599d5ba;hpb=adc0f81c6552d18be4d0ebc964c38bfe5fc26b2a;p=dpdk.git diff --git a/drivers/net/bnxt/bnxt_vnic.c b/drivers/net/bnxt/bnxt_vnic.c index 2f0ed10265..104342e13b 100644 --- a/drivers/net/bnxt/bnxt_vnic.c +++ b/drivers/net/bnxt/bnxt_vnic.c @@ -35,7 +35,7 @@ void prandom_bytes(void *dest_ptr, size_t len) } } -void bnxt_init_vnics(struct bnxt *bp) +static void bnxt_init_vnics(struct bnxt *bp) { struct bnxt_vnic_info *vnic; uint16_t max_vnics; @@ -51,8 +51,8 @@ void bnxt_init_vnics(struct bnxt *bp) 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); @@ -75,12 +75,13 @@ struct bnxt_vnic_info *bnxt_alloc_vnic(struct bnxt *bp) 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; } } @@ -179,6 +180,7 @@ int bnxt_alloc_vnic_attributes(struct bnxt *bp) 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; @@ -220,6 +222,7 @@ int bnxt_alloc_vnic_mem(struct bnxt *bp) return -ENOMEM; } bp->vnic_info = vnic_mem; + bnxt_init_vnics(bp); return 0; }