Commit 2c3ca07d authored by Andrey Borzenkov's avatar Andrey Borzenkov Committed by Linus Torvalds

[PATCH] Fix EDD to properly ignore signature of non-existing drives

Some BIOSes do not always set CF on error before return from int13.  The
patch adds additional check for status being zero (AH == 0).
Signed-off-by: default avatarAndrey Borzenkov <arvidjaar@mail.ru>
Cc: Matt Domsch <Matt_Domsch@dell.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 9871728b
...@@ -76,6 +76,8 @@ edd_mbr_sig_read: ...@@ -76,6 +76,8 @@ edd_mbr_sig_read:
popw %es popw %es
popw %bx popw %bx
jc edd_mbr_sig_done # on failure, we're done. jc edd_mbr_sig_done # on failure, we're done.
cmpb $0, %ah # some BIOSes do not set CF
jne edd_mbr_sig_done # on failure, we're done.
movl (EDDBUF+EDD_MBR_SIG_OFFSET), %eax # read sig out of the MBR movl (EDDBUF+EDD_MBR_SIG_OFFSET), %eax # read sig out of the MBR
movl %eax, (%bx) # store success movl %eax, (%bx) # store success
incb (EDD_MBR_SIG_NR_BUF) # note that we stored something incb (EDD_MBR_SIG_NR_BUF) # note that we stored something
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment