2022-03-23 10:36:31

by Christophe JAILLET

[permalink] [raw]
Subject: [PATCH] ksmbd: Remove a redundant zeroing of memory

fill_transform_hdr() already call memset(0) on its 1st argument, so there
is no need to clear it explicitly before calling this function.

Use kmalloc() instead of kzalloc() to save a few cycles.

Signed-off-by: Christophe JAILLET <[email protected]>
---
Alternatively, fill_transform_hdr() has only one caller. So its memset()
could be removed instead and this kzalloc() left as is.
---
fs/ksmbd/smb2pdu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c
index bcb98109bac9..0e4f819e5859 100644
--- a/fs/ksmbd/smb2pdu.c
+++ b/fs/ksmbd/smb2pdu.c
@@ -8434,7 +8434,7 @@ int smb3_encrypt_resp(struct ksmbd_work *work)
if (ARRAY_SIZE(iov) < rq_nvec)
return -ENOMEM;

- work->tr_buf = kzalloc(sizeof(struct smb2_transform_hdr) + 4, GFP_KERNEL);
+ work->tr_buf = kmalloc(sizeof(struct smb2_transform_hdr) + 4, GFP_KERNEL);
if (!work->tr_buf)
return rc;

--
2.32.0


2022-03-23 23:33:46

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] ksmbd: Remove a redundant zeroing of memory

On Tue, Mar 22, 2022 at 09:29:51PM +0100, Christophe JAILLET wrote:
> fill_transform_hdr() already call memset(0) on its 1st argument, so there
> is no need to clear it explicitly before calling this function.
>
> Use kmalloc() instead of kzalloc() to save a few cycles.
>
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> Alternatively, fill_transform_hdr() has only one caller. So its memset()
> could be removed instead and this kzalloc() left as is.
> ---
> fs/ksmbd/smb2pdu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c
> index bcb98109bac9..0e4f819e5859 100644
> --- a/fs/ksmbd/smb2pdu.c
> +++ b/fs/ksmbd/smb2pdu.c
> @@ -8434,7 +8434,7 @@ int smb3_encrypt_resp(struct ksmbd_work *work)
> if (ARRAY_SIZE(iov) < rq_nvec)
> return -ENOMEM;
>
> - work->tr_buf = kzalloc(sizeof(struct smb2_transform_hdr) + 4, GFP_KERNEL);
> + work->tr_buf = kmalloc(sizeof(struct smb2_transform_hdr) + 4, GFP_KERNEL);
^^^
fill_transform_hdr() does not clear the last 4 bytes.

regards,
dan carpenter

2022-03-24 03:41:28

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] ksmbd: Remove a redundant zeroing of memory

On Wed, Mar 23, 2022 at 09:51:11AM +0300, Dan Carpenter wrote:
> On Tue, Mar 22, 2022 at 09:29:51PM +0100, Christophe JAILLET wrote:
> > fill_transform_hdr() already call memset(0) on its 1st argument, so there
> > is no need to clear it explicitly before calling this function.
> >
> > Use kmalloc() instead of kzalloc() to save a few cycles.
> >
> > Signed-off-by: Christophe JAILLET <[email protected]>
> > ---
> > Alternatively, fill_transform_hdr() has only one caller. So its memset()
> > could be removed instead and this kzalloc() left as is.
> > ---
> > fs/ksmbd/smb2pdu.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c
> > index bcb98109bac9..0e4f819e5859 100644
> > --- a/fs/ksmbd/smb2pdu.c
> > +++ b/fs/ksmbd/smb2pdu.c
> > @@ -8434,7 +8434,7 @@ int smb3_encrypt_resp(struct ksmbd_work *work)
> > if (ARRAY_SIZE(iov) < rq_nvec)
> > return -ENOMEM;
> >
> > - work->tr_buf = kzalloc(sizeof(struct smb2_transform_hdr) + 4, GFP_KERNEL);
> > + work->tr_buf = kmalloc(sizeof(struct smb2_transform_hdr) + 4, GFP_KERNEL);
> ^^^
> fill_transform_hdr() does not clear the last 4 bytes.
>

Oops. I was looking at the wrong fill_transform_hdr() from smb2ops.c
instead of smb2pdu.c. Sorry!

regards,
dan carpenter

2022-03-24 09:52:55

by Namjae Jeon

[permalink] [raw]
Subject: Re: [PATCH] ksmbd: Remove a redundant zeroing of memory

2022-03-23 5:29 GMT+09:00, Christophe JAILLET <[email protected]>:
> fill_transform_hdr() already call memset(0) on its 1st argument, so there
> is no need to clear it explicitly before calling this function.
>
> Use kmalloc() instead of kzalloc() to save a few cycles.
>
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> Alternatively, fill_transform_hdr() has only one caller. So its memset()
> could be removed instead and this kzalloc() left as is.
I prefer this. Could you update the patch ?

Thanks!
> ---
> fs/ksmbd/smb2pdu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c
> index bcb98109bac9..0e4f819e5859 100644
> --- a/fs/ksmbd/smb2pdu.c
> +++ b/fs/ksmbd/smb2pdu.c
> @@ -8434,7 +8434,7 @@ int smb3_encrypt_resp(struct ksmbd_work *work)
> if (ARRAY_SIZE(iov) < rq_nvec)
> return -ENOMEM;
>
> - work->tr_buf = kzalloc(sizeof(struct smb2_transform_hdr) + 4,
> GFP_KERNEL);
> + work->tr_buf = kmalloc(sizeof(struct smb2_transform_hdr) + 4,
> GFP_KERNEL);
> if (!work->tr_buf)
> return rc;
>
> --
> 2.32.0
>
>