* ->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 <[EMAIL PROTECTED]>
---
 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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to