|
@@ -361,7 +361,7 @@ struct mac80211_hwsim_data {
|
|
|
int power_level;
|
|
|
|
|
|
/* difference between this hw's clock and the real clock, in usecs */
|
|
|
- u64 tsf_offset;
|
|
|
+ s64 tsf_offset;
|
|
|
};
|
|
|
|
|
|
|
|
@@ -427,9 +427,10 @@ static void mac80211_hwsim_set_tsf(struct ieee80211_hw *hw,
|
|
|
struct ieee80211_vif *vif, u64 tsf)
|
|
|
{
|
|
|
struct mac80211_hwsim_data *data = hw->priv;
|
|
|
- struct timeval tv = ktime_to_timeval(ktime_get_real());
|
|
|
- u64 now = tv.tv_sec * USEC_PER_SEC + tv.tv_usec;
|
|
|
- data->tsf_offset = tsf - now;
|
|
|
+ u64 now = mac80211_hwsim_get_tsf(hw, vif);
|
|
|
+ s64 delta = tsf - now;
|
|
|
+
|
|
|
+ data->tsf_offset += delta;
|
|
|
}
|
|
|
|
|
|
static void mac80211_hwsim_monitor_rx(struct ieee80211_hw *hw,
|