Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d686b920 authored by Johannes Berg's avatar Johannes Berg
Browse files

nl80211: use nla_put_u64_64bit() for the remaining u64 attributes



Nicolas converted most users, but didn't realize some were generated
by macros. Convert those over as well.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Acked-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 9b95fe59
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -2517,6 +2517,7 @@ enum nl80211_sta_bss_param {
 *	attributes carrying the actual values.
 *	attributes carrying the actual values.
 * @NL80211_STA_INFO_RX_DURATION: aggregate PPDU duration for all frames
 * @NL80211_STA_INFO_RX_DURATION: aggregate PPDU duration for all frames
 *	received from the station (u64, usec)
 *	received from the station (u64, usec)
 * @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment
 * @__NL80211_STA_INFO_AFTER_LAST: internal
 * @__NL80211_STA_INFO_AFTER_LAST: internal
 * @NL80211_STA_INFO_MAX: highest possible station info attribute
 * @NL80211_STA_INFO_MAX: highest possible station info attribute
 */
 */
@@ -2554,6 +2555,7 @@ enum nl80211_sta_info {
	NL80211_STA_INFO_BEACON_SIGNAL_AVG,
	NL80211_STA_INFO_BEACON_SIGNAL_AVG,
	NL80211_STA_INFO_TID_STATS,
	NL80211_STA_INFO_TID_STATS,
	NL80211_STA_INFO_RX_DURATION,
	NL80211_STA_INFO_RX_DURATION,
	NL80211_STA_INFO_PAD,


	/* keep last */
	/* keep last */
	__NL80211_STA_INFO_AFTER_LAST,
	__NL80211_STA_INFO_AFTER_LAST,
@@ -2570,6 +2572,7 @@ enum nl80211_sta_info {
 *	transmitted MSDUs (not counting the first attempt; u64)
 *	transmitted MSDUs (not counting the first attempt; u64)
 * @NL80211_TID_STATS_TX_MSDU_FAILED: number of failed transmitted
 * @NL80211_TID_STATS_TX_MSDU_FAILED: number of failed transmitted
 *	MSDUs (u64)
 *	MSDUs (u64)
 * @NL80211_TID_STATS_PAD: attribute used for padding for 64-bit alignment
 * @NUM_NL80211_TID_STATS: number of attributes here
 * @NUM_NL80211_TID_STATS: number of attributes here
 * @NL80211_TID_STATS_MAX: highest numbered attribute here
 * @NL80211_TID_STATS_MAX: highest numbered attribute here
 */
 */
@@ -2579,6 +2582,7 @@ enum nl80211_tid_stats {
	NL80211_TID_STATS_TX_MSDU,
	NL80211_TID_STATS_TX_MSDU,
	NL80211_TID_STATS_TX_MSDU_RETRIES,
	NL80211_TID_STATS_TX_MSDU_RETRIES,
	NL80211_TID_STATS_TX_MSDU_FAILED,
	NL80211_TID_STATS_TX_MSDU_FAILED,
	NL80211_TID_STATS_PAD,


	/* keep last */
	/* keep last */
	NUM_NL80211_TID_STATS,
	NUM_NL80211_TID_STATS,
+22 −14
Original line number Original line Diff line number Diff line
@@ -3755,11 +3755,18 @@ static int nl80211_send_station(struct sk_buff *msg, u32 cmd, u32 portid,
		goto nla_put_failure;
		goto nla_put_failure;


#define PUT_SINFO(attr, memb, type) do {				\
#define PUT_SINFO(attr, memb, type) do {				\
	BUILD_BUG_ON(sizeof(type) == sizeof(u64));			\
	if (sinfo->filled & (1ULL << NL80211_STA_INFO_ ## attr) &&	\
	if (sinfo->filled & (1ULL << NL80211_STA_INFO_ ## attr) &&	\
	    nla_put_ ## type(msg, NL80211_STA_INFO_ ## attr,		\
	    nla_put_ ## type(msg, NL80211_STA_INFO_ ## attr,		\
			     sinfo->memb))				\
			     sinfo->memb))				\
		goto nla_put_failure;					\
		goto nla_put_failure;					\
	} while (0)
	} while (0)
#define PUT_SINFO_U64(attr, memb) do {					\
	if (sinfo->filled & (1ULL << NL80211_STA_INFO_ ## attr) &&	\
	    nla_put_u64_64bit(msg, NL80211_STA_INFO_ ## attr,		\
			      sinfo->memb, NL80211_STA_INFO_PAD))	\
		goto nla_put_failure;					\
	} while (0)


	PUT_SINFO(CONNECTED_TIME, connected_time, u32);
	PUT_SINFO(CONNECTED_TIME, connected_time, u32);
	PUT_SINFO(INACTIVE_TIME, inactive_time, u32);
	PUT_SINFO(INACTIVE_TIME, inactive_time, u32);
@@ -3776,12 +3783,12 @@ static int nl80211_send_station(struct sk_buff *msg, u32 cmd, u32 portid,
			(u32)sinfo->tx_bytes))
			(u32)sinfo->tx_bytes))
		goto nla_put_failure;
		goto nla_put_failure;


	PUT_SINFO(RX_BYTES64, rx_bytes, u64);
	PUT_SINFO_U64(RX_BYTES64, rx_bytes);
	PUT_SINFO(TX_BYTES64, tx_bytes, u64);
	PUT_SINFO_U64(TX_BYTES64, tx_bytes);
	PUT_SINFO(LLID, llid, u16);
	PUT_SINFO(LLID, llid, u16);
	PUT_SINFO(PLID, plid, u16);
	PUT_SINFO(PLID, plid, u16);
	PUT_SINFO(PLINK_STATE, plink_state, u8);
	PUT_SINFO(PLINK_STATE, plink_state, u8);
	PUT_SINFO(RX_DURATION, rx_duration, u64);
	PUT_SINFO_U64(RX_DURATION, rx_duration);


	switch (rdev->wiphy.signal_type) {
	switch (rdev->wiphy.signal_type) {
	case CFG80211_SIGNAL_TYPE_MBM:
	case CFG80211_SIGNAL_TYPE_MBM:
@@ -3849,12 +3856,13 @@ static int nl80211_send_station(struct sk_buff *msg, u32 cmd, u32 portid,
		    &sinfo->sta_flags))
		    &sinfo->sta_flags))
		goto nla_put_failure;
		goto nla_put_failure;


	PUT_SINFO(T_OFFSET, t_offset, u64);
	PUT_SINFO_U64(T_OFFSET, t_offset);
	PUT_SINFO(RX_DROP_MISC, rx_dropped_misc, u64);
	PUT_SINFO_U64(RX_DROP_MISC, rx_dropped_misc);
	PUT_SINFO(BEACON_RX, rx_beacon, u64);
	PUT_SINFO_U64(BEACON_RX, rx_beacon);
	PUT_SINFO(BEACON_SIGNAL_AVG, rx_beacon_signal_avg, u8);
	PUT_SINFO(BEACON_SIGNAL_AVG, rx_beacon_signal_avg, u8);


