| 2107 | } |
| 2108 | |
| 2109 | static int |
| 2110 | cpfl_ctrl_path_open(struct cpfl_adapter_ext *adapter) |
| 2111 | { |
| 2112 | int ret; |
| 2113 | |
| 2114 | ret = cpfl_vc_create_ctrl_vport(adapter); |
| 2115 | if (ret) { |
| 2116 | PMD_INIT_LOG(ERR, "Failed to create control vport"); |
| 2117 | return ret; |
| 2118 | } |
| 2119 | |
| 2120 | ret = cpfl_init_ctrl_vport(adapter); |
| 2121 | if (ret) { |
| 2122 | PMD_INIT_LOG(ERR, "Failed to init control vport"); |
| 2123 | goto err_init_ctrl_vport; |
| 2124 | } |
| 2125 | |
| 2126 | ret = cpfl_cfgq_setup(adapter); |
| 2127 | if (ret) { |
| 2128 | PMD_INIT_LOG(ERR, "Failed to setup control queues"); |
| 2129 | goto err_cfgq_setup; |
| 2130 | } |
| 2131 | |
| 2132 | ret = cpfl_add_cfgqs(adapter); |
| 2133 | if (ret) { |
| 2134 | PMD_INIT_LOG(ERR, "Failed to add control queues"); |
| 2135 | goto err_add_cfgq; |
| 2136 | } |
| 2137 | |
| 2138 | ret = cpfl_start_cfgqs(adapter); |
| 2139 | if (ret) { |
| 2140 | PMD_INIT_LOG(ERR, "Failed to start control queues"); |
| 2141 | goto err_start_cfgqs; |
| 2142 | } |
| 2143 | |
| 2144 | return 0; |
| 2145 | |
| 2146 | err_start_cfgqs: |
| 2147 | cpfl_stop_cfgqs(adapter); |
| 2148 | err_add_cfgq: |
| 2149 | cpfl_remove_cfgqs(adapter); |
| 2150 | err_cfgq_setup: |
| 2151 | err_init_ctrl_vport: |
| 2152 | idpf_vc_vport_destroy(&adapter->ctrl_vport.base); |
| 2153 | |
| 2154 | return ret; |
| 2155 | } |
| 2156 | |
| 2157 | static struct virtchnl2_get_capabilities req_caps = { |
| 2158 | .csum_caps = |
no test coverage detected