[PATCH] x86: AUX_DEVICE_INFO is one byte long, use 'movb'
authorDiego Calleja <diegocg@gmail.com>
Tue, 26 Sep 2006 08:52:30 +0000 (10:52 +0200)
committerAndi Kleen <andi@basil.nowhere.org>
Tue, 26 Sep 2006 08:52:30 +0000 (10:52 +0200)
Bugzilla #6552 says:

"In arch/i386/boot/setup.S, movw is used instead of movb for PS/2 mouse
information, although it is unsigned char. This does not harm, because
the jmp instruction overwritten by movw is used before executing movw,
and never be used again"

I've no idea if this is a real bug or how it gets fixed, so I'm submitting
it for review instead of letting it die of boredom in bugzilla. Aditionally
to i386, I've changed x86-64, which mirrors the same code.

Credits to Yoshinori K. Okuji, who found the problem and suggested a fix.

Signed-off-by: Diego Calleja <diegocg@gmail.com>
Signed-off-by: Andi Kleen <ak@suse.de>
arch/i386/boot/setup.S
arch/x86_64/boot/setup.S

index d2b684cd620ae63888bbb54c06721d0b4fe8e5e5..3aec4538a113b9f84d33c3613e7137e18aaa8f61 100644 (file)
@@ -494,12 +494,12 @@ no_voyager:
        movw    %cs, %ax                        # aka SETUPSEG
        subw    $DELTA_INITSEG, %ax             # aka INITSEG
        movw    %ax, %ds
-       movw    $0, (0x1ff)                     # default is no pointing device
+       movb    $0, (0x1ff)                     # default is no pointing device
        int     $0x11                           # int 0x11: equipment list
        testb   $0x04, %al                      # check if mouse installed
        jz      no_psmouse
 
-       movw    $0xAA, (0x1ff)                  # device present
+       movb    $0xAA, (0x1ff)                  # device present
 no_psmouse:
 
 #if defined(CONFIG_X86_SPEEDSTEP_SMI) || defined(CONFIG_X86_SPEEDSTEP_SMI_MODULE)
index a50b631f4d2b017fbb5433726aaf727f4a10883b..c3bfd223ab49e2866bc54f154dac6bf9867e18a9 100644 (file)
@@ -526,12 +526,12 @@ is_disk1:
        movw    %cs, %ax                        # aka SETUPSEG
        subw    $DELTA_INITSEG, %ax             # aka INITSEG
        movw    %ax, %ds
-       movw    $0, (0x1ff)                     # default is no pointing device
+       movb    $0, (0x1ff)                     # default is no pointing device
        int     $0x11                           # int 0x11: equipment list
        testb   $0x04, %al                      # check if mouse installed
        jz      no_psmouse
 
-       movw    $0xAA, (0x1ff)                  # device present
+       movb    $0xAA, (0x1ff)                  # device present
 no_psmouse:
 
 #include "../../i386/boot/edd.S"