git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
drivers
/
scsi
/
zalon.c
diff --git
a/drivers/scsi/zalon.c
b/drivers/scsi/zalon.c
index
9b946fd
..
31ba6a9
100644
(file)
--- a/
drivers/scsi/zalon.c
+++ b/
drivers/scsi/zalon.c
@@
-87,7
+87,7
@@
zalon_probe(struct parisc_device *dev)
{
struct gsc_irq gsc_irq;
u32 zalon_vers;
{
struct gsc_irq gsc_irq;
u32 zalon_vers;
- int
irq,
error = -ENODEV;
+ int error = -ENODEV;
unsigned long zalon = dev->hpa;
unsigned long io_port = zalon + GSC_SCSI_ZALON_OFFSET;
static int unit = 0;
unsigned long zalon = dev->hpa;
unsigned long io_port = zalon + GSC_SCSI_ZALON_OFFSET;
static int unit = 0;
@@
-107,10
+107,10
@@
zalon_probe(struct parisc_device *dev)
/* Setup the interrupts first.
** Later on request_irq() will register the handler.
*/
/* Setup the interrupts first.
** Later on request_irq() will register the handler.
*/
- irq = gsc_alloc_irq(&gsc_irq);
+
dev->
irq = gsc_alloc_irq(&gsc_irq);
printk("%s: Zalon vers field is 0x%x, IRQ %d\n", __FUNCTION__,
printk("%s: Zalon vers field is 0x%x, IRQ %d\n", __FUNCTION__,
- zalon_vers, irq);
+ zalon_vers,
dev->
irq);
__raw_writel(gsc_irq.txn_addr | gsc_irq.txn_data, dev->hpa + IO_MODULE_EIM);
__raw_writel(gsc_irq.txn_addr | gsc_irq.txn_data, dev->hpa + IO_MODULE_EIM);
@@
-130,16
+130,16
@@
zalon_probe(struct parisc_device *dev)
device.dev = &dev->dev;
device.slot.base = (u_long)io_port;
device.slot.base_c = (u_long)io_port;
device.dev = &dev->dev;
device.slot.base = (u_long)io_port;
device.slot.base_c = (u_long)io_port;
- device.slot.irq = irq;
+ device.slot.irq =
dev->
irq;
device.differential = 2;
host = ncr_attach(&zalon7xx_template, unit, &device);
if (!host)
goto fail;
device.differential = 2;
host = ncr_attach(&zalon7xx_template, unit, &device);
if (!host)
goto fail;
- if (request_irq(
irq, ncr53c8xx_intr, SA_SHIRQ, dev->dev.bus_id
, host)) {
+ if (request_irq(
dev->irq, ncr53c8xx_intr, SA_SHIRQ, "zalon"
, host)) {
printk(KERN_ERR "%s: irq problem with %d, detaching\n ",
printk(KERN_ERR "%s: irq problem with %d, detaching\n ",
- dev->dev.bus_id, irq);
+ dev->dev.bus_id,
dev->
irq);
goto fail;
}
goto fail;
}
@@
-155,7
+155,7
@@
zalon_probe(struct parisc_device *dev)
return 0;
fail_free_irq:
return 0;
fail_free_irq:
- free_irq(irq, host);
+ free_irq(
dev->
irq, host);
fail:
ncr53c8xx_release(host);
return error;
fail:
ncr53c8xx_release(host);
return error;
@@
-171,18
+171,16
@@
MODULE_DEVICE_TABLE(parisc, zalon_tbl);
static int __exit zalon_remove(struct parisc_device *dev)
{
struct Scsi_Host *host = dev_get_drvdata(&dev->dev);
static int __exit zalon_remove(struct parisc_device *dev)
{
struct Scsi_Host *host = dev_get_drvdata(&dev->dev);
- int irq = host->irq;
scsi_remove_host(host);
ncr53c8xx_release(host);
scsi_remove_host(host);
ncr53c8xx_release(host);
- free_irq(irq, host);
+ free_irq(
dev->
irq, host);
return 0;
}
return 0;
}
-
static struct parisc_driver zalon_driver = {
static struct parisc_driver zalon_driver = {
- .name = "
GSC SCSI (Zalon)
",
+ .name = "
zalon
",
.id_table = zalon_tbl,
.probe = zalon_probe,
.remove = __devexit_p(zalon_remove),
.id_table = zalon_tbl,
.probe = zalon_probe,
.remove = __devexit_p(zalon_remove),
@@
-190,12
+188,18
@@
static struct parisc_driver zalon_driver = {
static int __init zalon7xx_init(void)
{
static int __init zalon7xx_init(void)
{
- return register_parisc_driver(&zalon_driver);
+ int ret = ncr53c8xx_init();
+ if (!ret)
+ ret = register_parisc_driver(&zalon_driver);
+ if (ret)
+ ncr53c8xx_exit();
+ return ret;
}
static void __exit zalon7xx_exit(void)
{
unregister_parisc_driver(&zalon_driver);
}
static void __exit zalon7xx_exit(void)
{
unregister_parisc_driver(&zalon_driver);
+ ncr53c8xx_exit();
}
module_init(zalon7xx_init);
}
module_init(zalon7xx_init);