drivers/net/wireless/ath/wcn36xx/smd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
In most (likely all) cases, INIT_HAL_MSG() is called before
PREPARE_HAL_BUF().
In such cases calling memset() is useless because:
msg_body.header.len = sizeof(msg_body)
So, instead of writing twice the memory, we just have a sanity check to
make sure that some potential trailing memory is zeroed.
It even gives the opportunity to see that by itself and optimize it away.
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
drivers/net/wireless/ath/wcn36xx/smd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 566f0b9c1584..17e1919d1cd8 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -475,8 +475,8 @@ static int wcn36xx_smd_send_and_wait(struct wcn36xx *wcn, size_t len)
#define PREPARE_HAL_BUF(send_buf, msg_body) \
do { \
- memset(send_buf, 0, msg_body.header.len); \
- memcpy(send_buf, &msg_body, sizeof(msg_body)); \
+ memcpy_and_pad(send_buf, msg_body.header.len, \
+ &msg_body, sizeof(msg_body), 0); \
} while (0) \
#define PREPARE_HAL_PTT_MSG_BUF(send_buf, p_msg_body) \
--
2.34.1
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote: > In most (likely all) cases, INIT_HAL_MSG() is called before > PREPARE_HAL_BUF(). > In such cases calling memset() is useless because: > msg_body.header.len = sizeof(msg_body) > > So, instead of writing twice the memory, we just have a sanity check to > make sure that some potential trailing memory is zeroed. > It even gives the opportunity to see that by itself and optimize it away. > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > Acked-by: Loic Poulain <loic.poulain@linaro.org> > Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Patch applied to ath-next branch of ath.git, thanks. 4a51e66fe96d wifi: wcn36xx: Slightly optimize PREPARE_HAL_BUF() -- https://patchwork.kernel.org/project/linux-wireless/patch/7d8ab7fee45222cdbaf80c507525f2d3941587c1.1675371372.git.christophe.jaillet@wanadoo.fr/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
On Thu, 2 Feb 2023 at 21:58, Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote: > > In most (likely all) cases, INIT_HAL_MSG() is called before > PREPARE_HAL_BUF(). > In such cases calling memset() is useless because: > msg_body.header.len = sizeof(msg_body) > > So, instead of writing twice the memory, we just have a sanity check to > make sure that some potential trailing memory is zeroed. > It even gives the opportunity to see that by itself and optimize it away. > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Acked-by: Loic Poulain <loic.poulain@linaro.org> > --- > drivers/net/wireless/ath/wcn36xx/smd.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c > index 566f0b9c1584..17e1919d1cd8 100644 > --- a/drivers/net/wireless/ath/wcn36xx/smd.c > +++ b/drivers/net/wireless/ath/wcn36xx/smd.c > @@ -475,8 +475,8 @@ static int wcn36xx_smd_send_and_wait(struct wcn36xx *wcn, size_t len) > > #define PREPARE_HAL_BUF(send_buf, msg_body) \ > do { \ > - memset(send_buf, 0, msg_body.header.len); \ > - memcpy(send_buf, &msg_body, sizeof(msg_body)); \ > + memcpy_and_pad(send_buf, msg_body.header.len, \ > + &msg_body, sizeof(msg_body), 0); \ > } while (0) \ > > #define PREPARE_HAL_PTT_MSG_BUF(send_buf, p_msg_body) \ > -- > 2.34.1 >
© 2016 - 2025 Red Hat, Inc.