Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 May 2000 14:20:02 -0700 (PDT)
From:      mike ryan <mike+fbsd@medianstrip.net>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/18756: [PATCH] fxp device causes lockups after suspend/resume
Message-ID:  <200005222120.OAA98718@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/18756; it has been noted by GNATS.

From: mike ryan <mike+fbsd@medianstrip.net>
To: David Greenman <dg@root.com>
Cc: FreeBSD-gnats-submit@FreeBSD.ORG
Subject: Re: kern/18756: [PATCH] fxp device causes lockups after suspend/resume
Date: Mon, 22 May 2000 17:14:51 -0400

 on May 22, David Greenman <dg@root.com> wrote:
 > >  
 > >+ 	/* don't try to service interrupts when the interface isn't running */
 > >+ 	if ((ifp->if_flags & IFF_RUNNING) == 0) {
 > >+ 		return;
 > >+ 	}
 > >+ 
 > >  	while ((statack = CSR_READ_1(sc, FXP_CSR_SCB_STATACK)) != 0) {
 > 
 >    This could be a problem. If an interrupt occurs, it must be acknowledged
 > otherwise you'll be stuck in an infinit loop - PCI interrupts are level
 > sensitive and must be cleared in the ISR.
 
 the only time i've seen that return executed is when the interrupt
 was for another device sharing the same IRQ that happened to have
 been resumed first -- in my case, an onboard uhci usb controller.
 without the check above, i do get resume lockups in fxp_intr.
 
 i've just been assuming that an fxp can't generate a interrupt
 unless it's running.  if that's not correct, would it be better to
 have a "device suspended" flag in fxp_softc and replace the
 statement above to execute the necessary resume code if the device
 is still suspended?
 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200005222120.OAA98718>