Message ID | 7d8ab7fee45222cdbaf80c507525f2d3941587c1.1675371372.git.christophe.jaillet@wanadoo.fr |
---|---|
State | New |
Headers | show |
Series | [net-next] wifi: wcn36xx: Slightly optimize PREPARE_HAL_BUF() | expand |
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 >
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()
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) \
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(-)