From owner-p4-projects@FreeBSD.ORG Mon May 23 21:22:21 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 816AC16A420; Mon, 23 May 2005 21:22:20 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 58BCA16A41C for ; Mon, 23 May 2005 21:22:20 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0A0D143D1F for ; Mon, 23 May 2005 21:22:19 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j4NLMJm7093764 for ; Mon, 23 May 2005 21:22:19 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j4NLMJx8093756 for perforce@freebsd.org; Mon, 23 May 2005 21:22:19 GMT (envelope-from sam@freebsd.org) Date: Mon, 23 May 2005 21:22:19 GMT Message-Id: <200505232122.j4NLMJx8093756@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 77360 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 May 2005 21:22:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=77360 Change 77360 by sam@sam_ebb on 2005/05/23 21:21:54 code shuffle Affected files ... .. //depot/projects/vap/sys/net80211/ieee80211_power.c#2 edit Differences ... ==== //depot/projects/vap/sys/net80211/ieee80211_power.c#2 (text+ko) ==== @@ -314,52 +314,51 @@ struct ieee80211_node *ni = vap->iv_bss; int qlen; + if (!((enable != 0) ^ ((ni->ni_flags & IEEE80211_NODE_PWR_MGT) != 0))) + return; + IEEE80211_NOTE(vap, IEEE80211_MSG_POWER, ni, "sta power save mode %s", enable ? "on" : "off"); if (!enable) { - if (ni->ni_flags & IEEE80211_NODE_PWR_MGT) { - ni->ni_flags &= ~IEEE80211_NODE_PWR_MGT; - ieee80211_send_nulldata(ieee80211_ref_node(ni)); - /* - * Flush any queued frames; we can do this immediately - * because we know they'll be queued behind the null - * data frame we send the ap. - * XXX can we use a data frame to take us out of ps? - */ - qlen = IEEE80211_NODE_SAVEQ_QLEN(ni); - if (qlen != 0) { - struct ifnet *ifp = &vap->iv_arp.ac_if; - struct ifaltq *ifq = &ifp->if_snd; - struct ifqueue *psq = &ni->ni_savedq; - int active; + ni->ni_flags &= ~IEEE80211_NODE_PWR_MGT; + ieee80211_send_nulldata(ieee80211_ref_node(ni)); + /* + * Flush any queued frames; we can do this immediately + * because we know they'll be queued behind the null + * data frame we send the ap. + * XXX can we use a data frame to take us out of ps? + */ + qlen = IEEE80211_NODE_SAVEQ_QLEN(ni); + if (qlen != 0) { + struct ifnet *ifp = &vap->iv_arp.ac_if; + struct ifaltq *ifq = &ifp->if_snd; + struct ifqueue *psq = &ni->ni_savedq; + int active; - IEEE80211_NOTE(vap, IEEE80211_MSG_POWER, ni, - "flush ps queue, %u packets queued", qlen); - active = 1; - IF_LOCK(ifq); - IF_LOCK(psq); - for (;;) { - struct mbuf *m; + IEEE80211_NOTE(vap, IEEE80211_MSG_POWER, ni, + "flush ps queue, %u packets queued", qlen); + active = 1; + IF_LOCK(ifq); + IF_LOCK(psq); + for (;;) { + struct mbuf *m; - if (_IF_QLEN(psq) == 0) - break; - if (_IF_QFULL(ifq)) - break; - _IF_DEQUEUE(psq, m); - /* NB: no accounting, already done */ - _IF_ENQUEUE(ifq, m); - active = ifp->if_flags & IFF_OACTIVE; - } - IF_UNLOCK(psq); - IF_UNLOCK(ifq); - if (!active) - if_start(ifp); + if (_IF_QLEN(psq) == 0) + break; + if (_IF_QFULL(ifq)) + break; + _IF_DEQUEUE(psq, m); + /* NB: no accounting, already done */ + _IF_ENQUEUE(ifq, m); + active = ifp->if_flags & IFF_OACTIVE; } + IF_UNLOCK(psq); + IF_UNLOCK(ifq); + if (!active) + if_start(ifp); } } else { - if ((ni->ni_flags & IEEE80211_NODE_PWR_MGT) == 0) { - ni->ni_flags |= IEEE80211_NODE_PWR_MGT; - ieee80211_send_nulldata(ieee80211_ref_node(ni)); - } + ni->ni_flags |= IEEE80211_NODE_PWR_MGT; + ieee80211_send_nulldata(ieee80211_ref_node(ni)); } }