Re: [KJ] kmalloc to kzalloc patches for drivers/block [sane version]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jiri Slaby wrote:
Om Narasimhan wrote:
Thanks for the comments.
>
> Signed off by Om Narasimhan <[email protected]>

This is not the canonical format, per SubmittingPatches. It should be:

Signed-off-by: Random J Developer <[email protected]>
OK. I would take care of it.

>  drivers/block/cciss.c    |    4 +--
> drivers/block/cpqarray.c | 72 +++++++++++++++-------------------------------
>  drivers/block/loop.c     |    4 +--
>  3 files changed, 25 insertions(+), 55 deletions(-)

Your diffstat should have indicated to you that this should be split up
better. Please (re-)read SubmittingPatches. *One* logical change per
patch, most importantly.
OK. I would resubmit.
>
> diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
> index 2cd3391..a800a69 100644
> --- a/drivers/block/cciss.c
> +++ b/drivers/block/cciss.c
> @@ -900,7 +900,7 @@ #if 0 /* 'buf_size' member is 16-bits
>                               return -EINVAL;
>  #endif
>                       if (iocommand.buf_size > 0) {
> - buff = kmalloc(iocommand.buf_size, GFP_KERNEL); > + buff = kzalloc(iocommand.buf_size, GFP_KERNEL);
>                               if (buff == NULL)
>                                       return -EFAULT;
>                       }
> @@ -911,8 +911,6 @@ #endif
>                                       kfree(buff);
>                                       return -EFAULT;
>                               }
> -                     } else {
> -                             memset(buff, 0, iocommand.buf_size);
>                       }
>                       if ((c = cmd_alloc(host, 0)) == NULL) {
>                               kfree(buff);

This changes performance potentially, no? The memset before was
conditional upon (iocommand.Request.Type.Direction == XFER_WRITE) and
now the memory will always be zero'd.
Yes, but not the functionality.
if (iocommand.buf_size > 0), code allocates using kmalloc. if
direction is XFER_WRITE, it does a copy_from_user(), and free()s the
allocated buffer, not really caring what data came in from userspace.

You really misread that code. It frees the buffer and returns -EFAULT if the copy_from_user _failed_. This is standard procedure and that code doesn't need to be changed to kzalloc.

Please only do kmalloc to k[zc]alloc changes that are really trivial. There is no point in risking inserting new bugs (or performance regressions) for some micro-space-optimization such as this.

--
Paulo Marques - www.grupopie.com

"The face of a child can say it all, especially the
mouth part of the face."
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux