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

From: Jonathan Cameron
Date: Tue Jun 07 2011 - 09:46:13 EST


On 06/07/11 14:41, Ben Dooks wrote:
> 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.
Then lets drop this. Sorry Anish, seems I led you down the garden path.
I'll check all my i2c drivers don't 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
>

--
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/