Commit a1910f9c authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville

mac80211_hwsim: fix wmediumd_pid

Fix a few minor issues with wmediumd_pid:
a) make static
b) use u32 to match the snd_pid type
c) use ACCESS_ONCE since we don't lock it
d) don't explicitly initialize to 0
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 1b2538b2
...@@ -37,7 +37,8 @@ MODULE_AUTHOR("Jouni Malinen"); ...@@ -37,7 +37,8 @@ MODULE_AUTHOR("Jouni Malinen");
MODULE_DESCRIPTION("Software simulator of 802.11 radio(s) for mac80211"); MODULE_DESCRIPTION("Software simulator of 802.11 radio(s) for mac80211");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
int wmediumd_pid; static u32 wmediumd_pid;
static int radios = 2; static int radios = 2;
module_param(radios, int, 0444); module_param(radios, int, 0444);
MODULE_PARM_DESC(radios, "Number of simulated radios"); MODULE_PARM_DESC(radios, "Number of simulated radios");
...@@ -665,7 +666,7 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw, struct sk_buff *skb) ...@@ -665,7 +666,7 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
{ {
bool ack; bool ack;
struct ieee80211_tx_info *txi; struct ieee80211_tx_info *txi;
int _pid; u32 _pid;
mac80211_hwsim_monitor_rx(hw, skb); mac80211_hwsim_monitor_rx(hw, skb);
...@@ -676,7 +677,7 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw, struct sk_buff *skb) ...@@ -676,7 +677,7 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
} }
/* wmediumd mode check */ /* wmediumd mode check */
_pid = wmediumd_pid; _pid = ACCESS_ONCE(wmediumd_pid);
if (_pid) if (_pid)
return mac80211_hwsim_tx_frame_nl(hw, skb, _pid); return mac80211_hwsim_tx_frame_nl(hw, skb, _pid);
...@@ -764,7 +765,7 @@ static void mac80211_hwsim_beacon_tx(void *arg, u8 *mac, ...@@ -764,7 +765,7 @@ static void mac80211_hwsim_beacon_tx(void *arg, u8 *mac,
struct ieee80211_hw *hw = arg; struct ieee80211_hw *hw = arg;
struct sk_buff *skb; struct sk_buff *skb;
struct ieee80211_tx_info *info; struct ieee80211_tx_info *info;
int _pid; u32 _pid;
hwsim_check_magic(vif); hwsim_check_magic(vif);
...@@ -781,7 +782,7 @@ static void mac80211_hwsim_beacon_tx(void *arg, u8 *mac, ...@@ -781,7 +782,7 @@ static void mac80211_hwsim_beacon_tx(void *arg, u8 *mac,
mac80211_hwsim_monitor_rx(hw, skb); mac80211_hwsim_monitor_rx(hw, skb);
/* wmediumd mode check */ /* wmediumd mode check */
_pid = wmediumd_pid; _pid = ACCESS_ONCE(wmediumd_pid);
if (_pid) if (_pid)
return mac80211_hwsim_tx_frame_nl(hw, skb, _pid); return mac80211_hwsim_tx_frame_nl(hw, skb, _pid);
...@@ -1254,7 +1255,7 @@ static void hwsim_send_ps_poll(void *dat, u8 *mac, struct ieee80211_vif *vif) ...@@ -1254,7 +1255,7 @@ static void hwsim_send_ps_poll(void *dat, u8 *mac, struct ieee80211_vif *vif)
struct hwsim_vif_priv *vp = (void *)vif->drv_priv; struct hwsim_vif_priv *vp = (void *)vif->drv_priv;
struct sk_buff *skb; struct sk_buff *skb;
struct ieee80211_pspoll *pspoll; struct ieee80211_pspoll *pspoll;
int _pid; u32 _pid;
if (!vp->assoc) if (!vp->assoc)
return; return;
...@@ -1275,7 +1276,7 @@ static void hwsim_send_ps_poll(void *dat, u8 *mac, struct ieee80211_vif *vif) ...@@ -1275,7 +1276,7 @@ static void hwsim_send_ps_poll(void *dat, u8 *mac, struct ieee80211_vif *vif)
memcpy(pspoll->ta, mac, ETH_ALEN); memcpy(pspoll->ta, mac, ETH_ALEN);
/* wmediumd mode check */ /* wmediumd mode check */
_pid = wmediumd_pid; _pid = ACCESS_ONCE(wmediumd_pid);
if (_pid) if (_pid)
return mac80211_hwsim_tx_frame_nl(data->hw, skb, _pid); return mac80211_hwsim_tx_frame_nl(data->hw, skb, _pid);
...@@ -1292,7 +1293,7 @@ static void hwsim_send_nullfunc(struct mac80211_hwsim_data *data, u8 *mac, ...@@ -1292,7 +1293,7 @@ static void hwsim_send_nullfunc(struct mac80211_hwsim_data *data, u8 *mac,
struct hwsim_vif_priv *vp = (void *)vif->drv_priv; struct hwsim_vif_priv *vp = (void *)vif->drv_priv;
struct sk_buff *skb; struct sk_buff *skb;
struct ieee80211_hdr *hdr; struct ieee80211_hdr *hdr;
int _pid; u32 _pid;
if (!vp->assoc) if (!vp->assoc)
return; return;
...@@ -1314,7 +1315,7 @@ static void hwsim_send_nullfunc(struct mac80211_hwsim_data *data, u8 *mac, ...@@ -1314,7 +1315,7 @@ static void hwsim_send_nullfunc(struct mac80211_hwsim_data *data, u8 *mac,
memcpy(hdr->addr3, vp->bssid, ETH_ALEN); memcpy(hdr->addr3, vp->bssid, ETH_ALEN);
/* wmediumd mode check */ /* wmediumd mode check */
_pid = wmediumd_pid; _pid = ACCESS_ONCE(wmediumd_pid);
if (_pid) if (_pid)
return mac80211_hwsim_tx_frame_nl(data->hw, skb, _pid); return mac80211_hwsim_tx_frame_nl(data->hw, skb, _pid);
...@@ -1634,8 +1635,6 @@ static int hwsim_init_netlink(void) ...@@ -1634,8 +1635,6 @@ static int hwsim_init_netlink(void)
int rc; int rc;
printk(KERN_INFO "mac80211_hwsim: initializing netlink\n"); printk(KERN_INFO "mac80211_hwsim: initializing netlink\n");
wmediumd_pid = 0;
rc = genl_register_family_with_ops(&hwsim_genl_family, rc = genl_register_family_with_ops(&hwsim_genl_family,
hwsim_ops, ARRAY_SIZE(hwsim_ops)); hwsim_ops, ARRAY_SIZE(hwsim_ops));
if (rc) if (rc)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment