All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] small lasi700 update
@ 2003-09-22  9:50 Christoph Hellwig
  0 siblings, 0 replies; only message in thread
From: Christoph Hellwig @ 2003-09-22  9:50 UTC (permalink / raw)
  To: James Bottomley; +Cc: linux-scsi

 - 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



--- 1.15/drivers/scsi/lasi700.c	Sun Aug 17 04:43:48 2003
+++ edited/drivers/scsi/lasi700.c	Sun Sep 21 22:17:38 2003
@@ -59,7 +59,7 @@
 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 @@
 };
 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 @@
 	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 @@
 		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;
@@ -151,6 +146,13 @@
 
 	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)
--- 1.6/drivers/scsi/lasi700.h	Thu Jun 26 04:41:10 2003
+++ edited/drivers/scsi/lasi700.h	Sun Sep 21 22:14:43 2003
@@ -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
 

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-09-22  9:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-22  9:50 [PATCH] small lasi700 update Christoph Hellwig

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.