lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 9 Jul 2007 21:24:03 -0700
From:	"Yinghai Lu" <yhlu.kernel@...il.com>
To:	"H. Peter Anvin" <hpa@...or.com>
Cc:	linux-kernel@...r.kernel.org, linux-arch@...r.kernel.org,
	andi@...stfloor.org, akpm@...ux-foundation.org
Subject: Re: x86 setup code rewrite in C

On 7/9/07, H. Peter Anvin <hpa@...or.com> wrote:
> This patch set replaces the x86 setup code, which is currently all in
> assembly, with a version written in C, using the ".code16gcc" feature
> of binutils (which has been present since at least 2001.)
>
> The new code is vastly easier to read, and, I hope, debug.  It should
> be noted that I found a fair number of minor bugs while going through
> this code, and have attempted to correct them.
>
> In the process of doing so, it introduces several cleanups, in
> particular:
>
> - Obsoletes the hd_info field in the boot_params structure; they are
>   only ever used for ST-506 (pre-IDE) drives and are pretty much
>   guaranteed to be wrong on current BIOSes;
> - Unifies the CPU feature bits between i386 and x86-64.  In the
>   future, it should be possible to use arch/i386/boot/cpucheck.c to do
>   the post-invocation CPU check currently done in
>   arch/x86_64/kernel/trampoline.S, although this patch set doesn't
>   introduce that change.
> - boot_params is now a proper structure.
>
> This code has been tested in -mm since early in the 2.6.22 cycle.
>
>  arch/i386/boot/bootsect.S                     |   98 -
>  arch/i386/boot/edd.S                          |  231 --
>  arch/i386/boot/setup.S                        | 1075 -------------
>  arch/i386/boot/video.S                        | 2043 --------------------------
>  arch/i386/kernel/verify_cpu.S                 |   94 -
>  arch/x86_64/boot/bootsect.S                   |   98 -
>  arch/x86_64/boot/install.sh                   |    2
>  arch/x86_64/boot/mtools.conf.in               |   17
>  arch/x86_64/boot/setup.S                      |  826 ----------
>  arch/x86_64/boot/tools/build.c                |  185 --
>  b/Documentation/i386/zero-page.txt            |    1
>  b/MAINTAINERS                                 |    4
>  b/arch/i386/Kconfig.cpu                       |    6
>  b/arch/i386/boot/Makefile                     |   46
>  b/arch/i386/boot/a20.c                        |  161 ++
>  b/arch/i386/boot/apm.c                        |   97 +
>  b/arch/i386/boot/bitops.h                     |   45
>  b/arch/i386/boot/boot.h                       |  290 +++
>  b/arch/i386/boot/cmdline.c                    |   97 +
>  b/arch/i386/boot/code16gcc.h                  |    9
>  b/arch/i386/boot/compressed/Makefile          |    7
>  b/arch/i386/boot/compressed/head.S            |    6
>  b/arch/i386/boot/copy.S                       |  101 +
>  b/arch/i386/boot/cpu.c                        |   69
>  b/arch/i386/boot/cpucheck.c                   |  267 +++
>  b/arch/i386/boot/edd.c                        |  196 ++
>  b/arch/i386/boot/header.S                     |  283 +++
>  b/arch/i386/boot/main.c                       |  161 ++
>  b/arch/i386/boot/mca.c                        |   43
>  b/arch/i386/boot/memory.c                     |   99 +
>  b/arch/i386/boot/pm.c                         |  170 ++
>  b/arch/i386/boot/pmjump.S                     |   54
>  b/arch/i386/boot/printf.c                     |  331 ++++
>  b/arch/i386/boot/setup.ld                     |   54
>  b/arch/i386/boot/string.c                     |   34
>  b/arch/i386/boot/tools/build.c                |  160 --
>  b/arch/i386/boot/tty.c                        |  112 +
>  b/arch/i386/boot/version.c                    |   23
>  b/arch/i386/boot/vesa.h                       |   79 +
>  b/arch/i386/boot/video-bios.c                 |  125 +
>  b/arch/i386/boot/video-vesa.c                 |  284 +++
>  b/arch/i386/boot/video-vga.c                  |  260 +++
>  b/arch/i386/boot/video.c                      |  456 +++++
>  b/arch/i386/boot/video.h                      |  145 +
>  b/arch/i386/boot/voyager.c                    |   46
>  b/arch/i386/kernel/cpu/Makefile               |    2
>  b/arch/i386/kernel/cpu/addon_cpuid_features.c |   50
>  b/arch/i386/kernel/cpu/common.c               |    2
>  b/arch/i386/kernel/cpu/proc.c                 |   21
>  b/arch/i386/kernel/e820.c                     |    2
>  b/arch/i386/kernel/setup.c                    |   12
>  b/arch/x86_64/Kconfig                         |    4
>  b/arch/x86_64/boot/Makefile                   |  136 -
>  b/arch/x86_64/boot/compressed/Makefile        |    9
>  b/arch/x86_64/boot/compressed/head.S          |    6
>  b/arch/x86_64/kernel/Makefile                 |    2
>  b/arch/x86_64/kernel/setup.c                  |   21
>  b/arch/x86_64/kernel/verify_cpu.S             |   22
>  b/drivers/ide/legacy/hd.c                     |   73
>  b/include/asm-i386/boot.h                     |    6
>  b/include/asm-i386/bootparam.h                |   85 +
>  b/include/asm-i386/cpufeature.h               |   26
>  b/include/asm-i386/e820.h                     |   14
>  b/include/asm-i386/processor.h                |    1
>  b/include/asm-i386/required-features.h        |   39
>  b/include/asm-i386/setup.h                    |   10
>  b/include/asm-x86_64/alternative.h            |   68
>  b/include/asm-x86_64/boot.h                   |   16
>  b/include/asm-x86_64/bootparam.h              |    1
>  b/include/asm-x86_64/cpufeature.h             |  115 -
>  b/include/asm-x86_64/e820.h                   |    6
>  b/include/asm-x86_64/processor.h              |    3
>  b/include/asm-x86_64/required-features.h      |   46
>  b/include/asm-x86_64/segment.h                |    8
>  b/include/linux/edd.h                         |    4
>  b/include/linux/screen_info.h                 |    9
>  76 files changed, 4601 insertions(+), 5208 deletions(-)

is possible to put 16bit c in seperate directory. or rename them with _16.c?

YH
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