| 168 | } |
| 169 | |
| 170 | static int |
| 171 | nitrox_sym_dev_qp_setup(struct rte_cryptodev *cdev, uint16_t qp_id, |
| 172 | const struct rte_cryptodev_qp_conf *qp_conf, |
| 173 | int socket_id) |
| 174 | { |
| 175 | struct nitrox_sym_device *sym_dev = cdev->data->dev_private; |
| 176 | struct nitrox_device *ndev = sym_dev->ndev; |
| 177 | struct nitrox_qp *qp = NULL; |
| 178 | int err; |
| 179 | |
| 180 | NITROX_LOG(DEBUG, "queue %d\n", qp_id); |
| 181 | if (qp_id >= ndev->nr_queues) { |
| 182 | NITROX_LOG(ERR, "queue %u invalid, max queues supported %d\n", |
| 183 | qp_id, ndev->nr_queues); |
| 184 | return -EINVAL; |
| 185 | } |
| 186 | |
| 187 | if (cdev->data->queue_pairs[qp_id]) { |
| 188 | err = nitrox_sym_dev_qp_release(cdev, qp_id); |
| 189 | if (err) |
| 190 | return err; |
| 191 | } |
| 192 | |
| 193 | qp = rte_zmalloc_socket("nitrox PMD qp", sizeof(*qp), |
| 194 | RTE_CACHE_LINE_SIZE, |
| 195 | socket_id); |
| 196 | if (!qp) { |
| 197 | NITROX_LOG(ERR, "Failed to allocate nitrox qp\n"); |
| 198 | return -ENOMEM; |
| 199 | } |
| 200 | |
| 201 | qp->qno = qp_id; |
| 202 | err = nitrox_qp_setup(qp, ndev->bar_addr, cdev->data->name, |
| 203 | qp_conf->nb_descriptors, NPS_PKT_IN_INSTR_SIZE, |
| 204 | socket_id); |
| 205 | if (unlikely(err)) |
| 206 | goto qp_setup_err; |
| 207 | |
| 208 | qp->sr_mp = nitrox_sym_req_pool_create(cdev, qp->count, qp_id, |
| 209 | socket_id); |
| 210 | if (unlikely(!qp->sr_mp)) |
| 211 | goto req_pool_err; |
| 212 | |
| 213 | cdev->data->queue_pairs[qp_id] = qp; |
| 214 | NITROX_LOG(DEBUG, "queue %d setup done\n", qp_id); |
| 215 | return 0; |
| 216 | |
| 217 | req_pool_err: |
| 218 | nitrox_qp_release(qp, ndev->bar_addr); |
| 219 | qp_setup_err: |
| 220 | rte_free(qp); |
| 221 | return err; |
| 222 | } |
| 223 | |
| 224 | static int |
| 225 | nitrox_sym_dev_qp_release(struct rte_cryptodev *cdev, uint16_t qp_id) |
nothing calls this directly
no test coverage detected