enum plink_event event;
enum plink_frame_type ftype;
size_t baselen;
- bool deactivated, matches_local = true;
+ bool deactivated;
u8 ie_len;
u8 *baseaddr;
__le16 plid, llid, reason;
/* Now we will figure out the appropriate event... */
event = PLINK_UNDEFINED;
if (ftype != PLINK_CLOSE && (!mesh_matches_local(&elems, sdata))) {
- matches_local = false;
switch (ftype) {
case PLINK_OPEN:
event = OPN_RJCT;
/* avoid warning */
break;
}
- }
-
- if (!sta && !matches_local) {
- rcu_read_unlock();
- reason = cpu_to_le16(MESH_CAPABILITY_POLICY_VIOLATION);
- llid = 0;
- mesh_plink_frame_tx(sdata, PLINK_CLOSE, mgmt->sa, llid,
- plid, reason);
- return;
+ spin_lock_bh(&sta->lock);
} else if (!sta) {
/* ftype == PLINK_OPEN */
u32 rates;
}
event = OPN_ACPT;
spin_lock_bh(&sta->lock);
- } else if (matches_local) {
+ } else {
spin_lock_bh(&sta->lock);
switch (ftype) {
case PLINK_OPEN:
rcu_read_unlock();
return;
}
- } else {
- spin_lock_bh(&sta->lock);
}
mpl_dbg("Mesh plink (peer, state, llid, plid, event): %pM %s %d %d %d\n",