• B
    libata: fix suspend/resume for ATA SEMB devices · f0d0613d
    Borislav Petkov 提交于
    79b42bab fixed identifying ATA devices
    reporting 3c/c3 signature which belongs to SEMB devices now. However,
    suspending the machine with such device (WDC WD2500AAJS-6 01.0) fails
    with the following:
    
    hda: host max PIO4 wanted PIO255(auto-tune) selected PIO4
    hda: UDMA/100 mode selected
    hdb: host max PIO4 wanted PIO255(auto-tune) selected PIO4
    hdb: UDMA/66 mode selected
    sd 1:0:0:0: [sda] Starting disk
    ata5: SATA link down (SStatus 0 SControl 300)
    ata1: SATA link down (SStatus 0 SControl 300)
    ata3: SATA link down (SStatus 0 SControl 300)
    ata6: SATA link down (SStatus 0 SControl 300)
    ata2: softreset failed (device not ready)
    ata2: failed due to HW bug, retry pmp=0
    ata4: softreset failed (device not ready)
    ata4: failed due to HW bug, retry pmp=0
    ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
    ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
    ata2.00: class mismatch 1 != 7
    ata2.00: revalidation failed (errno=-19)
    ata2: limiting SATA link speed to 1.5 Gbps
    ata4.00: configured for UDMA/133
    ata2: softreset failed (device not ready)
    ata2: failed due to HW bug, retry pmp=0
    ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
    ata2.00: class mismatch 1 != 7
    ata2.00: revalidation failed (errno=-19)
    ata2.00: disabled
    sd 1:0:0:0: rejecting I/O to offline device
    sd 1:0:0:0: [sda] START_STOP FAILED
    sd 1:0:0:0: [sda] Result: hostbyte=0x01 driverbyte=0x00
    PM: Device 1:0:0:0 failed to thaw: error 65536
    sd 3:0:0:0: [sdb] Starting disk
    
    due to a class mismatch in ata_dev_revalidate(). Fix it by adding the
    ATA_DEV_SEMB device class to the check.
    
    CC: Tejun Heo <htejun@gmail.com>
    Signed-off-by: NBorislav Petkov <petkovbb@gmail.com>
    Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
    f0d0613d
libata-core.c 172.0 KB