[PATCH] libata: Don't believe bogus claims in the older PIO mode register
Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
d223a60106
commit
46767aeba5
|
@ -870,7 +870,11 @@ static unsigned int ata_id_xfermask(const u16 *id)
|
|||
* the PIO timing number for the maximum. Turn it into
|
||||
* a mask.
|
||||
*/
|
||||
pio_mask = (2 << (id[ATA_ID_OLD_PIO_MODES] & 0xFF)) - 1 ;
|
||||
u8 mode = id[ATA_ID_OLD_PIO_MODES] & 0xFF;
|
||||
if (mode < 5) /* Valid PIO range */
|
||||
pio_mask = (2 << mode) - 1;
|
||||
else
|
||||
pio_mask = 1;
|
||||
|
||||
/* But wait.. there's more. Design your standards by
|
||||
* committee and you too can get a free iordy field to
|
||||
|
|
Loading…
Reference in New Issue