* [PATCH] ide-scsi cleanup bug
@ 2002-07-17 19:58 sullivan
0 siblings, 0 replies; only message in thread
From: sullivan @ 2002-07-17 19:58 UTC (permalink / raw)
To: linux-kernel; +Cc: linux-scsi
[-- Attachment #1: Type: text/plain, Size: 575 bytes --]
The following patch is against lk 2.5.26. The prior implementation called
scsi_unregister(host) from idescsi_cleanup(), removing the Scsi_Host instance
from the scsi_hostlist. Later when scsi_unregister_host(&template) was called
from exit_idescsi_module() but since the Scsi_Host instance had already been
removed no matches for the template were found and the device instances
remained.
The patch moves the scsi_unregister_host(&template) to idescsi_cleanup().
Since scsi_unregister_host() invokes scsi_unregister() this part of the
cleanup also occurs normally.
[-- Attachment #2: linux-2.5.26-ide-scsi.patch --]
[-- Type: text/plain, Size: 740 bytes --]
diff -Naur linux-2.5.26/drivers/scsi/ide-scsi.c linux-2.5.26-patched/drivers/scsi/ide-scsi.c
--- linux-2.5.26/drivers/scsi/ide-scsi.c Tue Jul 16 18:49:24 2002
+++ linux-2.5.26-patched/drivers/scsi/ide-scsi.c Wed Jul 17 19:14:35 2002
@@ -491,14 +491,13 @@
MOD_DEC_USE_COUNT;
}
+static Scsi_Host_Template template;
static int idescsi_cleanup (struct ata_device *drive)
{
- struct Scsi_Host *host = drive->driver_data;
-
if (ide_unregister_subdriver (drive)) {
return 1;
}
- scsi_unregister(host);
+ scsi_unregister_host(&template);
return 0;
}
@@ -801,7 +800,6 @@
static void __exit exit_idescsi_module(void)
{
unregister_ata_driver(&ata_ops);
- scsi_unregister_host(&template);
}
module_init(init_idescsi_module);
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-07-17 19:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-07-17 19:58 [PATCH] ide-scsi cleanup bug sullivan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox