Module Name: src
Committed By: pgoyette
Date: Mon Jan 27 17:09:17 UTC 2020
Modified Files:
src/sys/compat/common: Makefile.sysio
src/sys/modules/compat_crypto_50: Makefile
src/sys/opencrypto: files.opencrypto ocryptodev.c
Added Files:
src/sys/opencrypto: compat_crypto_50.c
Log Message:
Split the module glue out from the rest of opencrypto/ocryptodev to
make rump happy.
Rump doesn't have compat modules (the compat code is included in the
relevant librump*.so), so there's no module compat_50 listed in
link_set_modules, and thus ocryptodev's MODULE(...) can't "require"
it.
This fixes the problem of "built-in module compat_50 not found" when
starting up rump_allserver (or rump_server with -l rumpdev_opencrypto).
XXX This does not resolve the long-standing "crypto: unable to
XXX register devsw, error 17" message noted at line 78 of
XXX sys/rump/dev/lib/libopencrypto/opencrypto_component.c
To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/sys/compat/common/Makefile.sysio
cvs rdiff -u -r1.2 -r1.3 src/sys/modules/compat_crypto_50/Makefile
cvs rdiff -u -r0 -r1.1 src/sys/opencrypto/compat_crypto_50.c
cvs rdiff -u -r1.27 -r1.28 src/sys/opencrypto/files.opencrypto
cvs rdiff -u -r1.15 -r1.16 src/sys/opencrypto/ocryptodev.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/compat/common/Makefile.sysio
diff -u src/sys/compat/common/Makefile.sysio:1.12 src/sys/compat/common/Makefile.sysio:1.13
--- src/sys/compat/common/Makefile.sysio:1.12 Fri May 17 07:37:11 2019
+++ src/sys/compat/common/Makefile.sysio Mon Jan 27 17:09:17 2020
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.sysio,v 1.12 2019/05/17 07:37:11 msaitoh Exp $
+# $NetBSD: Makefile.sysio,v 1.13 2020/01/27 17:09:17 pgoyette Exp $
# Sources for syscall and ioctl compatibility across the versions.
@@ -51,7 +51,7 @@ SRCS+= kern_mod_80.c if_media_80.c
# More compatibility code for NetBSD 5.0
.PATH: ${S}/opencrypto
-SRCS+= ocryptodev.c
+SRCS+= ocryptodev.c compat_crypto_50.c
# Raidframe compatibility code for NetBSD 5.0 and 8.0
.PATH: ${S}/dev/raidframe
Index: src/sys/modules/compat_crypto_50/Makefile
diff -u src/sys/modules/compat_crypto_50/Makefile:1.2 src/sys/modules/compat_crypto_50/Makefile:1.3
--- src/sys/modules/compat_crypto_50/Makefile:1.2 Sun Jan 27 02:08:45 2019
+++ src/sys/modules/compat_crypto_50/Makefile Mon Jan 27 17:09:17 2020
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.2 2019/01/27 02:08:45 pgoyette Exp $
+# $NetBSD: Makefile,v 1.3 2020/01/27 17:09:17 pgoyette Exp $
.include "../Makefile.inc"
@@ -7,6 +7,6 @@ CPPFLAGS+= -DCOMPAT_50
.PATH: ${S}/opencrypto
KMOD= compat_crypto_50
-SRCS= ocryptodev.c
+SRCS= ocryptodev.c compat_crypto_50.c
.include <bsd.kmodule.mk>
Index: src/sys/opencrypto/files.opencrypto
diff -u src/sys/opencrypto/files.opencrypto:1.27 src/sys/opencrypto/files.opencrypto:1.28
--- src/sys/opencrypto/files.opencrypto:1.27 Sun Jan 27 02:08:48 2019
+++ src/sys/opencrypto/files.opencrypto Mon Jan 27 17:09:17 2020
@@ -1,4 +1,4 @@
-# $NetBSD: files.opencrypto,v 1.27 2019/01/27 02:08:48 pgoyette Exp $
+# $NetBSD: files.opencrypto,v 1.28 2020/01/27 17:09:17 pgoyette Exp $
#
#
@@ -26,6 +26,7 @@ file opencrypto/gmac.c swcrypto
defpseudo crypto: opencrypto
file opencrypto/cryptodev.c crypto
file opencrypto/ocryptodev.c compat_50 & crypto
+file opencrypto/compat_crypto_50.c compat_50 & crypto
defflag opt_ocf.h CRYPTO_DEBUG CRYPTO_TIMING
defparam opt_ocf.h CRYPTO_RET_Q_MAXLEN CRYPTO_RET_KQ_MAXLEN
Index: src/sys/opencrypto/ocryptodev.c
diff -u src/sys/opencrypto/ocryptodev.c:1.15 src/sys/opencrypto/ocryptodev.c:1.16
--- src/sys/opencrypto/ocryptodev.c:1.15 Thu Jan 16 15:29:24 2020
+++ src/sys/opencrypto/ocryptodev.c Mon Jan 27 17:09:17 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: ocryptodev.c,v 1.15 2020/01/16 15:29:24 christos Exp $ */
+/* $NetBSD: ocryptodev.c,v 1.16 2020/01/27 17:09:17 pgoyette Exp $ */
/* $FreeBSD: src/sys/opencrypto/cryptodev.c,v 1.4.2.4 2003/06/03 00:09:02 sam Exp $ */
/* $OpenBSD: cryptodev.c,v 1.53 2002/07/10 22:21:30 mickey Exp $ */
@@ -69,7 +69,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ocryptodev.c,v 1.15 2020/01/16 15:29:24 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ocryptodev.c,v 1.16 2020/01/27 17:09:17 pgoyette Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -287,36 +287,3 @@ ocryptodev_msession(struct fcrypt *fcr,
return 0;
}
-
-static void
-crypto_50_init(void)
-{
-
- MODULE_HOOK_SET(ocryptof_50_hook, ocryptof_ioctl);
-}
-
-static void
-crypto_50_fini(void)
-{
-
- MODULE_HOOK_UNSET(ocryptof_50_hook);
-}
-
-MODULE(MODULE_CLASS_EXEC, compat_crypto_50, "crypto,compat_50");
-
-static int
-compat_crypto_50_modcmd(modcmd_t cmd, void *arg)
-{
-
- switch (cmd) {
- case MODULE_CMD_INIT:
- crypto_50_init();
- return 0;
- case MODULE_CMD_FINI:
- crypto_50_fini();
- return 0;
- default:
- return ENOTTY;
- }
-}
-
Added files:
Index: src/sys/opencrypto/compat_crypto_50.c
diff -u /dev/null src/sys/opencrypto/compat_crypto_50.c:1.1
--- /dev/null Mon Jan 27 17:09:17 2020
+++ src/sys/opencrypto/compat_crypto_50.c Mon Jan 27 17:09:17 2020
@@ -0,0 +1,94 @@
+/* $NetBSD: compat_crypto_50.c,v 1.1 2020/01/27 17:09:17 pgoyette Exp $ */
+
+/*-
+ * Copyright (c) 2008 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Coyote Point Systems, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: compat_crypto_50.c,v 1.1 2020/01/27 17:09:17 pgoyette Exp $");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+/* XXX PRG
+#include <sys/kmem.h>
+#include <sys/malloc.h>
+#include <sys/mbuf.h>
+#include <sys/pool.h>
+#include <sys/sysctl.h>
+#include <sys/file.h>
+#include <sys/filedesc.h>
+#include <sys/errno.h>
+#include <sys/md5.h>
+#include <sys/sha1.h>
+#include <sys/conf.h>
+#include <sys/device.h>
+#include <sys/kauth.h>
+#include <sys/select.h>
+#include <sys/poll.h>
+#include <sys/atomic.h>
+XXX PRG */
+#include <sys/compat_stub.h>
+#include <sys/module.h>
+
+#include <opencrypto/cryptodev.h>
+#include <opencrypto/ocryptodev.h>
+
+/* Module glue for compat ioctl's */
+
+static void
+crypto_50_init(void)
+{
+
+ MODULE_HOOK_SET(ocryptof_50_hook, ocryptof_ioctl);
+}
+
+static void
+crypto_50_fini(void)
+{
+
+ MODULE_HOOK_UNSET(ocryptof_50_hook);
+}
+
+MODULE(MODULE_CLASS_EXEC, compat_crypto_50, "crypto,compat_50");
+
+static int
+compat_crypto_50_modcmd(modcmd_t cmd, void *arg)
+{
+
+ switch (cmd) {
+ case MODULE_CMD_INIT:
+ crypto_50_init();
+ return 0;
+ case MODULE_CMD_FINI:
+ crypto_50_fini();
+ return 0;
+ default:
+ return ENOTTY;
+ }
+}
+