Messages in this thread Patch in this message | | | Subject | [PATCH] libata: Don't believe bogus claims in the older PIO mode register | From | Alan Cox <> | Date | Fri, 29 Sep 2006 18:26:47 +0100 |
| |
Signed-off-by: Alan Cox <alan@redhat.com>
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.18-mm2/drivers/ata/libata-core.c linux-2.6.18-mm2/drivers/ata/libata-core.c --- linux.vanilla-2.6.18-mm2/drivers/ata/libata-core.c 2006-09-28 14:33:46.000000000 +0100 +++ linux-2.6.18-mm2/drivers/ata/libata-core.c 2006-09-29 17:33:53.000000000 +0100 @@ -870,7 +870,11 @@ * 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 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |