Ticket #867: change_rate_fix.diff

File change_rate_fix.diff, 1.3 kB (added by tjalling.hattink@ti-wmc.nl, 6 years ago)

Patch for fixing the reset issue after changing the radio rate.

  • net80211/ieee80211.c

    old new  
    11161116                        KASSERT(vap->iv_bss != NULL, ("no bss node")); 
    11171117                        vap->iv_bss->ni_rates = ic->ic_sup_rates[newphymode]; 
    11181118                } 
    1119                 error = ENETRESET; 
     1119                error = -ENETRESET; 
    11201120        } 
    11211121        IEEE80211_UNLOCK_IRQ(ic); 
    11221122 
     
    12101210        error = 0; 
    12111211        if (vap->iv_fixed_rate != newrate) { 
    12121212                vap->iv_fixed_rate = newrate;           /* fixed tx rate */ 
    1213                 error = ENETRESET; 
     1213                error = -ENETRESET; 
    12141214        } 
    12151215        if (vap->iv_des_mode != newmode) { 
    12161216                vap->iv_des_mode = newmode;             /* desired phymode */ 
    1217                 error = ENETRESET; 
     1217                error = -ENETRESET; 
    12181218        } 
    12191219        return error; 
    12201220} 
  • net80211/ieee80211_wireless.c

    old new  
    19621962                ifr_mode = IEEE80211_MODE_11A; 
    19631963        ifr.ifr_media |= IFM_MAKEMODE(ifr_mode); 
    19641964        retv = ifmedia_ioctl(ic->ic_dev, &ifr, &ic->ic_media, SIOCSIFMEDIA); 
    1965         if ((!retv || retv == ENETRESET) &&  mode != vap->iv_des_mode) { 
     1965        if ((!retv || retv == -ENETRESET) &&  mode != vap->iv_des_mode) { 
    19661966                ieee80211_scan_flush(ic);       /* NB: could optimize */ 
    19671967                vap->iv_des_mode = mode; 
    19681968                if (IS_UP_AUTO(vap)) {