svn commit: r360652 - stable/12/sys/opencrypto
John Baldwin
jhb at FreeBSD.org
Tue May 5 04:37:06 UTC 2020
Author: jhb
Date: Tue May 5 04:37:05 2020
New Revision: 360652
URL: https://svnweb.freebsd.org/changeset/base/360652
Log:
MFC 356508: Use falloc_noinstall + finstall for crypto file descriptors.
Modified:
stable/12/sys/opencrypto/cryptodev.c
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/opencrypto/cryptodev.c
==============================================================================
--- stable/12/sys/opencrypto/cryptodev.c Tue May 5 04:25:25 2020 (r360651)
+++ stable/12/sys/opencrypto/cryptodev.c Tue May 5 04:37:05 2020 (r360652)
@@ -1498,20 +1498,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-all
mailing list