| 204 | } |
| 205 | |
| 206 | static int |
| 207 | mrvl_pp2_fixup_init(void) |
| 208 | { |
| 209 | struct pp2_bpool_params bpool_params; |
| 210 | char name[15]; |
| 211 | int err, i; |
| 212 | |
| 213 | memset(dummy_pool, 0, sizeof(dummy_pool)); |
| 214 | for (i = 0; i < pp2_get_num_inst(); i++) { |
| 215 | dummy_pool_id[i] = mrvl_reserve_bit(&used_bpools[i], |
| 216 | PP2_BPOOL_NUM_POOLS); |
| 217 | if (dummy_pool_id[i] < 0) { |
| 218 | MRVL_LOG(ERR, "Can't find free pool\n"); |
| 219 | return -1; |
| 220 | } |
| 221 | |
| 222 | memset(name, 0, sizeof(name)); |
| 223 | snprintf(name, sizeof(name), "pool-%d:%d", i, dummy_pool_id[i]); |
| 224 | memset(&bpool_params, 0, sizeof(bpool_params)); |
| 225 | bpool_params.match = name; |
| 226 | bpool_params.buff_len = MRVL_PKT_OFFS; |
| 227 | bpool_params.dummy_short_pool = 1; |
| 228 | err = pp2_bpool_init(&bpool_params, &dummy_pool[i]); |
| 229 | if (err != 0 || !dummy_pool[i]) { |
| 230 | MRVL_LOG(ERR, "BPool init failed!\n"); |
| 231 | used_bpools[i] &= ~(1 << dummy_pool_id[i]); |
| 232 | return -1; |
| 233 | } |
| 234 | } |
| 235 | |
| 236 | return 0; |
| 237 | } |
| 238 | |
| 239 | /** |
| 240 | * Initialize packet processor. |
no test coverage detected