| 1305 | } |
| 1306 | |
| 1307 | void |
| 1308 | rte_cryptodev_stop(uint8_t dev_id) |
| 1309 | { |
| 1310 | struct rte_cryptodev *dev; |
| 1311 | |
| 1312 | if (!rte_cryptodev_is_valid_dev(dev_id)) { |
| 1313 | CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id); |
| 1314 | return; |
| 1315 | } |
| 1316 | |
| 1317 | dev = &rte_crypto_devices[dev_id]; |
| 1318 | |
| 1319 | if (*dev->dev_ops->dev_stop == NULL) |
| 1320 | return; |
| 1321 | |
| 1322 | if (dev->data->dev_started == 0) { |
| 1323 | CDEV_LOG_ERR("Device with dev_id=%" PRIu8 " already stopped", |
| 1324 | dev_id); |
| 1325 | return; |
| 1326 | } |
| 1327 | |
| 1328 | /* point fast-path functions to dummy ones */ |
| 1329 | cryptodev_fp_ops_reset(rte_crypto_fp_ops + dev_id); |
| 1330 | |
| 1331 | (*dev->dev_ops->dev_stop)(dev); |
| 1332 | rte_cryptodev_trace_stop(dev_id); |
| 1333 | dev->data->dev_started = 0; |
| 1334 | } |
| 1335 | |
| 1336 | int |
| 1337 | rte_cryptodev_close(uint8_t dev_id) |