Commit 5ae44b73 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by James Bottomley

[PATCH] small lasi700 update

 - move the struct parisc_driver down like in most drivers, avoids
   two forward-declarations
 - give lasi700_scsi_tbl and lasi700_driver_callback sensible names
 - properly return -ENOMEM instead of 1 on kmalloc failure
 - check scsi_add_host return value
parent 7ab0490d
......@@ -59,7 +59,7 @@ MODULE_AUTHOR("James Bottomley");
MODULE_DESCRIPTION("lasi700 SCSI Driver");
MODULE_LICENSE("GPL");
static struct parisc_device_id lasi700_scsi_tbl[] = {
static struct parisc_device_id lasi700_ids[] = {
LASI700_ID_TABLE,
LASI710_ID_TABLE,
{ 0 }
......@@ -72,15 +72,8 @@ static Scsi_Host_Template lasi700_template = {
};
MODULE_DEVICE_TABLE(parisc, lasi700_scsi_tbl);
static struct parisc_driver lasi700_driver = {
.name = "Lasi SCSI",
.id_table = lasi700_scsi_tbl,
.probe = lasi700_driver_callback,
.remove = __devexit_p(lasi700_driver_remove),
};
static int __init
lasi700_driver_callback(struct parisc_device *dev)
lasi700_probe(struct parisc_device *dev)
{
unsigned long base = dev->hpa + LASI_SCSI_CORE_OFFSET;
struct NCR_700_Host_Parameters *hostdata;
......@@ -90,7 +83,7 @@ lasi700_driver_callback(struct parisc_device *dev)
if (!hostdata) {
printk(KERN_ERR "%s: Failed to allocate host data\n",
dev->dev.bus_id);
return 1;
return -ENOMEM;
}
memset(hostdata, 0, sizeof(struct NCR_700_Host_Parameters));
......@@ -123,15 +116,17 @@ lasi700_driver_callback(struct parisc_device *dev)
goto out_put_host;
}
if (scsi_add_host(host, &dev->dev))
goto out_free_irq;
dev_set_drvdata(&dev->dev, host);
scsi_add_host(host, &dev->dev); /* XXX handle failure */
scsi_scan_host(host);
return 0;
out_free_irq:
free_irq(host->irq, host);
out_put_host:
scsi_host_put(host);
out_kfree:
kfree(hostdata);
return -ENODEV;
......@@ -152,6 +147,13 @@ lasi700_driver_remove(struct parisc_device *dev)
return 0;
}
static struct parisc_driver lasi700_driver = {
.name = "Lasi SCSI",
.id_table = lasi700_ids,
.probe = lasi700_probe,
.remove = __devexit_p(lasi700_driver_remove),
};
static int __init
lasi700_init(void)
{
......
......@@ -25,9 +25,6 @@
#ifndef _LASI700_H
#define _LASI700_H
static int lasi700_driver_callback(struct parisc_device *dev);
static int lasi700_driver_remove(struct parisc_device *dev);
#define LASI_710_SVERSION 0x082
#define LASI_700_SVERSION 0x071
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment