• Bartlomiej Zolnierkiewicz's avatar
    ide-disk: workaround for buggy HPA support on ST340823A (take 3) · b0244a00
    Bartlomiej Zolnierkiewicz authored
    This disk reports total number of sectors instead of maximum sector address
    in response to READ_NATIVE_MAX_ADDRESS command and also happily accepts
    SET_MAX_ADDRESS command with the bogus value.  This results in +1 sector
    capacity being used and errors on attempts to use the last sector.
    
    ...
    hdd: Host Protected Area detected.
            current capacity is 78165360 sectors (40020 MB)
            native  capacity is 78165361 sectors (40020 MB)
    hdd: Host Protected Area disabled.
    ...
    hdd: reading: block=78165360, sectors=1, buffer=0xc1e63000
    hdd: dma_intr: status=0x51 { DriveReady SeekComplete Error }
    hdd: dma_intr: error=0x10 { SectorIdNotFound }, LBAsect=78165360, sector=78165360
    ...
    
    Add hpa_list[] table and workaround the issue in idedisk_check_hpa().
    
    v2:
    * Add missing export and improve patch description a bit.
    
    v3:
    * Add list termination.  (From Mikko)
    
    Fixes kernel bugzilla bug #8816.
    
    Thanks to Mikko for investigating the issue and helping with this patch.
    
    Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
    Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
    Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    b0244a00
ide-disk.c 37.4 KB