X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fbnxt%2Fbnxt_rxq.c;h=1003ca6410cc0b01eadfe1adf9a18a364375b75c;hb=e37bbe212d48a7375a6239478a114829d05692b5;hp=db9aa1f3ede91f18fa62feb488b8c3cce9c87dd2;hpb=98bb60d9525c9b528d1b182da527d666203dc0af;p=dpdk.git diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index db9aa1f3ed..1003ca6410 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -172,9 +172,15 @@ out: bp->flags &= ~BNXT_FLAG_UPDATE_HASH; for (i = 0; i < bp->nr_vnics; i++) { + uint32_t lvl = ETH_RSS_LEVEL(rss->rss_hf); + vnic = &bp->vnic_info[i]; vnic->hash_type = bnxt_rte_to_hwrm_hash_types(rss->rss_hf); + vnic->hash_mode = + bnxt_rte_to_hwrm_hash_level(bp, + rss->rss_hf, + lvl); /* * Use the supplied key if the key length is @@ -211,7 +217,8 @@ void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq) for (i = 0; i < rxq->rx_ring->rx_ring_struct->ring_size; i++) { if (sw_ring[i]) { - rte_pktmbuf_free_seg(sw_ring[i]); + if (sw_ring[i] != &rxq->fake_mbuf) + rte_pktmbuf_free_seg(sw_ring[i]); sw_ring[i] = NULL; } } @@ -305,7 +312,7 @@ int bnxt_rx_queue_setup_op(struct rte_eth_dev *eth_dev, return -EINVAL; } - if (!nb_desc || nb_desc > MAX_RX_DESC_CNT) { + if (nb_desc < BNXT_MIN_RING_DESC || nb_desc > MAX_RX_DESC_CNT) { PMD_DRV_LOG(ERR, "nb_desc %d is invalid\n", nb_desc); rc = -EINVAL; goto out; @@ -326,7 +333,13 @@ int bnxt_rx_queue_setup_op(struct rte_eth_dev *eth_dev, rxq->bp = bp; rxq->mb_pool = mp; rxq->nb_rx_desc = nb_desc; - rxq->rx_free_thresh = rx_conf->rx_free_thresh; + rxq->rx_free_thresh = + RTE_MIN(rte_align32pow2(nb_desc) / 4, RTE_BNXT_MAX_RX_BURST); + + if (rx_conf->rx_drop_en != BNXT_DEFAULT_RX_DROP_EN) + PMD_DRV_LOG(NOTICE, + "Per-queue config of drop-en is not supported.\n"); + rxq->drop_en = BNXT_DEFAULT_RX_DROP_EN; PMD_DRV_LOG(DEBUG, "RX Buf MTU %d\n", eth_dev->data->mtu);