| 504 | } |
| 505 | |
| 506 | static int |
| 507 | xlp_alloc_cmd_params(struct xlp_sec_command *cmd, unsigned int nsegs) |
| 508 | { |
| 509 | int err = 0; |
| 510 | |
| 511 | if(cmd == NULL) { |
| 512 | err = EINVAL; |
| 513 | goto error; |
| 514 | } |
| 515 | if ((cmd->ctrlp = malloc(sizeof(struct nlm_crypto_pkt_ctrl), M_DEVBUF, |
| 516 | M_NOWAIT | M_ZERO)) == NULL) { |
| 517 | err = ENOMEM; |
| 518 | goto error; |
| 519 | } |
| 520 | if (((uintptr_t)cmd->ctrlp & (XLP_L2L3_CACHELINE_SIZE - 1))) { |
| 521 | err = EINVAL; |
| 522 | goto error; |
| 523 | } |
| 524 | /* (nsegs - 1) because one seg is part of the structure already */ |
| 525 | if ((cmd->paramp = malloc(sizeof(struct nlm_crypto_pkt_param) + |
| 526 | (16 * (nsegs - 1)), M_DEVBUF, M_NOWAIT | M_ZERO)) == NULL) { |
| 527 | err = ENOMEM; |
| 528 | goto error; |
| 529 | } |
| 530 | if (((uintptr_t)cmd->paramp & (XLP_L2L3_CACHELINE_SIZE - 1))) { |
| 531 | err = EINVAL; |
| 532 | goto error; |
| 533 | } |
| 534 | if ((cmd->iv = malloc(EALG_MAX_BLOCK_LEN, M_DEVBUF, |
| 535 | M_NOWAIT | M_ZERO)) == NULL) { |
| 536 | err = ENOMEM; |
| 537 | goto error; |
| 538 | } |
| 539 | if ((cmd->hashdest = malloc(HASH_MAX_LEN, M_DEVBUF, |
| 540 | M_NOWAIT | M_ZERO)) == NULL) { |
| 541 | err = ENOMEM; |
| 542 | goto error; |
| 543 | } |
| 544 | error: |
| 545 | return (err); |
| 546 | } |
| 547 | |
| 548 | static void |
| 549 | xlp_free_cmd_params(struct xlp_sec_command *cmd) |
no test coverage detected