svn commit: r356508 - head/sys/opencrypto
John Baldwin
jhb at FreeBSD.org
Wed Jan 8 19:03:25 UTC 2020
Author: jhb
Date: Wed Jan 8 19:03:24 2020
New Revision: 356508
URL: https://svnweb.freebsd.org/changeset/base/356508
Log:
Use falloc_noinstall + finstall for crypto file descriptors.
Reviewed by: cem, kib
MFC after: 1 week
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D23078
Modified:
head/sys/opencrypto/cryptodev.c
Modified: head/sys/opencrypto/cryptodev.c
==============================================================================
--- head/sys/opencrypto/cryptodev.c Wed Jan 8 18:59:23 2020 (r356507)
+++ head/sys/opencrypto/cryptodev.c Wed Jan 8 19:03:24 2020 (r356508)
@@ -1499,20 +1499,21 @@ cryptoioctl(struct cdev *dev, u_long cmd, caddr_t data
switch (cmd) {
case CRIOGET:
+ error = falloc_noinstall(td, &f);
+ if (error)
+ break;
+
fcr = malloc(sizeof(struct fcrypt), M_XDATA, M_WAITOK | M_ZERO);
TAILQ_INIT(&fcr->csessions);
mtx_init(&fcr->lock, "fcrypt", NULL, MTX_DEF);
- error = falloc(td, &f, &fd, 0);
-
+ finit(f, FREAD | FWRITE, DTYPE_CRYPTO, fcr, &cryptofops);
+ error = finstall(td, f, &fd, 0, NULL);
if (error) {
mtx_destroy(&fcr->lock);
free(fcr, M_XDATA);
- return (error);
- }
- /* falloc automatically provides an extra reference to 'f'. */
- finit(f, FREAD | FWRITE, DTYPE_CRYPTO, fcr, &cryptofops);
- *(u_int32_t *)data = fd;
+ } else
+ *(uint32_t *)data = fd;
fdrop(f, td);
break;
case CRIOFINDDEV:
More information about the svn-src-head
mailing list