NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/46291: fxp crash



The following reply was made to PR kern/46291; it has been noted by GNATS.

From: Martin Husemann <martin%duskware.de@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc: 
Subject: Re: kern/46291: fxp crash
Date: Tue, 8 May 2012 11:27:30 +0200

 --ZGiS0Q5IWpPtfppv
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 Do you remember how early in the boot process this crashed?
 Could it have been during fxp attaching, i.e. after the ethernet
 address had been printed, but before phy attached?
 
 Note that fxp_pci_attach establishes the interrupt handler before
 calling fxp_attach (and also sets sc->sc_enabled = 1), so we could
 accidently end up in fxp_intr() before sc->sc_ethercom.ec_if.if_softc
 is set correctly.
 
 This would also explain why you see it rarely. Does fxp share the interrupt
 with something else on your machine?
 
 I wonder if the attached patch would be the proper fix (but I don't understand
 anything about this hardware).
 
 Martin
 
 --ZGiS0Q5IWpPtfppv
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: attachment; filename=patch
 
 Index: if_fxp_pci.c
 ===================================================================
 RCS file: /cvsroot/src/sys/dev/pci/if_fxp_pci.c,v
 retrieving revision 1.79
 diff -c -u -r1.79 if_fxp_pci.c
 --- if_fxp_pci.c       2 Feb 2012 19:43:05 -0000       1.79
 +++ if_fxp_pci.c       8 May 2012 09:28:42 -0000
 @@ -498,8 +498,6 @@
        /* Restore PCI configuration registers. */
        fxp_pci_confreg_restore(psc);
  
 -      sc->sc_enabled = 1;
 -
        /*
         * Map and establish our interrupt.
         */
 @@ -520,6 +518,7 @@
  
        /* Finish off the attach. */
        fxp_attach(sc);
 +      sc->sc_enabled = 1;
        if (sc->sc_disable != NULL)
                fxp_disable(sc);
  
 
 --ZGiS0Q5IWpPtfppv--
 


Home | Main Index | Thread Index | Old Index