All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Bellon <mbellon@mvista.com>
To: linux-scsi@vger.kernel.org
Subject: [PATCH] 2.4.28 - AIC driver causes kernel corruption (as a module)
Date: Tue, 11 Jan 2005 12:24:03 -0700	[thread overview]
Message-ID: <41E427D3.2020201@mvista.com> (raw)

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

Didn't see a patch for this and the problem is in the 2.4.28 sources.

The scsi_register_module call from within ah[cd]_linux_init causes the 
detect routine to be called. The detect routine calls  
ah[cd]_linux_pci_init which does a pci_register_driver call. If no 
hardware is found in the detect routine, ah[cd]_linux_init will exit 
without calling pci_unregister_driver leaving the kernel with pointers 
to a driver that never really loaded.

mark


[-- Attachment #2: scsi-patch --]
[-- Type: text/plain, Size: 1564 bytes --]

Index: drivers/scsi/aic7xxx/aic79xx_osm.c
===================================================================
RCS file: /cvsdev/mvl-kernel/linux/drivers/scsi/aic7xxx/aic79xx_osm.c,v
retrieving revision 1.2.4.2.12.4
diff -a -u -r1.2.4.2.12.4 aic79xx_osm.c
--- drivers/scsi/aic7xxx/aic79xx_osm.c	12 Feb 2004 15:33:49 -0000	1.2.4.2.12.4
+++ drivers/scsi/aic7xxx/aic79xx_osm.c	11 Jan 2005 18:46:42 -0000
@@ -5079,6 +5079,8 @@
 	}
 }
 
+static void ahd_linux_exit(void);
+
 static int __init
 ahd_linux_init(void)
 {
@@ -5087,8 +5089,7 @@
 #else
 	scsi_register_module(MODULE_SCSI_HA, &aic79xx_driver_template);
 	if (aic79xx_driver_template.present == 0) {
-		scsi_unregister_module(MODULE_SCSI_HA,
-				       &aic79xx_driver_template);
+		ahd_linux_exit();
 		return (-ENODEV);
 	}
 
Index: drivers/scsi/aic7xxx/aic7xxx_osm.c
===================================================================
RCS file: /cvsdev/mvl-kernel/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c,v
retrieving revision 1.2.4.2.12.3
diff -a -u -r1.2.4.2.12.3 aic7xxx_osm.c
--- drivers/scsi/aic7xxx/aic7xxx_osm.c	12 Feb 2004 15:33:49 -0000	1.2.4.2.12.3
+++ drivers/scsi/aic7xxx/aic7xxx_osm.c	11 Jan 2005 18:46:43 -0000
@@ -5077,6 +5077,8 @@
 	}
 }
 
+static void ahc_linux_exit(void);
+
 static int __init
 ahc_linux_init(void)
 {
@@ -5085,8 +5087,7 @@
 #else
 	scsi_register_module(MODULE_SCSI_HA, &aic7xxx_driver_template);
 	if (aic7xxx_driver_template.present == 0) {
-		scsi_unregister_module(MODULE_SCSI_HA,
-				       &aic7xxx_driver_template);
+		ahc_linux_exit();
 		return (-ENODEV);
 	}
 

             reply	other threads:[~2005-01-11 19:24 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-11 19:24 Mark Bellon [this message]
2005-01-11 19:48 ` [PATCH] 2.4.28 - AIC driver causes kernel corruption (as a module) James Bottomley
2005-01-11 20:19   ` Mark Bellon

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=41E427D3.2020201@mvista.com \
    --to=mbellon@mvista.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.