Date: Tue, 27 Dec 2005 16:41:21 -0700 From: Scott Long <scottl@samsco.org> To: Nate Lawson <nate@root.org> Cc: cvs-src@FreeBSD.org, Gleb Smirnoff <glebius@FreeBSD.org>, cvs-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/em if_em.c Message-ID: <43B1D121.1080309@samsco.org> In-Reply-To: <43B1CE9E.1060602@root.org> References: <20051222090955.E621416A4D5@hub.freebsd.org> <43B1CE9E.1060602@root.org>
index | next in thread | previous in thread | raw e-mail
Nate Lawson wrote:
> 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 <huang gddsn.org.cn>
>> Reported by: Jacques Garrigue <garrigue math.nagoya-u.ac.jp>
>> 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.
>
I can believe your first statement, but not your second. Hanging the
system on an aborted memory read cycle (as opposed to just throwing a
#SERR) would indicate a highly highly broken chipset. In any case, if
we ever implement PCI hotplug then we'll have to deal with the effects
of aborted PCI transfers anyways.
Scott
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43B1D121.1080309>
