* ->speedproc, filter out invalid modes passed from user-space. * Add FIXME about DMA timings never being set. * Bump driver version. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> --- drivers/ide/pci/alim15x3.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) Index: b/drivers/ide/pci/alim15x3.c =================================================================== --- a/drivers/ide/pci/alim15x3.c +++ b/drivers/ide/pci/alim15x3.c @@ -425,6 +425,17 @@ static int ali15x3_tune_chipset (ide_dri u8 tmpbyte = 0x00; int m5229_udma = (hwif->channel) ? 0x57 : 0x56; + /* + * Paranoia, filter out invalid modes passed from user-space + * (unsupported UDMA modes are dealt by ide_rate_filter() call). + * + * This will go away once ide_set_xfer() is fixed. + */ + if ((speed > XFER_PIO_5 && speed < XFER_SW_DMA_0) || + (speed > XFER_SW_DMA_2 && speed < XFER_MW_DMA_0) || + (speed > XFER_MW_DMA_2 && speed < XFER_UDMA_0)) + return -1; + if (speed == XFER_UDMA_6) speed1 = 0x47; @@ -437,6 +448,10 @@ static int ali15x3_tune_chipset (ide_dri tmpbyte &= ultra_enable; pci_write_config_byte(dev, m5229_udma, tmpbyte); + /* + * FIXME: Oh, my... DMA timings are never set. + */ + if (speed < XFER_SW_DMA_0) (void) ali15x3_tune_pio(drive, speed - XFER_PIO_0); } else { - 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