MCPcopy Create free account
hub / github.com/F-Stack/f-stack / nitrox_sym_dev_qp_setup

Function nitrox_sym_dev_qp_setup

dpdk/drivers/crypto/nitrox/nitrox_sym.c:170–222  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

168}
169
170static int
171nitrox_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
217req_pool_err:
218 nitrox_qp_release(qp, ndev->bar_addr);
219qp_setup_err:
220 rte_free(qp);
221 return err;
222}
223
224static int
225nitrox_sym_dev_qp_release(struct rte_cryptodev *cdev, uint16_t qp_id)

Callers

nothing calls this directly

Calls 6

rte_zmalloc_socketFunction · 0.85
nitrox_qp_setupFunction · 0.85
nitrox_qp_releaseFunction · 0.85
rte_freeFunction · 0.85

Tested by

no test coverage detected