From: Kalle Valo <kvalo@kernel.org>
To: Wen Gong <quic_wgong@quicinc.com>
Cc: <ath11k@lists.infradead.org>, <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH 05/15] ath11k: store cur_regulatory_info for each radio
Date: Thu, 09 Dec 2021 19:31:35 +0200 [thread overview]
Message-ID: <8735n1wuq0.fsf@codeaurora.org> (raw)
In-Reply-To: <20211026111913.7346-6-quic_wgong@quicinc.com> (Wen Gong's message of "Tue, 26 Oct 2021 07:19:03 -0400")
Wen Gong <quic_wgong@quicinc.com> writes:
> The regulatory info of WMI_REG_CHAN_LIST_CC_EXT_EVENTID is not saved
> in ath11k now, the info should be saved in ath11k. Save the info for
> each radio and support switch regulatory rules dynamically.
>
> Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
>
> Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
> ---
> drivers/net/wireless/ath/ath11k/core.c | 9 ++
> drivers/net/wireless/ath/ath11k/core.h | 1 +
> drivers/net/wireless/ath/ath11k/mac.c | 11 +++
> drivers/net/wireless/ath/ath11k/mac.h | 2 +-
> drivers/net/wireless/ath/ath11k/wmi.c | 117 +++++++++++++++++--------
> drivers/net/wireless/ath/ath11k/wmi.h | 6 +-
> 6 files changed, 106 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
> index 66ceef24532d..d8ac26f730db 100644
> --- a/drivers/net/wireless/ath/ath11k/core.c
> +++ b/drivers/net/wireless/ath/ath11k/core.c
> @@ -1115,6 +1115,15 @@ EXPORT_SYMBOL(ath11k_core_deinit);
>
> void ath11k_core_free(struct ath11k_base *ab)
> {
> + if (ab) {
Why this check? Is someone calling ath11k_core_free() with NULL?
> + int i;
> +
> + for (i = 0; i < ab->num_radios; i++)
> + ath11k_reg_reset_info(&ab->reg_info_store[i]);
> +
> + kfree(ab->reg_info_store);
> + }
> +
I would expect ath11k_core_free() to free stuff allocated by
ath11k_core_alloc(), so I'm not sure if this is the right location. What
about ath11k_reg_free()?
> --- a/drivers/net/wireless/ath/ath11k/wmi.c
> +++ b/drivers/net/wireless/ath/ath11k/wmi.c
> @@ -4205,6 +4205,10 @@ static int ath11k_wmi_tlv_ext_soc_hal_reg_caps_parse(struct ath11k_base *soc,
> soc->pdevs[0].pdev_id = 0;
> }
>
> + soc->reg_info_store = kcalloc(soc->num_radios,
> + sizeof(*soc->reg_info_store),
> + GFP_ATOMIC);
What if there are two events from firmware? That means the first
allocation is lost, no? I think there should be some kind of error checking.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
--
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k
WARNING: multiple messages have this Message-ID (diff)
From: Kalle Valo <kvalo@kernel.org>
To: Wen Gong <quic_wgong@quicinc.com>
Cc: <ath11k@lists.infradead.org>, <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH 05/15] ath11k: store cur_regulatory_info for each radio
Date: Thu, 09 Dec 2021 19:31:35 +0200 [thread overview]
Message-ID: <8735n1wuq0.fsf@codeaurora.org> (raw)
In-Reply-To: <20211026111913.7346-6-quic_wgong@quicinc.com> (Wen Gong's message of "Tue, 26 Oct 2021 07:19:03 -0400")
Wen Gong <quic_wgong@quicinc.com> writes:
> The regulatory info of WMI_REG_CHAN_LIST_CC_EXT_EVENTID is not saved
> in ath11k now, the info should be saved in ath11k. Save the info for
> each radio and support switch regulatory rules dynamically.
>
> Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
>
> Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
> ---
> drivers/net/wireless/ath/ath11k/core.c | 9 ++
> drivers/net/wireless/ath/ath11k/core.h | 1 +
> drivers/net/wireless/ath/ath11k/mac.c | 11 +++
> drivers/net/wireless/ath/ath11k/mac.h | 2 +-
> drivers/net/wireless/ath/ath11k/wmi.c | 117 +++++++++++++++++--------
> drivers/net/wireless/ath/ath11k/wmi.h | 6 +-
> 6 files changed, 106 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
> index 66ceef24532d..d8ac26f730db 100644
> --- a/drivers/net/wireless/ath/ath11k/core.c
> +++ b/drivers/net/wireless/ath/ath11k/core.c
> @@ -1115,6 +1115,15 @@ EXPORT_SYMBOL(ath11k_core_deinit);
>
> void ath11k_core_free(struct ath11k_base *ab)
> {
> + if (ab) {
Why this check? Is someone calling ath11k_core_free() with NULL?
> + int i;
> +
> + for (i = 0; i < ab->num_radios; i++)
> + ath11k_reg_reset_info(&ab->reg_info_store[i]);
> +
> + kfree(ab->reg_info_store);
> + }
> +
I would expect ath11k_core_free() to free stuff allocated by
ath11k_core_alloc(), so I'm not sure if this is the right location. What
about ath11k_reg_free()?
> --- a/drivers/net/wireless/ath/ath11k/wmi.c
> +++ b/drivers/net/wireless/ath/ath11k/wmi.c
> @@ -4205,6 +4205,10 @@ static int ath11k_wmi_tlv_ext_soc_hal_reg_caps_parse(struct ath11k_base *soc,
> soc->pdevs[0].pdev_id = 0;
> }
>
> + soc->reg_info_store = kcalloc(soc->num_radios,
> + sizeof(*soc->reg_info_store),
> + GFP_ATOMIC);
What if there are two events from firmware? That means the first
allocation is lost, no? I think there should be some kind of error checking.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
next prev parent reply other threads:[~2021-12-09 17:31 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-26 11:18 [PATCH 00/15] ath11k: add support for 6 GHz station for various modes : LPI, SP and VLP Wen Gong
2021-10-26 11:18 ` Wen Gong
2021-10-26 11:18 ` [PATCH 01/15] ath11k: add support for extended wmi service bit Wen Gong
2021-10-26 11:18 ` Wen Gong
2021-12-09 16:16 ` Kalle Valo
2021-12-09 16:16 ` Kalle Valo
2021-10-26 11:19 ` [PATCH 02/15] ath11k: Add support to parse new wmi event for 6 GHz regulatory Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-12-09 17:21 ` Kalle Valo
2021-12-09 17:21 ` Kalle Valo
2021-10-26 11:19 ` [PATCH 03/15] ath11k: add support to select 6 GHz Regulatory type Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-10-26 11:19 ` [PATCH 04/15] ath11k: allow only one interface up simultaneously for WCN6855 Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-12-09 17:24 ` Kalle Valo
2021-12-09 17:24 ` Kalle Valo
2021-10-26 11:19 ` [PATCH 05/15] ath11k: store cur_regulatory_info for each radio Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-12-09 17:31 ` Kalle Valo [this message]
2021-12-09 17:31 ` Kalle Valo
2021-10-26 11:19 ` [PATCH 06/15] ath11k: update regulatory rules when interface added Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-10-26 11:19 ` [PATCH 07/15] ath11k: update regulatory rules when connect to AP on 6 GHz band for station Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-10-26 11:19 ` [PATCH 08/15] ath11k: save power spectral density(psd) of regulatory rule Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-10-26 11:19 ` [PATCH 09/15] ath11k: add parse of transmit power envelope element Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-12-09 17:35 ` Kalle Valo
2021-12-09 17:35 ` Kalle Valo
2021-10-26 11:19 ` [PATCH 10/15] ath11k: save max tx power in vdev start response event from firmware Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-10-26 11:19 ` [PATCH 11/15] ath11k: fill parameters for vdev_set_tpc_power wmi command Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-10-26 11:19 ` [PATCH 12/15] ath11k: add WMI_TLV_SERVICE_EXT_TPC_REG_SUPPORT service bit Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-10-26 11:19 ` [PATCH 13/15] ath11k: discard BSS_CHANGED_TXPOWER when EXT_TPC_REG_SUPPORT for 6 GHz Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-12-09 17:38 ` Kalle Valo
2021-12-09 17:38 ` Kalle Valo
2021-10-26 11:19 ` [PATCH 14/15] ath11k: add handler for WMI_VDEV_SET_TPC_POWER_CMDID Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-12-09 17:40 ` Kalle Valo
2021-12-09 17:40 ` Kalle Valo
2021-10-26 11:19 ` [PATCH 15/15] ath11k: send TPC power to firmware for 6 GHz station Wen Gong
2021-10-26 11:19 ` Wen Gong
2021-12-09 17:43 ` [PATCH 00/15] ath11k: add support for 6 GHz station for various modes : LPI, SP and VLP Kalle Valo
2021-12-09 17:43 ` Kalle Valo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8735n1wuq0.fsf@codeaurora.org \
--to=kvalo@kernel.org \
--cc=ath11k@lists.infradead.org \
--cc=linux-wireless@vger.kernel.org \
--cc=quic_wgong@quicinc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.