On Tue, Dec 18, 2012 at 5:36 PM, Thomas Pedersen <thomas@xxxxxxxxxxx> wrote: > For testing various timing-sensitive protocols (power > save, etc.), a beacon accuracy of jiffies is not > sufficient. > > Signed-off-by: Thomas Pedersen <thomas@xxxxxxxxxxx> > --- > drivers/net/wireless/mac80211_hwsim.c | 63 ++++++++++++++++++++------------- > 1 file changed, 39 insertions(+), 24 deletions(-) > > diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c > index ff90855..0a8f37e 100644 > --- a/drivers/net/wireless/mac80211_hwsim.c > +++ b/drivers/net/wireless/mac80211_hwsim.c > @@ -333,11 +333,11 @@ struct mac80211_hwsim_data { > int scan_chan_idx; > > struct ieee80211_channel *channel; > - unsigned long beacon_int; /* in jiffies unit */ > + ktime_t beacon_int; > unsigned int rx_filter; > bool started, idle, scanning; > struct mutex mutex; > - struct timer_list beacon_timer; > + struct hrtimer beacon_timer; > enum ps_mode { > PS_DISABLED, PS_ENABLED, PS_AUTO_POLL, PS_MANUAL_POLL > } ps; > @@ -358,6 +358,7 @@ struct mac80211_hwsim_data { > > /* difference between this hw's clock and the real clock, in usecs */ > u64 tsf_offset; > + struct tasklet_struct bcn_tasklet; > }; > > > @@ -896,7 +897,8 @@ static void mac80211_hwsim_stop(struct ieee80211_hw *hw) > { > struct mac80211_hwsim_data *data = hw->priv; > data->started = false; > - del_timer(&data->beacon_timer); > + hrtimer_cancel(&data->beacon_timer); > + tasklet_disable(&data->bcn_tasklet); *sigh*, we should use tasklet_kill() here though. Will send a v2 to fix this. Thomas -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html