From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from eddie.linux-mips.org ([148.251.95.138] helo=cvs.linux-mips.org) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1hxRsm-0003qg-VN for ptxdist@pengutronix.de; Tue, 13 Aug 2019 10:10:17 +0200 Received: (from localhost user: 'ladis' uid#1021 fake: STDIN (ladis@eddie.linux-mips.org)) by eddie.linux-mips.org id S23990394AbfHMIKP2ot-l (ORCPT ); Tue, 13 Aug 2019 10:10:15 +0200 Date: Tue, 13 Aug 2019 10:10:14 +0200 From: Ladislav Michl Message-ID: <20190813081014.GA29873@lenoch> References: <20190812131914.GA23382@lenoch> <20190812131952.GB23382@lenoch> <20190813073333.5lkngse42acqajto@pengutronix.de> <20190813080049.GA29489@lenoch> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190813080049.GA29489@lenoch> Subject: Re: [ptxdist] [PATCH v2 1/3] cryptodev: new package List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de On Tue, Aug 13, 2019 at 10:00:49AM +0200, Ladislav Michl wrote: > On Tue, Aug 13, 2019 at 09:33:33AM +0200, Michael Olbrich wrote: > > On Mon, Aug 12, 2019 at 03:19:52PM +0200, Ladislav Michl wrote: > > > Cryptodev-linux is a device that allows access to Linux kernel > > > cryptographic drivers; thus allowing of userspace applications > > > to take advantage of hardware accelerators. Cryptodev-linux is > > > implemented as a standalone module that requires no dependencies > > > other than a stock linux kernel. Its API is compatible with > > > OpenBSD's cryptodev userspace API (/dev/crypto). > > > > > > Signed-off-by: Ladislav Michl > > > > Please update to the latest kernel module template. > > One more question. Header required by openssl and gnutls is copied > during targetinstall stage. Shall we do it manually inside install stage > to satisfy dependencies? > > From: Ladislav Michl > Date: Thu, 22 Jun 2017 23:01:10 +0200 > Subject: [PATCH v3 1/3] cryptodev: new package Argh! Actually append the right patch: From: Ladislav Michl Date: Thu, 22 Jun 2017 23:01:10 +0200 Subject: [PATCH v3 1/3] cryptodev: new package Cryptodev-linux is a device that allows access to Linux kernel cryptographic drivers; thus allowing of userspace applications to take advantage of hardware accelerators. Cryptodev-linux is implemented as a standalone module that requires no dependencies other than a stock linux kernel. Its API is compatible with OpenBSD's cryptodev userspace API (/dev/crypto). Signed-off-by: Ladislav Michl --- Changes: - v2: update to 1.10, add upstream git patch. - v3: updated to the latest module template ...x-module-loading-with-Linux-v5.0-rc5.patch | 58 ++++++++++++++++ patches/cryptodev-linux-1.10/series | 1 + rules/cryptodev.in | 11 +++ rules/cryptodev.make | 69 +++++++++++++++++++ 4 files changed, 139 insertions(+) create mode 100644 patches/cryptodev-linux-1.10/0001-Fix-module-loading-with-Linux-v5.0-rc5.patch create mode 100644 patches/cryptodev-linux-1.10/series create mode 100644 rules/cryptodev.in create mode 100644 rules/cryptodev.make diff --git a/patches/cryptodev-linux-1.10/0001-Fix-module-loading-with-Linux-v5.0-rc5.patch b/patches/cryptodev-linux-1.10/0001-Fix-module-loading-with-Linux-v5.0-rc5.patch new file mode 100644 index 000000000..a201d0290 --- /dev/null +++ b/patches/cryptodev-linux-1.10/0001-Fix-module-loading-with-Linux-v5.0-rc5.patch @@ -0,0 +1,58 @@ +Upstream-Status: Backport [https://github.com/cryptodev-linux/cryptodev-linux/commit/f971e0c] + +Backport patch from upstream to fix module cryptodev loading error. + +Signed-off-by: Kai Kang + +From f971e0cd4a0ebe59fb2e8e17240399bf6901b09b Mon Sep 17 00:00:00 2001 +From: "Derald D. Woods" +Date: Sun, 10 Feb 2019 13:22:19 -0600 +Subject: [PATCH] Fix module loading with Linux v5.0-rc5 + +This commit fixes this module load error: +[...] +[ 29.112091] cryptodev: loading out-of-tree module taints kernel. +[ 29.128906] cryptodev: Unknown symbol crypto_givcipher_type (err -2) +[ 29.188842] cryptodev: Unknown symbol crypto_givcipher_type (err -2) +modprobe: can't load module cryptodev (extra/cryptodev.ko): unknown symbol in module, or unknown parameter +[...] + +Upstream Linux support for unused GIVCIPHER, and others, was dropped here: + +c79b411eaa72 (crypto: skcipher - remove remnants of internal IV generators) + +Signed-off-by: Derald D. Woods +--- + cryptlib.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/cryptlib.c b/cryptlib.c +index 6e66698..4a87037 100644 +--- a/cryptlib.c ++++ b/cryptlib.c +@@ -38,7 +38,9 @@ + #include "cryptodev_int.h" + #include "cipherapi.h" + ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0)) + extern const struct crypto_type crypto_givcipher_type; ++#endif + + static void cryptodev_complete(struct crypto_async_request *req, int err) + { +@@ -157,8 +159,11 @@ int cryptodev_cipher_init(struct cipher_data *out, const char *alg_name, + + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)) + tfm = crypto_skcipher_tfm(out->async.s); +- if ((tfm->__crt_alg->cra_type == &crypto_ablkcipher_type) || +- (tfm->__crt_alg->cra_type == &crypto_givcipher_type)) { ++ if ((tfm->__crt_alg->cra_type == &crypto_ablkcipher_type) ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0)) ++ || (tfm->__crt_alg->cra_type == &crypto_givcipher_type) ++#endif ++ ) { + struct ablkcipher_alg *alg; + + alg = &tfm->__crt_alg->cra_ablkcipher; +-- +2.20.0 diff --git a/patches/cryptodev-linux-1.10/series b/patches/cryptodev-linux-1.10/series new file mode 100644 index 000000000..fa320b645 --- /dev/null +++ b/patches/cryptodev-linux-1.10/series @@ -0,0 +1 @@ +0001-Fix-module-loading-with-Linux-v5.0-rc5.patch diff --git a/rules/cryptodev.in b/rules/cryptodev.in new file mode 100644 index 000000000..7a231340e --- /dev/null +++ b/rules/cryptodev.in @@ -0,0 +1,11 @@ +## SECTION=core + +config CRYPTODEV + tristate + select KERNEL + prompt "cryptodev" + help + Cryptodev-linux is a device that allows access to Linux kernel + cryptographic drivers; thus allowing of userspace applications + to take advantage of hardware accelerators. Its API is + compatible with OpenBSD's cryptodev userspace API (/dev/crypto). diff --git a/rules/cryptodev.make b/rules/cryptodev.make new file mode 100644 index 000000000..5b2b78d00 --- /dev/null +++ b/rules/cryptodev.make @@ -0,0 +1,69 @@ +# -*-makefile-*- +# +# Copyright (C) 2017, 2019 by Ladislav Michl +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_CRYPTODEV) += cryptodev + +# +# Paths and names and versions +# +CRYPTODEV_VERSION := 1.10 +CRYPTODEV_MD5 := 53403fbb99cd88a48bc899dbe9158e1c +CRYPTODEV := cryptodev-linux-$(CRYPTODEV_VERSION) +CRYPTODEV_SUFFIX := tar.gz +CRYPTODEV_URL := \ + https://github.com/cryptodev-linux/cryptodev-linux/archive/$(CRYPTODEV).$(CRYPTODEV_SUFFIX) +CRYPTODEV_SOURCE := $(SRCDIR)/$(CRYPTODEV).$(CRYPTODEV_SUFFIX) +CRYPTODEV_DIR := $(BUILDDIR)/$(CRYPTODEV) +CRYPTODEV_LICENSE := GPL-2.0 + +ifdef PTXCONF_CRYPTODEV +$(STATEDIR)/kernel.targetinstall.post: $(STATEDIR)/cryptodev.targetinstall +endif + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +CRYPTODEV_WRAPPER_BLACKLIST = $(KERNEL_WRAPPER_BLACKLIST) + +CRYPTODEV_CONF_TOOL := NO + +# ---------------------------------------------------------------------------- +# Compile +# ---------------------------------------------------------------------------- + +CRYPTODEV_MAKE_OPT = \ + $(KERNEL_MAKE_OPT) \ + KERNEL_DIR=$(KERNEL_DIR) \ + DESTDIR=$(SYSROOT) \ + prefix=/usr \ + -C $(CRYPTODEV_DIR) + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/cryptodev.install: + @$(call targetinfo) + @$(call touch) + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/cryptodev.targetinstall: + @$(call targetinfo) + @$(call compile, CRYPTODEV, $(CRYPTODEV_MAKE_OPT) install) + @$(call touch) + +# vim: syntax=make -- 2.22.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de