[PATCH 1/2] staging: iio replaced kmalloc with local variables.

Joe Perches joe at perches.com
Mon Jun 6 22:49:17 UTC 2011


On Mon, 2011-06-06 at 15:41 -0700, Greg KH wrote:
> On Mon, Jun 06, 2011 at 03:28:29PM -0700, Joe Perches wrote:
> > On Mon, 2011-06-06 at 15:21 -0700, Greg KH wrote:
> > > On Mon, Jun 06, 2011 at 03:10:57PM -0700, Joe Perches wrote:
> > > > On Mon, 2011-06-06 at 14:55 -0700, Greg KH wrote:
> > > > > On Tue, Jun 07, 2011 at 12:37:37AM +0530, anish wrote:
> > > > > > From: anish kumar <anish198519851985 at gmail.com>
> > > > > > Replace kmalloc with local variables as it was un-necessary and
> > > > > > also removed the redudant code after this change.
> > > > > SPI data, like USB data, has to come from kmalloced data, not from the
> > > > > stack, or bad things can, and will, happen.
> > > > Perhaps just add a comment like:
> > > > +       u8 *tx = kmalloc(2, GFP_KERNEL);	/* can't be on stack */
> > > You really want to do to that for _EVERY_ SPI and USB driver?  I don't
> > > think so.
> > Nope, only the ones that look especially odd because 
> > 	kmalloc(sizeof(struct foo), ...)
> > or
> > 	kmalloc(sizeof("type), ...)
> > is not used.
> > It might be better to just declare a 2 byte struct.
> No, this is a very common thing for all USB and SPI drivers.  It's so
> obvious that once I saw the Subject: line, I knew this patch was going
> to be wrong.

As did I.
I seek to find a way to avoid seeing them in the future too.

> This is something that the USB and SPI developers know all about, it's
> the way things work, and this driver works, so why are people trying to
> "clean" it up in ways that will break it, or cause extra work with
> structures where they are not needed at all?
> odd.

Because people perform pattern recognition as a means to avoid
the work required for complete understanding.

Comments akin to the one in drivers/usb/serial/io_ti.c:

	lsr = kmalloc(1, GFP_KERNEL);	/* Sigh, that's right, just one byte,
					   as not all platforms can do DMA
					   from stack */

help people avoid applying patterns to inappropriate uses.





More information about the devel mailing list