On Tue, Jun 21, 2016 at 06:26:02PM -0400, Bob Copeland wrote:
> Looks further buggy, so perhaps this untested patch would work, i.e.
^^^^^^^^ (still)
> @@ -370,13 +372,19 @@ u32 mesh_plink_deactivate(struct sta_info *sta)
>
> spin_lock_bh(&sta->mesh->plink_lock);
> changed = __mesh_plink_deactivate(sta);
> - sta->mesh->reason = WLAN_REASON_MESH_PEER_CANCELED;
> - mesh_plink_frame_tx(sdata, sta, WLAN_SP_MESH_PEERING_CLOSE,
> - sta->sta.addr, sta->mesh->llid, sta->mesh->plid,
> - sta->mesh->reason);
> +
> + if (sdata->u.mesh.user_mpm) {
should be !sdata->u.mesh.user_mpm :)
> + sta->mesh->reason = WLAN_REASON_MESH_PEER_CANCELED;
> + mesh_plink_frame_tx(sdata, sta, WLAN_SP_MESH_PEERING_CLOSE,
> + sta->sta.addr, sta->mesh->llid,
> sta->mesh->plid,
> + sta->mesh->reason);
> + }
> spin_unlock_bh(&sta->mesh->plink_lock);
> mesh_path_flush_by_nexthop(sta);
>
> + /* make sure no readers can access nexthop sta from here on */
> + synchronize_net();
> +
> return changed;
> }
>
> --
> 2.9.0
>
--
Bob Copeland %% http://bobcopeland.com/
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html