Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d5d08def9216c445339c5a24a2cdc9cc2c8c13f7
Commit:     d5d08def9216c445339c5a24a2cdc9cc2c8c13f7
Parent:     8a69aa93d54cb56017159b08512c80ede2263060
Author:     Ivo van Doorn <[EMAIL PROTECTED]>
AuthorDate: Fri Jul 27 15:43:23 2007 +0200
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Oct 10 16:47:38 2007 -0700

    [MAC80211]: Add LONG_RETRY flag to ieee80211_tx_control
    
    mac80211 informs the driver what the short and long retry values are through
    set_retry_limit(), but when packets are being transmitted it did not inform 
the
    driver which of the 2 retry limits should actually be used.
    Instead it sends the actual value, but for drivers that can only set the 
retry limit
    and the register and in the descriptor need to indicate which of the limits 
should
    be used this is not really useful.
    
    This patch will add a IEEE80211_TXCTL_LONG_RETRY_LIMIT flag to the
    ieee80211_tx_control structure. By default the short retry limit should be
    used but if the flag is set the long retry should be used.
    
    This does not prevent the driver to ignore the request for "no retry" 
packets,
    but at least those will be send out with the short retry limit. But there 
is no
    perfect cure for this problem.. :(
    
    Signed-off-by: Ivo van Doorn <[EMAIL PROTECTED]>
    Signed-off-by: Jiri Benc <[EMAIL PROTECTED]>
    Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 include/net/mac80211.h |    8 +++++++-
 net/mac80211/tx.c      |    1 +
 2 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 8a086a8..91cee0f 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -192,9 +192,15 @@ struct ieee80211_tx_control {
 #define IEEE80211_TXCTL_FIRST_FRAGMENT (1<<8) /* this is a first fragment of
                                                * the frame */
 #define IEEE80211_TXCTL_TKIP_NEW_PHASE1_KEY (1<<9)
+#define IEEE80211_TXCTL_LONG_RETRY_LIMIT (1<<10) /* this frame should be send
+                                                 * using the through
+                                                 * set_retry_limit configured
+                                                 * long retry value */
        u32 flags;                             /* tx control flags defined
                                                * above */
-       u8 retry_limit;         /* 1 = only first attempt, 2 = one retry, .. */
+       u8 retry_limit;         /* 1 = only first attempt, 2 = one retry, ..
+                                * This could be used when set_retry_limit
+                                * is not implemented by the driver */
        u8 power_level;         /* per-packet transmit power level, in dBm */
        u8 antenna_sel_tx;      /* 0 = default/diversity, 1 = Ant0, 2 = Ant1 */
        s8 key_idx;             /* -1 = do not encrypt, >= 0 keyidx from
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 2a1a7d4..532cf51 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -649,6 +649,7 @@ ieee80211_tx_h_misc(struct ieee80211_txrx_data *tx)
                if (tx->skb->len + FCS_LEN > tx->local->rts_threshold &&
                    tx->local->rts_threshold < IEEE80211_MAX_RTS_THRESHOLD) {
                        control->flags |= IEEE80211_TXCTL_USE_RTS_CTS;
+                       control->flags |= IEEE80211_TXCTL_LONG_RETRY_LIMIT;
                        control->retry_limit =
                                tx->local->long_retry_limit;
                } else {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to