[SCSI] aacraid: prohibit access to array container space
[safe/jmp/linux-2.6] / drivers / scsi / lasi700.c
index eb7bd31..23880f8 100644 (file)
@@ -38,9 +38,9 @@
 #include <linux/stat.h>
 #include <linux/mm.h>
 #include <linux/blkdev.h>
-#include <linux/sched.h>
 #include <linux/ioport.h>
 #include <linux/dma-mapping.h>
+#include <linux/slab.h>
 
 #include <asm/page.h>
 #include <asm/pgtable.h>
@@ -102,16 +102,14 @@ lasi700_probe(struct parisc_device *dev)
        struct NCR_700_Host_Parameters *hostdata;
        struct Scsi_Host *host;
 
-       hostdata = kmalloc(sizeof(*hostdata), GFP_KERNEL);
+       hostdata = kzalloc(sizeof(*hostdata), GFP_KERNEL);
        if (!hostdata) {
-               printk(KERN_ERR "%s: Failed to allocate host data\n",
-                      dev->dev.bus_id);
+               dev_printk(KERN_ERR, &dev->dev, "Failed to allocate host data\n");
                return -ENOMEM;
        }
-       memset(hostdata, 0, sizeof(struct NCR_700_Host_Parameters));
 
        hostdata->dev = &dev->dev;
-       dma_set_mask(&dev->dev, DMA_32BIT_MASK);
+       dma_set_mask(&dev->dev, DMA_BIT_MASK(32));
        hostdata->base = ioremap_nocache(base, 0x100);
        hostdata->differential = 0;
 
@@ -123,6 +121,7 @@ lasi700_probe(struct parisc_device *dev)
                hostdata->force_le_on_be = 0;
                hostdata->chip710 = 1;
                hostdata->dmode_extra = DMODE_FC2;
+               hostdata->burst_length = 8;
        }
 
        host = NCR_700_detect(&lasi700_template, hostdata, &dev->dev);
@@ -131,7 +130,7 @@ lasi700_probe(struct parisc_device *dev)
        host->this_id = 7;
        host->base = base;
        host->irq = dev->irq;
-       if(request_irq(dev->irq, NCR_700_intr, SA_SHIRQ, "lasi700", host)) {
+       if(request_irq(dev->irq, NCR_700_intr, IRQF_SHARED, "lasi700", host)) {
                printk(KERN_ERR "lasi700: request_irq failed!\n");
                goto out_put_host;
        }