Re: [PATCH ath-next] wifi: ath9k: use kmemdup and kcalloc
From: Rosen Penev
Date: Thu Apr 16 2026 - 19:46:51 EST
On Thu, Apr 16, 2026 at 4:09 PM Jeff Johnson
<jeff.johnson@xxxxxxxxxxxxxxxx> wrote:
>
> On 2/23/2026 2:44 PM, Rosen Penev wrote:
> > Simplifies the code slightly by removing temporary variables.
> > multiplication overflow is also gained for free.
> >
> > Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
> > ---
> > drivers/net/wireless/ath/ath9k/ar9002_hw.c | 6 +++---
> > drivers/net/wireless/ath/ath9k/common-init.c | 8 ++------
> > drivers/net/wireless/ath/ath9k/init.c | 8 +++-----
> > drivers/net/wireless/ath/ath9k/recv.c | 4 +---
> > 4 files changed, 9 insertions(+), 17 deletions(-)
> >
> ...
> > diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
> > index b52ddb237dcf..e52775dda6a7 100644
> > --- a/drivers/net/wireless/ath/ath9k/init.c
> > +++ b/drivers/net/wireless/ath/ath9k/init.c
> > @@ -297,7 +297,7 @@ int ath_descdma_setup(struct ath_softc *sc, struct ath_descdma *dd,
> > {
> > struct ath_common *common = ath9k_hw_common(sc->sc_ah);
> > u8 *ds;
> > - int i, bsize, desc_len;
> > + int i, desc_len;
> >
> > ath_dbg(common, CONFIG, "%s DMA: %u buffers %u desc/buf\n",
> > name, nbuf, ndesc);
> > @@ -351,8 +351,7 @@ int ath_descdma_setup(struct ath_softc *sc, struct ath_descdma *dd,
> > if (is_tx) {
> > struct ath_buf *bf;
> >
> > - bsize = sizeof(struct ath_buf) * nbuf;
> > - bf = devm_kzalloc(sc->dev, bsize, GFP_KERNEL);
> > + bf = devm_kcalloc(sc->dev, sizeof(*bf), nbuf, GFP_KERNEL);
> > if (!bf)
> > return -ENOMEM;
> >
> > @@ -382,8 +381,7 @@ int ath_descdma_setup(struct ath_softc *sc, struct ath_descdma *dd,
> > } else {
> > struct ath_rxbuf *bf;
> >
> > - bsize = sizeof(struct ath_rxbuf) * nbuf;
> > - bf = devm_kzalloc(sc->dev, bsize, GFP_KERNEL);
> > + bf = devm_kcalloc(sc->dev, sizeof(struct ath_rxbuf), nbuf, GFP_KERNEL);
>
> use sizeof(*bf) here as well?
> If so, I can fix this in my pending branch
Sure
>
> > if (!bf)
> > return -ENOMEM;
> >
> > diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
> > index 34c74ed99b7b..93b41a1bb2af 100644
> > --- a/drivers/net/wireless/ath/ath9k/recv.c
> > +++ b/drivers/net/wireless/ath/ath9k/recv.c
> > @@ -202,7 +202,6 @@ static int ath_rx_edma_init(struct ath_softc *sc, int nbufs)
> > struct sk_buff *skb;
> > struct ath_rxbuf *bf;
> > int error = 0, i;
> > - u32 size;
> >
> > ath9k_hw_set_rx_bufsize(ah, common->rx_bufsize -
> > ah->caps.rx_status_len);
> > @@ -212,8 +211,7 @@ static int ath_rx_edma_init(struct ath_softc *sc, int nbufs)
> > ath_rx_edma_init_queue(&sc->rx.rx_edma[ATH9K_RX_QUEUE_HP],
> > ah->caps.rx_hp_qdepth);
> >
> > - size = sizeof(struct ath_rxbuf) * nbufs;
> > - bf = devm_kzalloc(sc->dev, size, GFP_KERNEL);
> > + bf = devm_kcalloc(sc->dev, sizeof(struct ath_rxbuf), nbufs, GFP_KERNEL);
>
> here as well?
Sure
>
> > if (!bf)
> > return -ENOMEM;
> >
> > --
> > 2.53.0
> >
> >
>