ide: fix crash at boot with siimage driver
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 29 Apr 2008 20:57:37 +0000 (22:57 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Tue, 29 Apr 2008 20:57:37 +0000 (22:57 +0200)
Some change to the IDE layer are causing the siimage driver to crash
at boot with a NULL dereference. This is due to the sil_dma_ops not
containing all the necessary pointers. I suppose it used to just
"override" the defaults while now, it needs to contain everything.

[bart: while at it: sil_dma_ops should be const now (pointed out by Sergei)]

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>,
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/pci/siimage.c

index 4cf8fc54aa2a109d8547f9ce70de9325b4508f1e..0006b9e58567b7d595de4253b6d67e4a78f12d8f 100644 (file)
@@ -737,8 +737,15 @@ static const struct ide_port_ops sil_sata_port_ops = {
        .cable_detect           = sil_cable_detect,
 };
 
-static struct ide_dma_ops sil_dma_ops = {
+static const struct ide_dma_ops sil_dma_ops = {
+       .dma_host_set           = ide_dma_host_set,
+       .dma_setup              = ide_dma_setup,
+       .dma_exec_cmd           = ide_dma_exec_cmd,
+       .dma_start              = ide_dma_start,
+       .dma_end                = __ide_dma_end,
        .dma_test_irq           = siimage_dma_test_irq,
+       .dma_timeout            = ide_dma_timeout,
+       .dma_lost_irq           = ide_dma_lost_irq,
 };
 
 #define DECLARE_SII_DEV(name_str, p_ops)               \