mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH wireless-next] wifi: wcn36xx: allocate chan_surveys with main struct
@ 2026-05-19  2:03 Rosen Penev
  2026-06-06 13:28 ` Loic Poulain
  2026-06-06 15:53 ` Jeff Johnson
  0 siblings, 2 replies; 3+ messages in thread
From: Rosen Penev @ 2026-05-19  2:03 UTC (permalink / raw)
  To: linux-wireless
  Cc: Loic Poulain, open list:QUALCOMM WCN36XX WIRELESS DRIVER, open list

Avoid allocating separately with a flexible array member. Simplifies
allocation slightly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
 drivers/net/wireless/ath/wcn36xx/main.c    | 13 ++-----------
 drivers/net/wireless/ath/wcn36xx/wcn36xx.h |  2 +-
 2 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index c3f0860873de..ad8a4bd910d2 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -1568,7 +1568,8 @@ static int wcn36xx_probe(struct platform_device *pdev)

 	wcnss = dev_get_drvdata(pdev->dev.parent);

-	hw = ieee80211_alloc_hw(sizeof(struct wcn36xx), &wcn36xx_ops);
+	n_channels = wcn_band_2ghz.n_channels + wcn_band_5ghz.n_channels;
+	hw = ieee80211_alloc_hw(struct_size(wcn, chan_survey, n_channels), &wcn36xx_ops);
 	if (!hw) {
 		wcn36xx_err("failed to alloc hw\n");
 		ret = -ENOMEM;
@@ -1590,16 +1591,6 @@ static int wcn36xx_probe(struct platform_device *pdev)
 		goto out_wq;
 	}

-	n_channels = wcn_band_2ghz.n_channels + wcn_band_5ghz.n_channels;
-	wcn->chan_survey = devm_kcalloc(wcn->dev,
-					n_channels,
-					sizeof(struct wcn36xx_chan_survey),
-					GFP_KERNEL);
-	if (!wcn->chan_survey) {
-		ret = -ENOMEM;
-		goto out_wq;
-	}
-
 	ret = dma_set_mask_and_coherent(wcn->dev, DMA_BIT_MASK(32));
 	if (ret < 0) {
 		wcn36xx_err("failed to set DMA mask: %d\n", ret);
diff --git a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
index 7ee79593cd23..8c43f67bd780 100644
--- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
+++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
@@ -298,7 +298,7 @@ struct wcn36xx {
 	struct ieee80211_channel *channel;

 	spinlock_t survey_lock;		/* protects chan_survey */
-	struct wcn36xx_chan_survey	*chan_survey;
+	struct wcn36xx_chan_survey	chan_survey[];
 };

 static inline bool wcn36xx_is_fw_version(struct wcn36xx *wcn,
--
2.54.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH wireless-next] wifi: wcn36xx: allocate chan_surveys with main struct
  2026-05-19  2:03 [PATCH wireless-next] wifi: wcn36xx: allocate chan_surveys with main struct Rosen Penev
@ 2026-06-06 13:28 ` Loic Poulain
  2026-06-06 15:53 ` Jeff Johnson
  1 sibling, 0 replies; 3+ messages in thread
From: Loic Poulain @ 2026-06-06 13:28 UTC (permalink / raw)
  To: Rosen Penev
  Cc: linux-wireless, open list:QUALCOMM WCN36XX WIRELESS DRIVER, open list

On Tue, May 19, 2026 at 4:03 AM Rosen Penev <rosenp@gmail.com> wrote:
>
> Avoid allocating separately with a flexible array member. Simplifies
> allocation slightly.
>
> Signed-off-by: Rosen Penev <rosenp@gmail.com>

Reviewed-by: Loic Poulain <loic.poulain@oss.qualcomm.com>


> ---
>  drivers/net/wireless/ath/wcn36xx/main.c    | 13 ++-----------
>  drivers/net/wireless/ath/wcn36xx/wcn36xx.h |  2 +-
>  2 files changed, 3 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
> index c3f0860873de..ad8a4bd910d2 100644
> --- a/drivers/net/wireless/ath/wcn36xx/main.c
> +++ b/drivers/net/wireless/ath/wcn36xx/main.c
> @@ -1568,7 +1568,8 @@ static int wcn36xx_probe(struct platform_device *pdev)
>
>         wcnss = dev_get_drvdata(pdev->dev.parent);
>
> -       hw = ieee80211_alloc_hw(sizeof(struct wcn36xx), &wcn36xx_ops);
> +       n_channels = wcn_band_2ghz.n_channels + wcn_band_5ghz.n_channels;
> +       hw = ieee80211_alloc_hw(struct_size(wcn, chan_survey, n_channels), &wcn36xx_ops);
>         if (!hw) {
>                 wcn36xx_err("failed to alloc hw\n");
>                 ret = -ENOMEM;
> @@ -1590,16 +1591,6 @@ static int wcn36xx_probe(struct platform_device *pdev)
>                 goto out_wq;
>         }
>
> -       n_channels = wcn_band_2ghz.n_channels + wcn_band_5ghz.n_channels;
> -       wcn->chan_survey = devm_kcalloc(wcn->dev,
> -                                       n_channels,
> -                                       sizeof(struct wcn36xx_chan_survey),
> -                                       GFP_KERNEL);
> -       if (!wcn->chan_survey) {
> -               ret = -ENOMEM;
> -               goto out_wq;
> -       }
> -
>         ret = dma_set_mask_and_coherent(wcn->dev, DMA_BIT_MASK(32));
>         if (ret < 0) {
>                 wcn36xx_err("failed to set DMA mask: %d\n", ret);
> diff --git a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
> index 7ee79593cd23..8c43f67bd780 100644
> --- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
> +++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
> @@ -298,7 +298,7 @@ struct wcn36xx {
>         struct ieee80211_channel *channel;
>
>         spinlock_t survey_lock;         /* protects chan_survey */
> -       struct wcn36xx_chan_survey      *chan_survey;
> +       struct wcn36xx_chan_survey      chan_survey[];
>  };
>
>  static inline bool wcn36xx_is_fw_version(struct wcn36xx *wcn,
> --
> 2.54.0
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH wireless-next] wifi: wcn36xx: allocate chan_surveys with main struct
  2026-05-19  2:03 [PATCH wireless-next] wifi: wcn36xx: allocate chan_surveys with main struct Rosen Penev
  2026-06-06 13:28 ` Loic Poulain
@ 2026-06-06 15:53 ` Jeff Johnson
  1 sibling, 0 replies; 3+ messages in thread
From: Jeff Johnson @ 2026-06-06 15:53 UTC (permalink / raw)
  To: linux-wireless, Rosen Penev; +Cc: Loic Poulain, wcn36xx, linux-kernel


On Mon, 18 May 2026 19:03:17 -0700, Rosen Penev wrote:
> Avoid allocating separately with a flexible array member. Simplifies
> allocation slightly.
> 
> 

Applied, thanks!

[1/1] wifi: wcn36xx: allocate chan_surveys with main struct
      commit: 0bd50e363581a9f833c051f7543ffd1fd3455509

Best regards,
-- 
Jeff Johnson <jeff.johnson@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-06-06 15:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-19  2:03 [PATCH wireless-next] wifi: wcn36xx: allocate chan_surveys with main struct Rosen Penev
2026-06-06 13:28 ` Loic Poulain
2026-06-06 15:53 ` Jeff Johnson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®