From: Eric Kerin <eric@bootseg.com>
To: arjanv@redhat.com
Cc: linux-scsi@vger.kernel.org
Subject: Re: [PATCH] 2.6.0 aic7xxx and aic79xx stale pci_device list entry
Date: Sat, 03 Jan 2004 06:12:56 -0500 [thread overview]
Message-ID: <1073128375.5478.12.camel@opiate> (raw)
In-Reply-To: <1073120514.4429.0.camel@laptop.fenrus.com>
On Sat, 2004-01-03 at 04:01, Arjan van de Ven wrote:
> On Fri, 2004-01-02 at 21:50, Eric Kerin wrote:
> > Loading the aic7xxx or aic79xx modules, on a machine that did not
> > contain the card, left a stale entry in the pci_device list. This
> > caused an oops upon loading the next module that registered a
> > pci_device.
> >
> > The patches below will unregister the pci_device if it successfully
> > registers the device, but does not find any cards.
> >
> > Comments are appreciated.
>
> well in 2.6 modules are supposed to remain loaded even though no device
> is found (since one can be hotplugged later) so that part of the driver
> needs changing; other than that yes the driver needs to deregister
> itself....
Yea, I saw examples of both cases (remain loaded, or don't remain
loaded), but there was a comment in include/linux/pci.h that said "For
the module case, a hotplug daemon of some sort should load a module in
response to an insert event." So I put a little more weight on the ones
that unload being correct. Oh well live and learn.
Here's a new patch, now it will leave the module loaded if it
successfully registers the pci device.
Eric Kerin
--- aic7xxx_osm.c.original 2004-01-02 03:56:32.000000000 -0500
+++ aic7xxx_osm.c 2004-01-03 05:03:41.000000000 -0500
@@ -844,6 +844,7 @@ ahc_linux_detect(Scsi_Host_Template *tem
{
struct ahc_softc *ahc;
int found;
+ int pci_reg_state;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
/*
@@ -891,8 +892,9 @@ ahc_linux_detect(Scsi_Host_Template *tem
*/
ahc_list_lockinit();
+ pci_reg_state = -1;
#ifdef CONFIG_PCI
- ahc_linux_pci_init();
+ pci_reg_state = ahc_linux_pci_init();
#endif
#ifdef CONFIG_EISA
@@ -913,6 +915,10 @@ ahc_linux_detect(Scsi_Host_Template *tem
spin_lock_irq(&io_request_lock);
#endif
aic7xxx_detect_complete++;
+ if(pci_reg_state == 0 && found == 0){
+ return(1);
+ }
+
return (found);
}
--- aic79xx_osm.c.original 2004-01-02 02:46:43.000000000 -0500
+++ aic79xx_osm.c 2004-01-03 05:05:52.000000000 -0500
@@ -856,6 +856,7 @@ ahd_linux_detect(Scsi_Host_Template *tem
{
struct ahd_softc *ahd;
int found;
+ int pci_reg_state;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
/*
@@ -906,8 +907,9 @@ ahd_linux_detect(Scsi_Host_Template *tem
*/
ahd_list_lockinit();
+ pci_reg_state = -1;
#ifdef CONFIG_PCI
- ahd_linux_pci_init();
+ pci_reg_state = ahd_linux_pci_init();
#endif
/*
@@ -924,6 +926,10 @@ ahd_linux_detect(Scsi_Host_Template *tem
spin_lock_irq(&io_request_lock);
#endif
aic79xx_detect_complete++;
+ if(pci_reg_state == 0 && found == 0){
+ return(1);
+ }
+
return (found);
}
next prev parent reply other threads:[~2004-01-03 11:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-02 20:50 [PATCH] 2.6.0 aic7xxx and aic79xx stale pci_device list entry Eric Kerin
2004-01-03 9:01 ` Arjan van de Ven
2004-01-03 11:12 ` Eric Kerin [this message]
2004-01-03 13:59 ` Jan-Benedict Glaw
2004-01-24 16:09 ` Eric Kerin
2004-01-03 22:24 ` Justin T. Gibbs
2004-01-04 10:04 ` Arjan van de Ven
2004-01-30 5:25 ` Justin T. Gibbs
2004-01-30 14:41 ` Arjan van de Ven
2004-01-30 15:03 ` Justin T. Gibbs
2004-01-03 22:24 ` Justin T. Gibbs
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=1073128375.5478.12.camel@opiate \
--to=eric@bootseg.com \
--cc=arjanv@redhat.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.