| 2744 | } |
| 2745 | |
| 2746 | static int |
| 2747 | mlx5_os_parse_eth_devargs(struct rte_device *dev, |
| 2748 | struct rte_eth_devargs *eth_da) |
| 2749 | { |
| 2750 | int ret = 0; |
| 2751 | |
| 2752 | if (dev->devargs == NULL) |
| 2753 | return 0; |
| 2754 | memset(eth_da, 0, sizeof(*eth_da)); |
| 2755 | /* Parse representor information first from class argument. */ |
| 2756 | if (dev->devargs->cls_str) |
| 2757 | ret = rte_eth_devargs_parse(dev->devargs->cls_str, eth_da); |
| 2758 | if (ret != 0) { |
| 2759 | DRV_LOG(ERR, "failed to parse device arguments: %s", |
| 2760 | dev->devargs->cls_str); |
| 2761 | return -rte_errno; |
| 2762 | } |
| 2763 | if (eth_da->type == RTE_ETH_REPRESENTOR_NONE && dev->devargs->args) { |
| 2764 | /* Parse legacy device argument */ |
| 2765 | ret = rte_eth_devargs_parse(dev->devargs->args, eth_da); |
| 2766 | if (ret) { |
| 2767 | DRV_LOG(ERR, "failed to parse device arguments: %s", |
| 2768 | dev->devargs->args); |
| 2769 | return -rte_errno; |
| 2770 | } |
| 2771 | } |
| 2772 | return 0; |
| 2773 | } |
| 2774 | |
| 2775 | /** |
| 2776 | * Callback to register a PCI device. |
no test coverage detected