| 3667 | } |
| 3668 | |
| 3669 | static int ena_parse_devargs(struct ena_adapter *adapter, |
| 3670 | struct rte_devargs *devargs) |
| 3671 | { |
| 3672 | static const char * const allowed_args[] = { |
| 3673 | ENA_DEVARG_LARGE_LLQ_HDR, |
| 3674 | ENA_DEVARG_MISS_TXC_TO, |
| 3675 | ENA_DEVARG_ENABLE_LLQ, |
| 3676 | NULL, |
| 3677 | }; |
| 3678 | struct rte_kvargs *kvlist; |
| 3679 | int rc; |
| 3680 | |
| 3681 | if (devargs == NULL) |
| 3682 | return 0; |
| 3683 | |
| 3684 | kvlist = rte_kvargs_parse(devargs->args, allowed_args); |
| 3685 | if (kvlist == NULL) { |
| 3686 | PMD_INIT_LOG(ERR, "Invalid device arguments: %s\n", |
| 3687 | devargs->args); |
| 3688 | return -EINVAL; |
| 3689 | } |
| 3690 | |
| 3691 | rc = rte_kvargs_process(kvlist, ENA_DEVARG_LARGE_LLQ_HDR, |
| 3692 | ena_process_bool_devarg, adapter); |
| 3693 | if (rc != 0) |
| 3694 | goto exit; |
| 3695 | rc = rte_kvargs_process(kvlist, ENA_DEVARG_MISS_TXC_TO, |
| 3696 | ena_process_uint_devarg, adapter); |
| 3697 | if (rc != 0) |
| 3698 | goto exit; |
| 3699 | rc = rte_kvargs_process(kvlist, ENA_DEVARG_ENABLE_LLQ, |
| 3700 | ena_process_bool_devarg, adapter); |
| 3701 | |
| 3702 | exit: |
| 3703 | rte_kvargs_free(kvlist); |
| 3704 | |
| 3705 | return rc; |
| 3706 | } |
| 3707 | |
| 3708 | static int ena_setup_rx_intr(struct rte_eth_dev *dev) |
| 3709 | { |
no test coverage detected