ocf-linux: remove extension and build out of tree
authorGustavo Zacarias <gustavo@zacarias.com.ar>
Sat, 27 Apr 2013 10:09:44 +0000 (10:09 +0000)
committerPeter Korsgaard <jacmet@sunsite.dk>
Sun, 5 May 2013 20:59:14 +0000 (22:59 +0200)
Remove the OCF linux kernel extension instead opting to build ocf-linux
modules out of tree.
This is easier for users since no kernel config tweaking is required.
On the downside the OCF drivers can't be used, but then all of the
kernel crypto drivers are available to users via cryptosoft which is
preferred.
Also remove it from the menu to utilize a virtual.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
linux/Config.ext.in
linux/linux-ext-ocf-linux.mk [deleted file]
package/Config.in
package/ocf-linux/Config.in [deleted file]
package/ocf-linux/ocf-linux-01-modules-cross.patch [new file with mode: 0644]
package/ocf-linux/ocf-linux.mk

index a68cbe92141ec50d9753179a94d62c93a71acab1..172fa76c751c4c79424d3a7fb56d80aec03949cb 100644 (file)
@@ -23,18 +23,6 @@ config BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH
          Download it at http://download.gna.org/adeos/patches/v2.6/$(ARCH)/
          and verify that your kernel version in buildroot matches.
 
-# ocf-linux
-config BR2_LINUX_KERNEL_EXT_OCF_LINUX
-       bool "Open Cryptographic Framework (OCF)"
-       select BR2_PACKAGE_OCF_LINUX
-       help
-         OCF-Linux Kernel part.
-
-         Select this option to patch your kernel with OCF for
-         hardware-accelerated crypto support for available drivers.
-         Some libraries need to also have OCF enabled for them,
-         for example OpenSSL.
-
 # RTAI
 config BR2_LINUX_KERNEL_EXT_RTAI
        bool "RTAI Real-time patch"
diff --git a/linux/linux-ext-ocf-linux.mk b/linux/linux-ext-ocf-linux.mk
deleted file mode 100644 (file)
index 1a601d5..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-##################################################
-# Linux OCF extension
-#
-# Patch the linux kernel with OCF
-##################################################
-
-ifeq ($(BR2_LINUX_KERNEL_EXT_OCF_LINUX),y)
-LINUX_DEPENDENCIES += ocf-linux
-
-# Prepare kernel patch
-# The linux-3.2.1.patch is just the main inclusion, most of the code
-# resides in the ocf/ subdir.
-# It works for older kernel versions.
-# Run tested from 2.6.38+ and build tested from 2.6.35+
-define OCF_LINUX_PREPARE_KERNEL
-       support/scripts/apply-patches.sh $(LINUX_DIR) \
-               $(OCF_LINUX_DIR)/patches/ linux-3.2.1-ocf.patch ; \
-       grep -q __mix_pool_bytes $(LINUX_DIR)/drivers/char/random.c && \
-       $(SED) 's:wordcount\*4:&, NULL:' $(LINUX_DIR)/drivers/char/random.c ; \
-       cp -rf $(OCF_LINUX_DIR)/ocf $(LINUX_DIR)/crypto/ocf ;
-endef
-
-LINUX_PRE_PATCH_HOOKS += OCF_LINUX_PREPARE_KERNEL
-
-endif #BR2_LINUX_EXT_OCF_LINUX
index 0f8fe7f3ee2a1c0b750c196bf60b10f653d31899..62a97b426595cd8268bcd9ff92bdc08886306e20 100644 (file)
@@ -394,7 +394,6 @@ source "package/libmhash/Config.in"
 source "package/libnss/Config.in"
 source "package/libsha1/Config.in"
 source "package/nettle/Config.in"
-source "package/ocf-linux/Config.in"
 source "package/openssl/Config.in"
 source "package/polarssl/Config.in"
 endmenu
