summaryrefslogtreecommitdiffstats
path: root/net/mac802154/tx.c
diff options
context:
space:
mode:
authorAlan Ott <alan@signal11.us>2013-04-05 13:03:10 +0000
committerDavid S. Miller <davem@davemloft.net>2013-04-08 12:09:18 -0400
commit9f7f78b479ae06279a85451d456040bbe4eae013 (patch)
treec0e7c127eceffbcab6640a41766b6817157798ef /net/mac802154/tx.c
parentcbde8123f6c18f34781de3a5095fb58e951326f4 (diff)
downloadlinux-9f7f78b479ae06279a85451d456040bbe4eae013.tar.gz
linux-9f7f78b479ae06279a85451d456040bbe4eae013.tar.bz2
linux-9f7f78b479ae06279a85451d456040bbe4eae013.zip
mac802154: Keep track of the channel when changed
Two sections checked whether the current channel != the new channel without ever setting the current channel variables. 1. net/mac802154/tx.c: Prevent set_channel() from getting called every time a packet is sent. 2. net/mac802154/mib.c: Lock (pib_lock) accesses to current_channel and current_page and make sure they are updated when the channel has been changed. Signed-off-by: Alan Ott <alan@signal11.us> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mac802154/tx.c')
-rw-r--r--net/mac802154/tx.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/mac802154/tx.c b/net/mac802154/tx.c
index 3fd3e07ec599..6d1647399d4f 100644
--- a/net/mac802154/tx.c
+++ b/net/mac802154/tx.c
@@ -58,6 +58,9 @@ static void mac802154_xmit_worker(struct work_struct *work)
pr_debug("set_channel failed\n");
goto out;
}
+
+ xw->priv->phy->current_channel = xw->chan;
+ xw->priv->phy->current_page = xw->page;
}
res = xw->priv->ops->xmit(&xw->priv->hw, xw->skb);