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

Jeff Garzik
2008-12-18T17:08:28Z

Mario Schwalbe 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@inf.tu-dresden.de>
> ---
> include/linux/ata.h | 12 ++++++------
> 1 files changed, 6 insertions(+), 6 deletions(-)
>
> 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...

Jeff