Return-path: Received: from styx.suse.cz ([82.119.242.94]:47287 "EHLO mail.suse.cz" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1031153AbXEAKeR (ORCPT ); Tue, 1 May 2007 06:34:17 -0400 Date: Tue, 1 May 2007 12:34:11 +0200 From: Jiri Benc To: Daniel Drake Cc: linville@tuxdriver.com, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, kune@deine-taler.de Subject: Re: [PATCH] zd1211rw-mac80211: limit URB buffering in tx path Message-ID: <20070501123411.081c43c6@logostar.upir.cz> In-Reply-To: <20070501030100.BDE3D7B409F@zog.reactivated.net> References: <20070501030100.BDE3D7B409F@zog.reactivated.net> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-wireless-owner@vger.kernel.org List-ID: On Tue, 1 May 2007 04:01:00 +0100 (BST), Daniel Drake wrote: > The old code allowed unlimited buffing of tx frames in URBs > submitted for transfer to the device. This patch stops the > ieee80211_hw queue(s) if to many URBs are ready for submit to the > device. Actually the ZD1211 device supports currently only one > queue. This doesn't look correct to me. The limits should be per queue and you should always stop queues selectively. The ieee80211_stop_queues/ieee80211_wake_queues are for another purposes and should be used only rarely - one example is Michael Buesch's comment about a need to stop sending frames while tuning to a new channel in a workqueue. > +/** > + * wake_queues - wakes all queues > + * @hw: a &struct ieee80211_hw pointer > + * > + * Such a function is not provided by mac80211, so we have to provide them on > + * our own. > + */ > +static void wake_queues(struct ieee80211_hw *hw) It is :-) Look for ieee80211_wake_queues. But as I said, you shouldn't need that. Thanks, Jiri -- Jiri Benc SUSE Labs