Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Dec 2005 15:30:38 -0800
From:      Nate Lawson <nate@root.org>
To:        Gleb Smirnoff <glebius@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/dev/em if_em.c
Message-ID:  <43B1CE9E.1060602@root.org>
In-Reply-To: <20051222090955.E621416A4D5@hub.freebsd.org>
References:  <20051222090955.E621416A4D5@hub.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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.

-- 
Nate



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