Date: Tue, 13 Oct 2009 10:42:01 -0700 From: Weongyo Jeong <weongyo.jeong@gmail.com> To: Poul-Henning Kamp <phk@phk.freebsd.dk> Cc: current@freebsd.org Subject: Re: if_rum dies on transmit... Message-ID: <20091013174201.GC67082@weongyo> In-Reply-To: <86051.1254232666@critter.freebsd.dk> References: <86051.1254232666@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
--UugvWAfsgieZRqgk Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Tue, Sep 29, 2009 at 01:57:46PM +0000, Poul-Henning Kamp wrote: > > Has anybody else seen if_rum die when you try to transmit a file over > a TCP connection ? > > If I try to print across the network, upload a file with ftp or anything > else of that general tenor, if_rum seems to hang the output queue and > stops transmitting packets. > > Restarting wpa_supplicant mostly resolves the issue, but it does not > on its own discover the problem. > > According to tcpdump(8), packets are still received. > > Any ideas ? Could you please test with attached patch? regards, Weongyo Jeong --UugvWAfsgieZRqgk Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="patch_rum_20091013.diff" Index: if_rum.c =================================================================== --- if_rum.c (revision 198036) +++ if_rum.c (working copy) @@ -826,6 +826,9 @@ usbd_transfer_submit(xfer); } + RUM_UNLOCK(sc); + rum_start(ifp); + RUM_LOCK(sc); break; default: /* Error */ @@ -930,8 +933,8 @@ * the private mutex of a device! That is why we do the * "ieee80211_input" here, and not some lines up! */ + RUM_UNLOCK(sc); if (m) { - RUM_UNLOCK(sc); ni = ieee80211_find_rxnode(ic, mtod(m, struct ieee80211_frame_min *)); if (ni != NULL) { @@ -941,8 +944,11 @@ } else (void) ieee80211_input_all(ic, m, rssi, RT2573_NOISE_FLOOR); - RUM_LOCK(sc); } + if ((ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0 && + !IFQ_IS_EMPTY(&ifp->if_snd)) + rum_start(ifp); + RUM_LOCK(sc); return; default: /* Error */ --UugvWAfsgieZRqgk--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20091013174201.GC67082>