• Andrey Borzenkov's avatar
    x86: fix ghost EDD devices in /sys again · 464f04c9
    Andrey Borzenkov authored
    > This is regression but old enough. Apparently I had for whatever reasons
    > EDD turned off till recently. This is 2.6.27-rc5 just in case.
    >
    > In 2006 I fixed ghost devices due to buggy BIOS:
    >
    > http://marc.info/?l=linux-kernel&m=114087765422490&w=2
    >
    > Later edd.S has been rewritten in C, and apparently this patch has been
    > lost:
    >
    > {pts/1}% ls /sys/firmware/edd
    > int13_dev80/  int13_dev84/  int13_dev88/  int13_dev8c/
    > int13_dev81/  int13_dev85/  int13_dev89/  int13_dev8d/
    > int13_dev82/  int13_dev86/  int13_dev8a/  int13_dev8e/
    > int13_dev83/  int13_dev87/  int13_dev8b/  int13_dev8f/
    >
    > But I have just a single disk. This is the same system BTW.
    
    Some BIOSes do not always set CF on error before return from int13.
    The patch adds additional check for status being zero (AH == 0).
    
    This was fixed for edd.S in
    http://marc.info/?l=linux-kernel&m=114087765422490&w=2, but lost
    again when edd.S was rewritten in C.
    Signed-off-by: default avatarAndrey Borzenkov <arvidjaar@mail.ru>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    464f04c9
edd.c 4.3 KB