From owner-cvs-all@FreeBSD.ORG Tue Dec 27 23:36:57 2005 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EDD8916A41F; Tue, 27 Dec 2005 23:36:57 +0000 (GMT) (envelope-from nate@root.org) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6508743D70; Tue, 27 Dec 2005 23:36:54 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.5.50] (ppp-71-139-31-194.dsl.snfc21.pacbell.net [71.139.31.194]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id jBRNb89e025949 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 27 Dec 2005 15:37:09 -0800 Message-ID: <43B1CE9E.1060602@root.org> Date: Tue, 27 Dec 2005 15:30:38 -0800 From: Nate Lawson User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Gleb Smirnoff References: <20051222090955.E621416A4D5@hub.freebsd.org> In-Reply-To: <20051222090955.E621416A4D5@hub.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/em if_em.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Dec 2005 23:36:58 -0000 Gleb Smirnoff wrote: > glebius 2005-12-22 09:09:39 UTC > > FreeBSD src repository > > Modified files: > sys/dev/em if_em.c > Log: > Add a quirk to fix resume on some laptops. > > Reported by: joe > Reported by: Huang wen hui > Reported by: Jacques Garrigue > PR: kern/89825 > > Revision Changes Path > 1.94 +9 -0 src/sys/dev/em/if_em.c > > > Index: src/sys/dev/em/if_em.c > diff -u src/sys/dev/em/if_em.c:1.93 src/sys/dev/em/if_em.c:1.94 > --- src/sys/dev/em/if_em.c:1.93 Sun Dec 18 18:24:26 2005 > +++ src/sys/dev/em/if_em.c Thu Dec 22 09:09:39 2005 > @@ -1048,6 +1048,15 @@ > else if (reg_icr == 0) > break; > > + /* > + * XXX: some laptops trigger several spurious interrupts > + * on em(4) when in the resume cycle. The ICR register > + * reports all-ones value in this case. Processing such > + * interrupts would lead to a freeze. I don't know why. > + */ > + if (reg_icr == 0xffffffff) > + break; > + > if (ifp->if_drv_flags & IFF_DRV_RUNNING) { > em_process_receive_interrupts(adapter, -1); > em_clean_transmit_interrupts(adapter); This probably means that the PCI memory space isn't fully initialized but an interrupt has been triggered. If you then go and try to poke the hardware, then you can hang the system. -- Nate