|
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
|
|
|
|
--- a/net/mac80211/mesh_hwmp.c
|
|
|
+++ b/net/mac80211/mesh_hwmp.c
|
|
|
-@@ -1112,16 +1112,13 @@ int mesh_nexthop_resolve(struct ieee8021
|
|
|
+@@ -1115,16 +1115,13 @@ int mesh_nexthop_resolve(struct ieee8021
|
|
|
struct mesh_path *mpath;
|
|
|
struct sk_buff *skb_to_free = NULL;
|
|
|
u8 *target_addr = hdr->addr3;
|
|
@@ -28,7 +28,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
|
|
|
|
/* no nexthop found, start resolving */
|
|
|
mpath = mesh_path_lookup(sdata, target_addr);
|
|
|
-@@ -1129,8 +1126,7 @@ int mesh_nexthop_resolve(struct ieee8021
|
|
|
+@@ -1132,8 +1129,7 @@ int mesh_nexthop_resolve(struct ieee8021
|
|
|
mpath = mesh_path_add(sdata, target_addr);
|
|
|
if (IS_ERR(mpath)) {
|
|
|
mesh_path_discard_frame(sdata, skb);
|
|
@@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-@@ -1143,13 +1139,10 @@ int mesh_nexthop_resolve(struct ieee8021
|
|
|
+@@ -1146,13 +1142,10 @@ int mesh_nexthop_resolve(struct ieee8021
|
|
|
info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING;
|
|
|
ieee80211_set_qos_hdr(sdata, skb);
|
|
|
skb_queue_tail(&mpath->frame_queue, skb);
|
|
@@ -53,7 +53,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
-@@ -1169,13 +1162,10 @@ int mesh_nexthop_lookup(struct ieee80211
|
|
|
+@@ -1172,13 +1165,10 @@ int mesh_nexthop_lookup(struct ieee80211
|
|
|
struct sta_info *next_hop;
|
|
|
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
|
|
|
u8 *target_addr = hdr->addr3;
|
|
@@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
|
|
|
|
if (time_after(jiffies,
|
|
|
mpath->exp_time -
|
|
|
-@@ -1190,12 +1180,10 @@ int mesh_nexthop_lookup(struct ieee80211
|
|
|
+@@ -1193,12 +1183,10 @@ int mesh_nexthop_lookup(struct ieee80211
|
|
|
memcpy(hdr->addr1, next_hop->sta.addr, ETH_ALEN);
|
|
|
memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN);
|
|
|
ieee80211_mps_set_frame_flags(sdata, next_hop, hdr);
|