#undef PUT_SINFO
#undef PUT_SINFO
#undef PUT_SINFO_U64


	if (sinfo->filled & BIT(NL80211_STA_INFO_TID_STATS)) {
	if (sinfo->filled & BIT(NL80211_STA_INFO_TID_STATS)) {
		struct nlattr *tidsattr;
		struct nlattr *tidsattr;
@@ -3877,19 +3885,19 @@ static int nl80211_send_station(struct sk_buff *msg, u32 cmd, u32 portid,
			if (!tidattr)
			if (!tidattr)
				goto nla_put_failure;
				goto nla_put_failure;


#define PUT_TIDVAL(attr, memb, type) do {				\
#define PUT_TIDVAL_U64(attr, memb) do {					\
	if (tidstats->filled & BIT(NL80211_TID_STATS_ ## attr) &&	\
	if (tidstats->filled & BIT(NL80211_TID_STATS_ ## attr) &&	\
	    nla_put_ ## type(msg, NL80211_TID_STATS_ ## attr,		\
	    nla_put_u64_64bit(msg, NL80211_TID_STATS_ ## attr,		\
			     tidstats->memb))				\
			      tidstats->memb, NL80211_TID_STATS_PAD))	\
		goto nla_put_failure;					\
		goto nla_put_failure;					\
	} while (0)
	} while (0)


			PUT_TIDVAL(RX_MSDU, rx_msdu, u64);
			PUT_TIDVAL_U64(RX_MSDU, rx_msdu);
			PUT_TIDVAL(TX_MSDU, tx_msdu, u64);
			PUT_TIDVAL_U64(TX_MSDU, tx_msdu);
			PUT_TIDVAL(TX_MSDU_RETRIES, tx_msdu_retries, u64);
			PUT_TIDVAL_U64(TX_MSDU_RETRIES, tx_msdu_retries);
			PUT_TIDVAL(TX_MSDU_FAILED, tx_msdu_failed, u64);
			PUT_TIDVAL_U64(TX_MSDU_FAILED, tx_msdu_failed);


#undef PUT_TIDVAL
#undef PUT_TIDVAL_U64
			nla_nest_end(msg, tidattr);
			nla_nest_end(msg, tidattr);
		}
		}