Re: [PATCH 13/50] wifi: ath12k: add dp_mon.c

Kalle Valo
2022-10-21T13:08:09Z

Jeff Johnson <quic_jjohnson@quicinc.com> writes:

> On 8/12/2022 9:09 AM, Kalle Valo wrote:
>
>> From: Kalle Valo <quic_kvalo@quicinc.com>
>>
>> (Patches split into one patch per file for easier review, but the final
>> commit will be one big patch. See the cover letter for more info.)
>>
>> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
>> ---
>> drivers/net/wireless/ath/ath12k/dp_mon.c | 2598 ++++++++++++++++++++++++++++++
>> 1 file changed, 2598 insertions(+)
>>
>> diff --git a/drivers/net/wireless/ath/ath12k/dp_mon.c
>> b/drivers/net/wireless/ath/ath12k/dp_mon.c
>> new file mode 100644
>> index 000000000000..479be0e441d8
>> --- /dev/null
>> +++ b/drivers/net/wireless/ath/ath12k/dp_mon.c
>> @@ -0,0 +1,2598 @@
>> +// SPDX-License-Identifier: BSD-3-Clause-Clear
>> +/*
>> + * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
>> + * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
>> + */
>> +
>> +#include "dp_mon.h"
>> +#include "debug.h"
>> +#include "dp_rx.h"
>> +#include "dp_tx.h"
>> +#include "peer.h"
>> +
>> +static void ath12k_dp_mon_rx_handle_ofdma_info(void *rx_tlv,
>> + struct hal_rx_user_status *rx_user_status)
>> +{
>> + struct hal_rx_ppdu_end_user_stats *ppdu_end_user =
>> + (struct hal_rx_ppdu_end_user_stats *)rx_tlv;
>> +
>> + rx_user_status->ul_ofdma_user_v0_word0 = __le32_to_cpu(ppdu_end_user->info6);
>> + rx_user_status->ul_ofdma_user_v0_word1 =
>> __le32_to_cpu(ppdu_end_user->rsvd2[10]);
>
> this violates the convention that info* is used for fields that are
> accessed while rsvd* is used for fields that are not accessed. in
> addition, use of magic number offsets is also not nice.

P Praneesh fixed this:

b290b591dbdd ath12k: remove magic number offset in rx_user_status struct

> imo what would improve this code is to have accessor macros/inline
> functions defined co-resident with the struct so that all the magic
> numbers and magic fields are contained within the acessors, and the
> actual code here looks really readable.

Yeah, in general that would be good. But in this case it would also help
if struct hal_rx_user_status word0 and word1 fields would be renamed to
better reflect what they actually are:

u32 ul_ofdma_user_v0_word0;
u32 ul_ofdma_user_v0_word1;

--