Re: [PATCH libata-dev#upstream-fixes] libata: fix drive side 80c cable check, take 3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello, I wrote:

The 80c wire bit is bit 13, not 14.  Bit 14 is always 1 if word93 is
implemented.  This increases the chance of incorrect wire detection
especially because host side cable detection is often unreliable and
we sometimes soley depend on drive side cable detection.  Fix the test
and add word93 validity check.

Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>

diff --git a/include/linux/ata.h b/include/linux/ata.h
index 1df9416..939be94 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -347,7 +347,7 @@ static inline int ata_drive_40wire(const u16 *dev_id)
 {
     if (ata_id_major_version(dev_id) >= 5 && ata_id_is_sata(dev_id))
         return 0;    /* SATA */
-    if (dev_id[93] & 0x4000)
+    if ((dev_id[93] & 0xE000) == 0x6000)
         return 0;    /* 80 wire */
     return 1;
 }

   Wrong, wrong as well! The correct value to compare with would be 0x4000.

Sorry for the false alarm -- those opposite senses on CBLID- have really confused me. :-<

MBR, Sergei
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux