Re: [PATCH] ide: Fix ata_id_has_dword_io to return DWORD I/O supportproperly

From: Sergei Shtylyov
Date: Thu Dec 18 2008 - 12:24:40 EST


Hello.

Jeff Garzik wrote:

This patch fixes ata_id_has_dword_io to return 1 (supported) if
the drive is compliant to ATA2 or newer and evaluates the config
word for older drives.

Signed-off-by: Mario Schwalbe <schwalbe@xxxxxxxxxxxxxxxxx>

diff --git a/include/linux/ata.h b/include/linux/ata.h
index a53318b..d0d6a9c 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -700,12 +700,12 @@ static inline int ata_id_has_tpm(const u16 *id)

static inline int ata_id_has_dword_io(const u16 *id)
{
- /* ATA 8 reuses this flag for "trusted" computing */
- if (ata_id_major_version(id) > 7)
- return 0;
- if (id[ATA_ID_DWORD_IO] & (1 << 0))
- return 1;
- return 0;
+ /* This flag is defined up to ATA1 and deprecated since then
+ (ATA 8 reuses this flag for "trusted" computing). */
+ if (ata_id_major_version(id) <= 1)
+ return (id[ATA_ID_DWORD_IO] & (1 << 0)) != 0;
+ /* later revision drives support DWORD I/O just fine */
+ return 1;

This seems like a risky assumption...

Not at all, I think. It's total mystery how "DWORD I/O" could've been even (not) supported by a *drive* at all. Support of "DWORD I/O" is a property of the PATA controller. Frankly speaking, I don't think that this function is at all useful...

Jeff

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