linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 22/30] cifs: Use kmemdup rather than duplicating its implementation
@ 2019-07-03 13:17 Fuqian Huang
  2019-07-03 20:16 ` Steve French
  0 siblings, 1 reply; 2+ messages in thread
From: Fuqian Huang @ 2019-07-03 13:17 UTC (permalink / raw)
  Cc: Steve French, linux-cifs, samba-technical, linux-kernel, Fuqian Huang

kmemdup is introduced to duplicate a region of memory in a neat way.
Rather than kmalloc/kzalloc + memset, which the programmer needs to
write the size twice (sometimes lead to mistakes), kmemdup improves
readability, leads to smaller code and also reduce the chances of mistakes.
Suggestion to use kmemdup rather than using kmalloc/kzalloc + memset.

Signed-off-by: Fuqian Huang <huangfq.daxian@gmail.com>
---
 fs/cifs/smb2pdu.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
index 75311a8a68bf..ab8dc73d2282 100644
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -2550,12 +2550,11 @@ SMB2_ioctl_init(struct cifs_tcon *tcon, struct smb_rqst *rqst,
 		 * indatalen is usually small at a couple of bytes max, so
 		 * just allocate through generic pool
 		 */
-		in_data_buf = kmalloc(indatalen, GFP_NOFS);
+		in_data_buf = kmemdup(in_data, indatalen, GFP_NOFS);
 		if (!in_data_buf) {
 			cifs_small_buf_release(req);
 			return -ENOMEM;
 		}
-		memcpy(in_data_buf, in_data, indatalen);
 	}
 
 	req->CtlCode = cpu_to_le32(opcode);
-- 
2.11.0


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

* Re: [PATCH 22/30] cifs: Use kmemdup rather than duplicating its implementation
  2019-07-03 13:17 [PATCH 22/30] cifs: Use kmemdup rather than duplicating its implementation Fuqian Huang
@ 2019-07-03 20:16 ` Steve French
  0 siblings, 0 replies; 2+ messages in thread
From: Steve French @ 2019-07-03 20:16 UTC (permalink / raw)
  To: Fuqian Huang; +Cc: Steve French, CIFS, samba-technical, LKML

Looks like this was already merged

commit c8fc464cbda384ba4ed48c1e744ca82cd69f1f93
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Sat Jun 1 03:31:10 2019 +0000

    cifs: Use kmemdup in SMB2_ioctl_init()

    Use kmemdup rather than duplicating its implementation

    This was reported by coccinelle.

    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>

diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
index 75311a8a68bf..ab8dc73d2282 100644
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -2550,12 +2550,11 @@ SMB2_ioctl_init(struct cifs_tcon *tcon, struct
smb_rqst *rqst,
                 * indatalen is usually small at a couple of bytes max, so
                 * just allocate through generic pool
                 */
-               in_data_buf = kmalloc(indatalen, GFP_NOFS);
+               in_data_buf = kmemdup(in_data, indatalen, GFP_NOFS);
                if (!in_data_buf) {
                        cifs_small_buf_release(req);
                        return -ENOMEM;
                }
-               memcpy(in_data_buf, in_data, indatalen);
        }

        req->CtlCode = cpu_to_le32(opcode);

On Wed, Jul 3, 2019 at 8:18 AM Fuqian Huang <huangfq.daxian@gmail.com> wrote:
>
> kmemdup is introduced to duplicate a region of memory in a neat way.
> Rather than kmalloc/kzalloc + memset, which the programmer needs to
> write the size twice (sometimes lead to mistakes), kmemdup improves
> readability, leads to smaller code and also reduce the chances of mistakes.
> Suggestion to use kmemdup rather than using kmalloc/kzalloc + memset.
>
> Signed-off-by: Fuqian Huang <huangfq.daxian@gmail.com>
> ---
>  fs/cifs/smb2pdu.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
> index 75311a8a68bf..ab8dc73d2282 100644
> --- a/fs/cifs/smb2pdu.c
> +++ b/fs/cifs/smb2pdu.c
> @@ -2550,12 +2550,11 @@ SMB2_ioctl_init(struct cifs_tcon *tcon, struct smb_rqst *rqst,
>                  * indatalen is usually small at a couple of bytes max, so
>                  * just allocate through generic pool
>                  */
> -               in_data_buf = kmalloc(indatalen, GFP_NOFS);
> +               in_data_buf = kmemdup(in_data, indatalen, GFP_NOFS);
>                 if (!in_data_buf) {
>                         cifs_small_buf_release(req);
>                         return -ENOMEM;
>                 }
> -               memcpy(in_data_buf, in_data, indatalen);
>         }
>
>         req->CtlCode = cpu_to_le32(opcode);
> --
> 2.11.0
>


-- 
Thanks,

Steve

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

end of thread, other threads:[~2019-07-03 20:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-03 13:17 [PATCH 22/30] cifs: Use kmemdup rather than duplicating its implementation Fuqian Huang
2019-07-03 20:16 ` Steve French

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).