Re: [PATCH v2] iio: adc: ti-ads7138: replace kmalloc() with stack allocation in i2c_write_block

From: David Lechner

Date: Mon Apr 27 2026 - 11:33:38 EST


On 4/27/26 8:31 AM, David Laight wrote:
> On Mon, 27 Apr 2026 15:27:07 +0400
> Giorgi Tchankvetadze <giorgitchankvetadze1997@xxxxxxxxx> wrote:
>
>> The ads7138_i2c_write_block() function currently utilizes kmalloc()
>> to allocate a buffer for I2C transfers. However, the length
>> parameter passed to this function is strictly 2 bytes across all
>> driver invocations, making the total payload buffer size exactly 4 bytes.
>> Invoking the heap allocator for a 4-byte buffer introduces
>> unnecessary SLUB overhead.
>
> Have you confirmed that the buffer is never used for DMA?
>
> Provided the lock that blocks concurrent access from two threads
> is actually outside this code, a buffer for short transfers could
> be allocated within 'struct i2c_client'.
>
> David
>
Giorgi,

This is why it is important to include a changelog and a link to the
previous discussion [1] in the cover letter or after --- in a single patch
when you submit a new revision. I think that would have answered David's
question.

[1]: https://lore.kernel.org/linux-iio/20260424081809.61841-2-giorgitchankvetadze1997@xxxxxxxxx/