All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Christie <mikenc@us.ibm.com>
To: linux-scsi@vger.kernel.org
Subject: [PATCH] fixes an ide-scsi oops in 2.6-test5
Date: Fri, 12 Sep 2003 18:00:23 -0700	[thread overview]
Message-ID: <3F626C27.9060806@us.ibm.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 2551 bytes --]


The attached patch cleans up the ide-scsi driver model code and fixes
the oops described below which is caused when doing a rmmod on the
driver.  The patch was built against 2.6-test5.


Mike Christie
mikenc@us.ibm.com




Sep 12 17:00:14 dyn318274bld kernel: Unable to handle kernel NULL
pointer dereference at virtual address 00000024
Sep 12 17:00:14 dyn318274bld kernel:  printing eip:
Sep 12 17:00:14 dyn318274bld kernel: c01a9a25
Sep 12 17:00:14 dyn318274bld kernel: *pde = 00000000
Sep 12 17:00:14 dyn318274bld kernel: Oops: 0002 [#1]
Sep 12 17:00:14 dyn318274bld kernel: CPU:    0
Sep 12 17:00:14 dyn318274bld kernel: EIP:    0060:[<c01a9a25>]    Not
tainted
Sep 12 17:00:14 dyn318274bld kernel: EFLAGS: 00210202
Sep 12 17:00:14 dyn318274bld kernel: EIP is at simple_rmdir+0x35/0x50
Sep 12 17:00:14 dyn318274bld kernel: eax: 00000000   ebx: cb225c80
ecx: cb225c88   edx: ffffffd9
Sep 12 17:00:14 dyn318274bld kernel: esi: c50a8740   edi: c636b0e0
ebp: cb225c80   esp: c565fe90
Sep 12 17:00:14 dyn318274bld kernel: ds: 007b   es: 007b   ss: 0068
Sep 12 17:00:14 dyn318274bld kernel: Process rmmod (pid: 2916,
threadinfo=c565e000 task=ca07c100)
Sep 12 17:00:14 dyn318274bld kernel: Stack: cb225c80 c8e89740 c50a87c0
c50a8740 c01c7a70 c50a8740 cb225c80 00000000
Sep 12 17:00:14 dyn318274bld kernel:        c565e000 cb225c80 cb225cb4
c01c7c51 cb225c80 cb225bc0 c01c7a70 c8e89740
Sep 12 17:00:14 dyn318274bld kernel:        cb225b00 c59d50e8 c0500e80
c565e000 c59d510c c05008a8 d08aa7c0 00000000
Sep 12 17:00:14 dyn318274bld kernel: Call Trace:
Sep 12 17:00:14 dyn318274bld kernel:  [<c01c7a70>] remove_dir+0x70/0xb0
Sep 12 17:00:14 dyn318274bld kernel:  [<c01c7c51>]
sysfs_remove_dir+0x191/0x3c0
Sep 12 17:00:14 dyn318274bld kernel:  [<c01c7a70>] remove_dir+0x70/0xb0
Sep 12 17:00:14 dyn318274bld kernel:  [<c026ab73>] kobject_del+0x43/0x80
Sep 12 17:00:14 dyn318274bld kernel:  [<c02e43bf>] device_del+0x7f/0xb0
Sep 12 17:00:14 dyn318274bld kernel:  [<d08a81dd>]
idescsi_cleanup+0x4d/0x60 [ide_scsi]
Sep 12 17:00:14 dyn318274bld kernel:  [<c03194bf>]
ide_unregister_driver+0x12f/0x214
Sep 12 17:00:14 dyn318274bld kernel:  [<c026a828>] unlink+0x48/0xb0
Sep 12 17:00:14 dyn318274bld kernel:  [<d08a92c7>]
exit_idescsi_module+0x27/0x29 [ide_scsi]
Sep 12 17:00:14 dyn318274bld kernel:  [<c01483d8>]
sys_delete_module+0x168/0x1d0
Sep 12 17:00:14 dyn318274bld kernel:  [<c010b269>]
sysenter_past_esp+0x52/0x71
Sep 12 17:00:14 dyn318274bld kernel:
Sep 12 17:00:14 dyn318274bld kernel: Code: ff 48 24 89 5c 24 04 89 34 24
e8 9c ff ff ff 31 d2 ff 4e 24


[-- Attachment #2: rmmod_ide_scsi.patch --]
[-- Type: text/plain, Size: 1311 bytes --]

--- linux-2.6.0-test5/drivers/scsi/ide-scsi.c	2003-09-08 12:50:08.000000000 -0700
+++ linux-2.6.0-test5-test/drivers/scsi/ide-scsi.c	2003-09-12 16:51:18.716099041 -0700
@@ -946,13 +946,6 @@
 	.proc_name		= "ide-scsi",
 };
 
-static struct device     idescsi_primary = {
-	.bus_id		= "ide-scsi",
-};
-static struct bus_type   idescsi_emu_bus = {
-	.name		= "ide-scsi",
-};
-
 static int idescsi_attach(ide_drive_t *drive)
 {
 	idescsi_scsi_t *idescsi;
@@ -975,7 +968,7 @@
 	if (!err) {
 		idescsi_setup (drive, idescsi);
 		drive->disk->fops = &idescsi_ops;
-		err = scsi_add_host(host, &idescsi_primary);
+		err = scsi_add_host(host, &drive->gendev);
 		if (!err) {
 			scsi_scan_host(host);
 			return 0;
@@ -990,27 +983,11 @@
 
 static int __init init_idescsi_module(void)
 {
-	int err;
-
-	err = bus_register(&idescsi_emu_bus);
-	if (!err) {
-		err = device_register(&idescsi_primary);
-		if (!err) {
-			err = ide_register_driver(&idescsi_driver);
-			if (!err)
-				return 0;
-
-			device_unregister(&idescsi_primary);
-		}
-		bus_unregister(&idescsi_emu_bus);
-	}
-	return err;
+	return ide_register_driver(&idescsi_driver);
 }
 
 static void __exit exit_idescsi_module(void)
 {
-	device_unregister(&idescsi_primary);
-	bus_unregister   (&idescsi_emu_bus);
 	ide_unregister_driver(&idescsi_driver);
 }
 


                 reply	other threads:[~2003-09-13  1:00 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3F626C27.9060806@us.ibm.com \
    --to=mikenc@us.ibm.com \
    --cc=linux-scsi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.