NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/34118



The following reply was made to PR kern/34118; it has been noted by GNATS.

From: Roy Marples <roy%NetBSD.org@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: kern/34118
Date: Tue, 08 Jun 2010 11:12:15 +0100

 This is a multi-part message in MIME format.
 --------------020907020506010203040809
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 According to comment #17 on http://madwifi-project.org/ticket/162
 the attached patch should resolve this issue.
 
 I'm testing it on my NetBSD-5 wireless router now as I've been bitten
 by this a few times.
 
 Thanks
 
 Roy
 
 --------------020907020506010203040809
 Content-Type: text/plain;
  name="ath-prevrix.diff"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="ath-prevrix.diff"
 
 Index: sys/dev/ic/ath.c
 ===================================================================
 RCS file: /cvsroot/src/sys/dev/ic/ath.c,v
 retrieving revision 1.102.4.2
 diff -u -p -r1.102.4.2 ath.c
 --- sys/dev/ic/ath.c   7 Aug 2009 06:48:09 -0000       1.102.4.2
 +++ sys/dev/ic/ath.c   8 Jun 2010 10:07:36 -0000
 @@ -3789,6 +3789,13 @@ ath_tx_start(struct ath_softc *sc, struc
                } else {
                        ath_rate_findrate(sc, an, shortPreamble, pktlen,
                                &rix, &try0, &txrate);
 +                      /* Ratecontrol sometimes returns invalid rate index */
 +                      if (rix != 0xff)
 +                              an->an_prevdatarix = rix;
 +                      else {
 +                              if_printf(ifp, "invalid rix 0xff\n");
 +                              rix = an->an_prevdatarix;
 +                      }
                        sc->sc_txrate = txrate;         /* for LED blinking */
                        if (try0 != ATH_TXMAXTRY)
                                ismrr = 1;
 Index: sys/dev/ic/athvar.h
 ===================================================================
 RCS file: /cvsroot/src/sys/dev/ic/athvar.h,v
 retrieving revision 1.25.4.2
 diff -u -p -r1.25.4.2 athvar.h
 --- sys/dev/ic/athvar.h        7 Aug 2009 06:48:09 -0000       1.25.4.2
 +++ sys/dev/ic/athvar.h        8 Jun 2010 10:07:36 -0000
 @@ -90,6 +90,7 @@ typedef unsigned int ath_keyix_t;
  struct ath_node {
        struct ieee80211_node an_node;  /* base class */
        u_int32_t       an_avgrssi;     /* average rssi over all rx frames */
 +      u_int8_t        an_prevdatarix; /* rate ix of laste data frame */
        /* variable-length rate control state follows */
  };
  #define       ATH_NODE(ni)    ((struct ath_node *)(ni))
 
 --------------020907020506010203040809--
 


Home | Main Index | Thread Index | Old Index