Skip to content

Commit

Permalink
[PATCH] uml: support AES i586 crypto driver
Browse files Browse the repository at this point in the history
We want to make possible, for the user, to enable the i586 AES implementation.
This requires a restructure.

- Add a CONFIG_UML_X86 to notify that we are building a UML for i386.

- Rename CONFIG_64_BIT to CONFIG_64BIT as is used for all other archs

- Tell crypto/Kconfig that UML_X86 is as good as X86

- Tell it that it must exclude not X86_64 but 64BIT, which will give the
  same results.

- Tell kbuild to descend down into arch/i386/crypto/ to build what's needed.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Paolo 'Blaisorblade' Giarrusso authored and Linus Torvalds committed May 1, 2005
1 parent b05d85a commit c45166b
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 13 deletions.
1 change: 1 addition & 0 deletions arch/um/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ config KERNEL_HALF_GIGS

config HIGHMEM
bool "Highmem support"
depends on !64BIT

config KERNEL_STACK_ORDER
int "Kernel stack size order"
Expand Down
6 changes: 5 additions & 1 deletion arch/um/Kconfig_i386
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
config 64_BIT
config UML_X86
bool
default y

config 64BIT
bool
default n

Expand Down
6 changes: 5 additions & 1 deletion arch/um/Kconfig_x86_64
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
config 64_BIT
config UML_X86
bool
default y

config 64BIT
bool
default y

Expand Down
2 changes: 1 addition & 1 deletion arch/um/Makefile-i386
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
SUBARCH_CORE := arch/um/sys-i386/
SUBARCH_CORE := arch/um/sys-i386/ arch/i386/crypto/

TOP_ADDR := $(CONFIG_TOP_ADDR)

Expand Down
10 changes: 5 additions & 5 deletions arch/um/defconfig
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.12-rc1-bk1
# Sun Mar 20 16:53:00 2005
# Linux kernel version: 2.6.12-rc3-skas3-v9-pre2
# Sun Apr 24 19:46:10 2005
#
CONFIG_GENERIC_HARDIRQS=y
CONFIG_UML=y
Expand All @@ -15,7 +15,8 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
#
CONFIG_MODE_TT=y
CONFIG_MODE_SKAS=y
# CONFIG_64_BIT is not set
CONFIG_UML_X86=y
# CONFIG_64BIT is not set
CONFIG_TOP_ADDR=0xc0000000
# CONFIG_3_LEVEL_PGTABLES is not set
CONFIG_ARCH_HAS_SC_SIGNALS=y
Expand All @@ -41,6 +42,7 @@ CONFIG_UML_REAL_TIME_CLOCK=y
CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32

#
# General setup
Expand Down Expand Up @@ -158,7 +160,6 @@ CONFIG_UML_NET_SLIRP=y
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
# CONFIG_NETLINK_DEV is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
Expand Down Expand Up @@ -412,6 +413,5 @@ CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_FS is not set
CONFIG_FRAME_POINTER=y
CONFIG_PT_PROXY=y
# CONFIG_GPROF is not set
# CONFIG_GCOV is not set
# CONFIG_SYSCALL_DEBUG is not set
4 changes: 2 additions & 2 deletions crypto/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ config CRYPTO_SERPENT

config CRYPTO_AES
tristate "AES cipher algorithms"
depends on CRYPTO && !(X86 && !X86_64)
depends on CRYPTO && !((X86 || UML_X86) && !64BIT)
help
AES cipher algorithms (FIPS-197). AES uses the Rijndael
algorithm.
Expand All @@ -166,7 +166,7 @@ config CRYPTO_AES

config CRYPTO_AES_586
tristate "AES cipher algorithms (i586)"
depends on CRYPTO && (X86 && !X86_64)
depends on CRYPTO && ((X86 || UML_X86) && !64BIT)
help
AES cipher algorithms (FIPS-197). AES uses the Rijndael
algorithm.
Expand Down
2 changes: 1 addition & 1 deletion include/asm-um/elf.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ extern long elf_aux_hwcap;

#define elf_check_arch(x) (1)

#ifdef CONFIG_64_BIT
#ifdef CONFIG_64BIT
#define ELF_CLASS ELFCLASS64
#else
#define ELF_CLASS ELFCLASS32
Expand Down
2 changes: 1 addition & 1 deletion include/asm-um/page.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ struct page;
#define clear_user_page(page, vaddr, pg) clear_page(page)
#define copy_user_page(to, from, vaddr, pg) copy_page(to, from)

#if defined(CONFIG_3_LEVEL_PGTABLES) && !defined(CONFIG_64_BIT)
#if defined(CONFIG_3_LEVEL_PGTABLES) && !defined(CONFIG_64BIT)

typedef struct { unsigned long pte_low, pte_high; } pte_t;
typedef struct { unsigned long long pmd; } pmd_t;
Expand Down
2 changes: 1 addition & 1 deletion include/asm-um/pgtable-3level.h
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ static inline pmd_t pfn_pmd(pfn_t page_nr, pgprot_t pgprot)
*/
#define PTE_FILE_MAX_BITS 32

#ifdef CONFIG_64_BIT
#ifdef CONFIG_64BIT

#define pte_to_pgoff(p) ((p).pte >> 32)

Expand Down

0 comments on commit c45166b

Please sign in to comment.