• Petr Štetiar's avatar
    mwl8k: Fix rate_idx underflow · 6b583201
    Petr Štetiar authored
    It was reported on OpenWrt bug tracking system[1], that several users
    are affected by the endless reboot of their routers if they configure
    5GHz interface with channel 44 or 48.
    
    The reboot loop is caused by the following excessive number of WARN_ON
    messages:
    
     WARNING: CPU: 0 PID: 0 at backports-4.19.23-1/net/mac80211/rx.c:4516
                                 ieee80211_rx_napi+0x1fc/0xa54 [mac80211]
    
    as the messages are being correctly emitted by the following guard:
    
     case RX_ENC_LEGACY:
          if (WARN_ON(status->rate_idx >= sband->n_bitrates))
    
    as the rate_idx is in this case erroneously set to 251 (0xfb). This fix
    simply converts previously used magic number to proper constant and
    guards against substraction which is leading to the currently observed
    underflow.
    
    1. https://bugs.openwrt.org/index.php?do=details&task_id=2218
    
    Fixes: 85478344 ("mwl8k: properly set receive status rate index on 5 GHz receive")
    Cc: <stable@vger.kernel.org>
    Tested-by: default avatarEubert Bao <bunnier@gmail.com>
    Reported-by: default avatarEubert Bao <bunnier@gmail.com>
    Signed-off-by: default avatarPetr Štetiar <ynezz@true.cz>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    6b583201
mwl8k.c 154 KB