X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Ffailsafe%2Ffailsafe_ops.c;h=96f7e456f9e0b3179b08f2d234f750d21b5ef92f;hb=1256805dd54d;hp=a87e49b97d33ec01a103ea6ff3ad967aa7cbfbee;hpb=938420ebd1ca42060e89c970bc94a38843f724f1;p=dpdk.git diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c index a87e49b97d..96f7e456f9 100644 --- a/drivers/net/failsafe/failsafe_ops.c +++ b/drivers/net/failsafe/failsafe_ops.c @@ -380,7 +380,7 @@ fs_rx_queue_release(void *queue) rxq = queue; dev = &rte_eth_devices[rxq->priv->data->port_id]; fs_lock(dev, 0); - if (rxq->event_fd > 0) + if (rxq->event_fd >= 0) close(rxq->event_fd); FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) { if (ETH(sdev)->data->rx_queues != NULL && @@ -1068,6 +1068,15 @@ fs_dev_merge_info(struct rte_eth_dev_info *info, info->rx_queue_offload_capa &= sinfo->rx_queue_offload_capa; info->tx_queue_offload_capa &= sinfo->tx_queue_offload_capa; info->flow_type_rss_offloads &= sinfo->flow_type_rss_offloads; + + /* + * RETA size is a GCD of RETA sizes indicated by sub-devices. + * Each of these sizes is a power of 2, so use the lower one. + */ + info->reta_size = RTE_MIN(info->reta_size, sinfo->reta_size); + + info->hash_key_size = RTE_MIN(info->hash_key_size, + sinfo->hash_key_size); } /** @@ -1117,6 +1126,8 @@ fs_dev_infos_get(struct rte_eth_dev *dev, infos->max_hash_mac_addrs = UINT32_MAX; infos->max_vfs = UINT16_MAX; infos->max_vmdq_pools = UINT16_MAX; + infos->reta_size = UINT16_MAX; + infos->hash_key_size = UINT8_MAX; /* * Set of capabilities that can be verified upon