Merge remote-tracking branch 'renesas/next'
[deliverable/linux.git] / net / mac80211 / mesh_hwmp.c
index 002244bca948520f9e3d722dc908c62aa3eb4fb1..faccef9776707b63b09bec88fbb5098b3d0ec32c 100644 (file)
@@ -746,6 +746,7 @@ static void hwmp_perr_frame_process(struct ieee80211_sub_if_data *sdata,
                sta = next_hop_deref_protected(mpath);
                if (mpath->flags & MESH_PATH_ACTIVE &&
                    ether_addr_equal(ta, sta->sta.addr) &&
+                   !(mpath->flags & MESH_PATH_FIXED) &&
                    (!(mpath->flags & MESH_PATH_SN_VALID) ||
                    SN_GT(target_sn, mpath->sn)  || target_sn == 0)) {
                        mpath->flags &= ~MESH_PATH_ACTIVE;
@@ -1012,6 +1013,10 @@ void mesh_path_start_discovery(struct ieee80211_sub_if_data *sdata)
                goto enddiscovery;
 
        spin_lock_bh(&mpath->state_lock);
+       if (mpath->flags & (MESH_PATH_DELETED | MESH_PATH_FIXED)) {
+               spin_unlock_bh(&mpath->state_lock);
+               goto enddiscovery;
+       }
        mpath->flags &= ~MESH_PATH_REQ_QUEUED;
        if (preq_node->flags & PREQ_Q_F_START) {
                if (mpath->flags & MESH_PATH_RESOLVING) {
This page took 0.027661 seconds and 5 git commands to generate.