Hi, - This patch (against the linux-wireless-next git tree) removes a redundant check in ieee80211_master_start_xmit (net/mac80211/tx.c) and adjust indentation in this method accordingly. In this method, there is no need to call again the ieee80211_is_data() method; this is checked immediately before, in the "if" command (we will not enter this block unless ieee80211_is_data() is true, so that the "and" (&&) condition in that "if" command will be fullfilled ). Regards, Rami Rosen Signed-off-by: Rami Rosen <ramirose@xxxxxxxxx> On Thu, Oct 2, 2008 at 4:27 PM, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Thu, 2008-10-02 at 15:56 +0300, Rami Rosen wrote: >> Hi, >> >> - This patch (against the linux-wireless-next git tree) removes a >> redundant check in ieee80211_master_start_xmit (net/mac80211/tx.c). >> >> In this method, there is no need to call again the >> ieee80211_is_data() method; this is checked immediately before, in the >> "if" command (we will not enter this block unless ieee80211_is_data() >> is true, so that the "and" (&&) condition in that "if" command will be >> fullfilled ). > > You should un-indent the code accordingly. > > johannes >
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 0cc2e23..6673252 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -1296,16 +1296,14 @@ int ieee80211_master_start_xmit(struct sk_buff *skb, if (ieee80211_vif_is_mesh(&osdata->vif) && ieee80211_is_data(hdr->frame_control)) { - if (ieee80211_is_data(hdr->frame_control)) { - if (is_multicast_ether_addr(hdr->addr3)) - memcpy(hdr->addr1, hdr->addr3, ETH_ALEN); - else - if (mesh_nexthop_lookup(skb, osdata)) - return 0; - if (memcmp(odev->dev_addr, hdr->addr4, ETH_ALEN) != 0) - IEEE80211_IFSTA_MESH_CTR_INC(&osdata->u.mesh, - fwded_frames); - } + if (is_multicast_ether_addr(hdr->addr3)) + memcpy(hdr->addr1, hdr->addr3, ETH_ALEN); + else + if (mesh_nexthop_lookup(skb, osdata)) + return 0; + if (memcmp(odev->dev_addr, hdr->addr4, ETH_ALEN) != 0) + IEEE80211_IFSTA_MESH_CTR_INC(&osdata->u.mesh, + fwded_frames); } else if (unlikely(osdata->vif.type == NL80211_IFTYPE_MONITOR)) { struct ieee80211_sub_if_data *sdata; struct ieee80211_local *local = osdata->local;