netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* pull request: wireless-2.6 2008-09-11
@ 2008-09-11 20:13 John W. Linville
  2008-09-11 20:35 ` John W. Linville
       [not found] ` <20080911201308.GJ3423-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
  0 siblings, 2 replies; 4+ messages in thread
From: John W. Linville @ 2008-09-11 20:13 UTC (permalink / raw)
  To: davem; +Cc: linux-wireless, netdev, linux-kernel

Dave,

Here is one fix for 2.6.27.  It is a backport of a patch that is already
in net-next-2.6.  Since it is for a new driver (ath9k) and since it
fixes a reported bug (http://bugzilla.kernel.org/show_bug.cgi?id=11394)
I think it should be OK to pass it to Linus for the current cycle.

John

---

Individual patch is available here:

	http://www.kernel.org/pub/linux/kernel/people/linville/wireless-2.6/

---

The following changes since commit e550dfb0c2c31b6363aa463a035fc9f8dcaa3c9b:
  Neil Horman (1):
        ipv6: Fix OOPS in ip6_dst_lookup_tail().

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git master

Jouni Malinen (1):
      ath9k: Assign seq# when mac80211 requests this

 drivers/net/wireless/ath9k/beacon.c |   13 +++++++++++++
 drivers/net/wireless/ath9k/core.h   |    1 +
 drivers/net/wireless/ath9k/main.c   |   14 ++++++++++++++
 3 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/ath9k/beacon.c b/drivers/net/wireless/ath9k/beacon.c
index caf5694..00a0eaa 100644
--- a/drivers/net/wireless/ath9k/beacon.c
+++ b/drivers/net/wireless/ath9k/beacon.c
@@ -209,6 +209,7 @@ static struct ath_buf *ath_beacon_generate(struct ath_softc *sc, int if_id)
 	unsigned int curlen;
 	struct ath_txq *cabq;
 	struct ath_txq *mcastq;
+	struct ieee80211_tx_info *info;
 	avp = sc->sc_vaps[if_id];
 
 	mcastq = &avp->av_mcastq;
@@ -232,6 +233,18 @@ static struct ath_buf *ath_beacon_generate(struct ath_softc *sc, int if_id)
 	 */
 	curlen = skb->len;
 
+	info = IEEE80211_SKB_CB(skb);
+	if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) {
+		/*
+		 * TODO: make sure the seq# gets assigned properly (vs. other
+		 * TX frames)
+		 */
+		struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
+		sc->seq_no += 0x10;
+		hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
+		hdr->seq_ctrl |= cpu_to_le16(sc->seq_no);
+	}
+
 	/* XXX: spin_lock_bh should not be used here, but sparse bitches
 	 * otherwise. We should fix sparse :) */
 	spin_lock_bh(&mcastq->axq_lock);
diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h
index 673b3d8..4ee695b 100644
--- a/drivers/net/wireless/ath9k/core.h
+++ b/drivers/net/wireless/ath9k/core.h
@@ -992,6 +992,7 @@ struct ath_softc {
 	u32 sc_txintrperiod;	/* tx interrupt batching */
 	int sc_haltype2q[ATH9K_WME_AC_VO+1]; /* HAL WME	AC -> h/w qnum */
 	u32 sc_ant_tx[8];	/* recent tx frames/antenna */
+	u16 seq_no; /* TX sequence number */
 
 	/* Beacon */
 	struct ath9k_tx_queue_info sc_beacon_qi;
diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c
index c5107f2..99badf1 100644
--- a/drivers/net/wireless/ath9k/main.c
+++ b/drivers/net/wireless/ath9k/main.c
@@ -369,6 +369,20 @@ static int ath9k_tx(struct ieee80211_hw *hw,
 {
 	struct ath_softc *sc = hw->priv;
 	int hdrlen, padsize;
+	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
+
+	/*
+	 * As a temporary workaround, assign seq# here; this will likely need
+	 * to be cleaned up to work better with Beacon transmission and virtual
+	 * BSSes.
+	 */
+	if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) {
+		struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
+		if (info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT)
+			sc->seq_no += 0x10;
+		hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
+		hdr->seq_ctrl |= cpu_to_le16(sc->seq_no);
+	}
 
 	/* Add the padding after the header if this is not already done */
 	hdrlen = ieee80211_get_hdrlen_from_skb(skb);
-- 
John W. Linville
linville@tuxdriver.com

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: pull request: wireless-2.6 2008-09-11
  2008-09-11 20:13 pull request: wireless-2.6 2008-09-11 John W. Linville
@ 2008-09-11 20:35 ` John W. Linville
       [not found]   ` <20080911203552.GL3423-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
       [not found] ` <20080911201308.GJ3423-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
  1 sibling, 1 reply; 4+ messages in thread
From: John W. Linville @ 2008-09-11 20:35 UTC (permalink / raw)
  To: davem; +Cc: linux-wireless, netdev, linux-kernel, sfr

On Thu, Sep 11, 2008 at 04:13:08PM -0400, John W. Linville wrote:
> Dave,
> 
> Here is one fix for 2.6.27.  It is a backport of a patch that is already
> in net-next-2.6.  Since it is for a new driver (ath9k) and since it
> fixes a reported bug (http://bugzilla.kernel.org/show_bug.cgi?id=11394)
> I think it should be OK to pass it to Linus for the current cycle.
> 
> John

BTW, this (obviously) introduces a merge conflict between wireless-2.6 and wireless-next-2.6.  The solution is trivial -- just take the wireless-next-2.6 version of
the affected files.  Still, I have a sample merge available here:

	git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6.git merge-test

Hth!

John
-- 
John W. Linville
linville@tuxdriver.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: pull request: wireless-2.6 2008-09-11
       [not found] ` <20080911201308.GJ3423-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
@ 2008-09-11 22:37   ` David Miller
  0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2008-09-11 22:37 UTC (permalink / raw)
  To: linville-2XuSBdqkA4R54TAoqtyWWQ
  Cc: linux-wireless-u79uwXL29TY76Z2rM5mHXA,
	netdev-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

From: "John W. Linville" <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
Date: Thu, 11 Sep 2008 16:13:09 -0400

> Here is one fix for 2.6.27.  It is a backport of a patch that is already
> in net-next-2.6.  Since it is for a new driver (ath9k) and since it
> fixes a reported bug (http://bugzilla.kernel.org/show_bug.cgi?id=11394)
> I think it should be OK to pass it to Linus for the current cycle.

Pulled and pushed back out to net-2.6, thanks John.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: pull request: wireless-2.6 2008-09-11
       [not found]   ` <20080911203552.GL3423-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
@ 2008-09-11 23:09     ` David Miller
  0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2008-09-11 23:09 UTC (permalink / raw)
  To: linville-2XuSBdqkA4R54TAoqtyWWQ
  Cc: linux-wireless-u79uwXL29TY76Z2rM5mHXA,
	netdev-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, sfr-3FnU+UHB4dNDw9hX6IcOSA

From: "John W. Linville" <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
Date: Thu, 11 Sep 2008 16:35:53 -0400

> BTW, this (obviously) introduces a merge conflict between
> wireless-2.6 and wireless-next-2.6.  The solution is trivial -- just
> take the wireless-next-2.6 version of the affected files.  Still, I
> have a sample merge available here:
>
> 	git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6.git merge-test

Ok, I just did the merge, please double check my work.

Thanks!
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-09-11 23:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-11 20:13 pull request: wireless-2.6 2008-09-11 John W. Linville
2008-09-11 20:35 ` John W. Linville
     [not found]   ` <20080911203552.GL3423-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
2008-09-11 23:09     ` David Miller
     [not found] ` <20080911201308.GJ3423-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
2008-09-11 22:37   ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).