Search Linux Wireless

Re: [PATCH] [RESEND] mac80211: remove redundant check in ieee80211_master_start_xmit (net/mac80211/tx.c)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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;

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux