Re: [PATCH] staging iio: Replace kmalloc with local variable

From: Ben Dooks
Date: Tue Jun 07 2011 - 09:41:46 EST


On Tue, Jun 07, 2011 at 02:00:23PM +0100, Jonathan Cameron wrote:
> On 06/07/11 13:39, anish wrote:
> > From: anish kumar <anish198519851985@xxxxxxxxx>
> >
> > replaced kmalloc with local variable as I2C(in this case) doesn't require
> > kmalloc memory it can do with stack memory.
> I've cc'd linux-i2c just to check I'm right about the whole i2c doesn't need
> dma safe buffers bit...

No, it is down to the i2c driver, and from recollection dma from stack is
not recommended, due to things like cache line alignment. Please do not
do this.

> > Signed-off-by: anish kumar <anish198519851985@xxxxxxxxx>
> Acked-by: Jonathan Cameron <jic23@xxxxxxxxx>
> > ---
> > drivers/staging/iio/adc/max1363_core.c | 5 +----
> > 1 files changed, 1 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c
> > index 1037087..9462230 100644
> > --- a/drivers/staging/iio/adc/max1363_core.c
> > +++ b/drivers/staging/iio/adc/max1363_core.c
> > @@ -207,15 +207,12 @@ static int max1363_write_basic_config(struct i2c_client *client,
> > unsigned char d2)
> > {
> > int ret;
> > - u8 *tx_buf = kmalloc(2, GFP_KERNEL);
> > + u8 tx_buf[2];
> >
> > - if (!tx_buf)
> > - return -ENOMEM;
> > tx_buf[0] = d1;
> > tx_buf[1] = d2;
> >
> > ret = i2c_master_send(client, tx_buf, 2);
> > - kfree(tx_buf);
> >
> > return (ret > 0) ? 0 : ret;
> > }
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html

--
Ben Dooks, ben@xxxxxxxxx, http://www.fluff.org/ben/

Large Hadron Colada: A large Pina Colada that makes the universe disappear.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/