From owner-cvs-src-old@FreeBSD.ORG Sun Jul 31 16:16:34 2011 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D93B71065784 for ; Sun, 31 Jul 2011 16:16:34 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C7B7C8FC0C for ; Sun, 31 Jul 2011 16:16:34 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p6VGGY2R082274 for ; Sun, 31 Jul 2011 16:16:34 GMT (envelope-from adrian@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p6VGGYeg082273 for cvs-src-old@freebsd.org; Sun, 31 Jul 2011 16:16:34 GMT (envelope-from adrian@repoman.freebsd.org) Message-Id: <201107311616.p6VGGYeg082273@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to adrian@repoman.freebsd.org using -f From: Adrian Chadd Date: Sun, 31 Jul 2011 16:16:25 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/dev/ath if_ath.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 Jul 2011 16:16:34 -0000 adrian 2011-07-31 16:16:25 UTC FreeBSD src repository Modified files: sys/dev/ath if_ath.c Log: SVN rev 224550 on 2011-07-31 16:16:25Z by adrian Disable the RXORN/RXEOL interrupts if RXEOL occurs, preventing an interrupt storm. This is easily triggered by flipping on and off tcpdump -y IEEE802_11_RADIO w/ witness enabled. This causes a whole lot of console IO and when you're attached to a serial console (eg on my AR7161 embedded board), the RX interrupt doesn't get called quickly enough and the RX queue fills up. This wasn't a problem in the past because of the self-linked RX descriptor trick - the RX would never hit the "end" of the RX descriptor list. However this isn't possible for 802.11n (see previous commit history for why.) Both Linux ath9k and the Atheros reference driver code do this; I'm just looking now for where they then restart the PCU receive. Right now the RX will just stop until the interface is reset. Obtained from: Linux, Atheros Approved by: re (kib) Revision Changes Path 1.333 +6 -0 src/sys/dev/ath/if_ath.c