public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [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