diff --git a/package/ocf-linux/Config.in b/package/ocf-linux/Config.in
deleted file mode 100644 (file)
index 9dc5766..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-config BR2_PACKAGE_OCF_LINUX
-       bool "ocf-linux"
-       help
-         OCF-Linux is a Linux port of the OpenBSD/FreeBSD Cryptographic
-         Framework (OCF). This port aims to bring full asynchronous HW/SW
-         crypto acceleration to the Linux kernel and applications
-         running under Linux.
-
-         You need to enable the OCF linux kernel extension or provide
-         a prepatched kernel to make this option useful.
-
-         http://ocf-linux.sourceforge.net/
diff --git a/package/ocf-linux/ocf-linux-01-modules-cross.patch b/package/ocf-linux/ocf-linux-01-modules-cross.patch
new file mode 100644 (file)
index 0000000..f80ef06
--- /dev/null
@@ -0,0 +1,42 @@
+Remove the OCF linux kernel extension instead opting to build ocf-linux
+modules out of tree.
+This is easier for users since no kernel config tweaking is required.
+On the downside the OCF drivers can't be used, but then all of the
+kernel crypto drivers are available to users via cryptosoft which is
+preferred.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura ocf-linux-20120127.orig/ocf/Makefile ocf-linux-20120127/ocf/Makefile
+--- ocf-linux-20120127.orig/ocf/Makefile       2013-04-27 09:27:04.413911866 -0300
++++ ocf-linux-20120127/ocf/Makefile    2013-04-27 09:27:31.131775576 -0300
+@@ -2,6 +2,7 @@
+ -include $(ROOTDIR)/modules/.config
+
+ OCF_OBJS = crypto.o criov.o
++KDIR ?= /lib/modules/$(shell uname -r)/build
+
+ ifdef CONFIG_OCF_RANDOMHARVEST
+       OCF_OBJS += random.o
+@@ -78,20 +79,13 @@
+ #
+
+ ocf_make:
+-      make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m
+-      make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_CRYPTOSOFT=m
+-      -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_BENCH=m
+-      -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_OCFNULL=m
+-      -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_HIFN=m
++      make -C $(KDIR) M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_CRYPTOSOFT=m CONFIG_OCF_BENCH=m CONFIG_OCF_OCFNULL=m
+
+ ocf_modules:
+       $(MAKE) ocf_make OCF_TARGET=modules
+
+ ocf_install:
+       $(MAKE) ocf_make OCF_TARGET="modules modules_install"
+-      depmod
+-      mkdir -p /usr/include/crypto
+-      cp cryptodev.h /usr/include/crypto/.
+
+ #
+ # generate full kernel patches for 2.4 and 2.6 kernels to make patching
index fb5f7e8ff068597f3a78cef5eff78814997a6309..1be3a3f4b88bc9599e7b1bb13ad5d7648f28df51 100644 (file)
@@ -6,16 +6,22 @@
 
 OCF_LINUX_VERSION = 20120127
 OCF_LINUX_SITE = http://downloads.sourceforge.net/project/ocf-linux/ocf-linux/$(OCF_LINUX_VERSION)
+OCF_LINUX_DEPENDENCIES = linux
 OCF_LINUX_INSTALL_STAGING = YES
 
-define OCF_LINUX_INSTALL_STAGING_CMDS
-       $(INSTALL) -D -m 644 $(@D)/ocf/cryptodev.h \
-               $(STAGING_DIR)/usr/include/crypto/cryptodev.h
+define OCF_LINUX_BUILD_CMDS
+       $(MAKE) -C $(@D)/ocf $(LINUX_MAKE_FLAGS) KDIR=$(LINUX_DIR) \
+               ocf_modules
 endef
 
 define OCF_LINUX_INSTALL_TARGET_CMDS
+       $(MAKE) -C $(@D)/ocf $(LINUX_MAKE_FLAGS) KDIR=$(LINUX_DIR) \
+               ocf_install
+endef
+
+define OCF_LINUX_INSTALL_STAGING_CMDS
        $(INSTALL) -D -m 644 $(@D)/ocf/cryptodev.h \
-               $(TARGET_DIR)/usr/include/crypto/cryptodev.h
+               $(STAGING_DIR)/usr/include/crypto/cryptodev.h
 endef
 
 $(eval $(generic-package))