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: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
1b2538b2ab
commit
a1910f9cad
@@ -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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 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,
|
|||||||
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,
|
|||||||
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)
|
|||||||
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)
|
|||||||
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,
|
|||||||
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,
|
|||||||
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)
|
|||||||
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)
|
||||||
|
Reference in New Issue
Block a user