• Alexis Green's avatar
    mac80211: Fix a case of incorrect metric used when forwarding a PREQ · 5ec596c4
    Alexis Green authored
    This patch fixes a bug in hwmp_preq_frame_process where the wrong metric
    can be used when forwarding a PREQ. This happens because the code uses
    the same metric variable to record the value of the metric to the source
    of the PREQ and the value of the metric to the target of the PREQ.
    
    This comes into play when both reply and forward are set which happens
    when IEEE80211_PREQ_PROACTIVE_PREP_FLAG is set and when MP_F_DO | MP_F_RF
    is set. The original code had a special case to handle the first case
    but not the second.
    
    The patch uses distinct variables for the two metrics which makes the
    code flow much clearer and removes the need to restore the original
    value of metric when forwarding.
    Signed-off-by: default avatarAlexis Green <agreen@cococorp.com>
    CC: Jesse Jones <jjones@cococorp.com>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    5ec596c4
mesh_hwmp.c 34.3 KB