diff options
| -rw-r--r-- | drivers/net/wireless/ipw2200.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c index b2e144b7f4a0..26998b5157ea 100644 --- a/drivers/net/wireless/ipw2200.c +++ b/drivers/net/wireless/ipw2200.c | |||
| @@ -7656,7 +7656,8 @@ static void ipw_handle_data_packet_monitor(struct ipw_priv *priv, | |||
| 7656 | 7656 | ||
| 7657 | /* Big bitfield of all the fields we provide in radiotap */ | 7657 | /* Big bitfield of all the fields we provide in radiotap */ |
| 7658 | ipw_rt->rt_hdr.it_present = | 7658 | ipw_rt->rt_hdr.it_present = |
| 7659 | ((1 << IEEE80211_RADIOTAP_FLAGS) | | 7659 | ((1 << IEEE80211_RADIOTAP_TSFT) | |
| 7660 | (1 << IEEE80211_RADIOTAP_FLAGS) | | ||
| 7660 | (1 << IEEE80211_RADIOTAP_RATE) | | 7661 | (1 << IEEE80211_RADIOTAP_RATE) | |
| 7661 | (1 << IEEE80211_RADIOTAP_CHANNEL) | | 7662 | (1 << IEEE80211_RADIOTAP_CHANNEL) | |
| 7662 | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | | 7663 | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | |
| @@ -7665,10 +7666,14 @@ static void ipw_handle_data_packet_monitor(struct ipw_priv *priv, | |||
| 7665 | 7666 | ||
| 7666 | /* Zero the flags, we'll add to them as we go */ | 7667 | /* Zero the flags, we'll add to them as we go */ |
| 7667 | ipw_rt->rt_flags = 0; | 7668 | ipw_rt->rt_flags = 0; |
| 7668 | ipw_rt->rt_tsf = 0ULL; | 7669 | ipw_rt->rt_tsf = (u64)(frame->parent_tsf[3] << 24 | |
| 7670 | frame->parent_tsf[2] << 16 | | ||
| 7671 | frame->parent_tsf[1] << 8 | | ||
| 7672 | frame->parent_tsf[0]); | ||
| 7669 | 7673 | ||
| 7670 | /* Convert signal to DBM */ | 7674 | /* Convert signal to DBM */ |
| 7671 | ipw_rt->rt_dbmsignal = antsignal; | 7675 | ipw_rt->rt_dbmsignal = antsignal; |
| 7676 | ipw_rt->rt_dbmnoise = frame->noise; | ||
| 7672 | 7677 | ||
| 7673 | /* Convert the channel data and set the flags */ | 7678 | /* Convert the channel data and set the flags */ |
| 7674 | ipw_rt->rt_channel = cpu_to_le16(ieee80211chan2mhz(received_channel)); | 7679 | ipw_rt->rt_channel = cpu_to_le16(ieee80211chan2mhz(received_channel)); |
| @@ -7868,7 +7873,8 @@ static void ipw_handle_promiscuous_rx(struct ipw_priv *priv, | |||
| 7868 | 7873 | ||
| 7869 | /* Big bitfield of all the fields we provide in radiotap */ | 7874 | /* Big bitfield of all the fields we provide in radiotap */ |
| 7870 | ipw_rt->rt_hdr.it_present = | 7875 | ipw_rt->rt_hdr.it_present = |
| 7871 | ((1 << IEEE80211_RADIOTAP_FLAGS) | | 7876 | ((1 << IEEE80211_RADIOTAP_TSFT) | |
| 7877 | (1 << IEEE80211_RADIOTAP_FLAGS) | | ||
| 7872 | (1 << IEEE80211_RADIOTAP_RATE) | | 7878 | (1 << IEEE80211_RADIOTAP_RATE) | |
| 7873 | (1 << IEEE80211_RADIOTAP_CHANNEL) | | 7879 | (1 << IEEE80211_RADIOTAP_CHANNEL) | |
| 7874 | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | | 7880 | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | |
| @@ -7877,7 +7883,10 @@ static void ipw_handle_promiscuous_rx(struct ipw_priv *priv, | |||
| 7877 | 7883 | ||
| 7878 | /* Zero the flags, we'll add to them as we go */ | 7884 | /* Zero the flags, we'll add to them as we go */ |
| 7879 | ipw_rt->rt_flags = 0; | 7885 | ipw_rt->rt_flags = 0; |
| 7880 | ipw_rt->rt_tsf = 0ULL; | 7886 | ipw_rt->rt_tsf = (u64)(frame->parent_tsf[3] << 24 | |
| 7887 | frame->parent_tsf[2] << 16 | | ||
| 7888 | frame->parent_tsf[1] << 8 | | ||
| 7889 | frame->parent_tsf[0]); | ||
| 7881 | 7890 | ||
| 7882 | /* Convert to DBM */ | 7891 | /* Convert to DBM */ |
| 7883 | ipw_rt->rt_dbmsignal = signal; | 7892 | ipw_rt->rt_dbmsignal = signal; |
