From nobody Tue Apr 7 19:54:47 2026 Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 167D33E6DE6 for ; Wed, 11 Mar 2026 18:20:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773253259; cv=none; b=qRxaq3/FbVb9xv1OLLKSTYEiIYaO1Blg7F8EnG+4GGwxea9ONh+zgdx/NJgGCH4fji+4neFu+c5UTwTUhbddi9OsGonHiAAXqtCbafiW4Ljecw0vDUuXg/UBsH25jJa8CvQuNl/qtnYG9ppSirS75HjVw5PZlptYn67vBt3DbGk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773253259; c=relaxed/simple; bh=W6OfwF31b2rGABO9tefiuanXN8lH7OHc0f1rsfmMDmI=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=Doh8y50RK2R2HKlditDfz3K+wSt/7eGwyGcN3Nl38GZ1OgoiWyhHsOawPJeSexajJxixIWwP99j+rLIIl2nGRW8U6DLNiEHlsTv0qKODx50awS7FAKlSc8H3KE0cB4a0XcNc8ZviXksYyR0t9/FkgW0NYzrXtapHUxUN0XFnkH4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ATIijjNz; arc=none smtp.client-ip=209.85.210.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ATIijjNz" Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-82989744ee0so188326b3a.2 for ; Wed, 11 Mar 2026 11:20:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773253257; x=1773858057; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=HlO23dYidqdEnQaBsJPTg7NR83Kx3suHG/BV76mrsTw=; b=ATIijjNz5x0H0jdI7P/U8Vz9egoU5NrKJT3HhNEoYWSwTk7il+1+WP8l93vTGIgl++ w/PSBtdjoeSi1c0cB5lF4CykQzcrf7zk/Q9wCrqp5Cc+/Sva7wzNDwoltiUwQGLG1P4X QmCghoRqe4L+0jhhvmxavuSkubLH2SifllEXL9dCDB9RnZ8HGtK84aY+LxPSWSB8UgGC Q1j4aJM+1w0ZYgpXV61IddTR2Ruc3r3wojo5oGuKSU/OeT8I+XigcYFuFE+BeyVfud8n G8N2+gJBAtZ+pZlEsmbEYv3S9fwpdk/mEeE9LrO0XAJc/Ao3o5qwKUSfYKL9vJGItTT6 TbLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773253257; x=1773858057; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=HlO23dYidqdEnQaBsJPTg7NR83Kx3suHG/BV76mrsTw=; b=u15pEXx7JVxd6aY9yjn6qRWyhucVSln9E6tX3qp8DErXLekf5G2MsW6/scp9uPIThk LXOqOYUjW9oA6o6S7O777uDirSz4cWUjP565dfGuXeKOUaxf/1Lf3kVNcrySVlLjdV4C 5k7GVti8X5sDdLLQEgyQSzM7hFuwtdGD+jEqkeqoEEfkG8EW7X/0rUra82YxxgcCquTY Si+w3VVRAD6jv2TtIExyaRyBeDnztocWdxCqY1bXAgBeAVybtrUdIsHmAfilpviP4uP/ NTDDp/bOkFCXfN7VVnSQoKl7COv+6n+QN/JtzWqsgUUi5ZvXb4zfhv0y0YOwvuj8B+Jo F23g== X-Forwarded-Encrypted: i=1; AJvYcCVBXth5y8SQ1/d182nivlRUD///v9ADdkVCyjhRFUhDxTLOBHhvD3NA385FPYuShmZYs6bL5SbDTP8hZ9s=@vger.kernel.org X-Gm-Message-State: AOJu0YzJXYHKPGhgV303yrx5U4sCzMsbtqMAwkWT2bp047x+4eWIoLyF Ak8g+tnO3Y9WuuyfHW7WazI3I5es5MFcL4+oj8ZBFvIp1F0XaJxRQ764 X-Gm-Gg: ATEYQzwXqchR+vJ3gIAMcRTy+uTiRqgXwX3jky5LkQednfHnC+OgShewmSQWblQ1RXD TQzNW2zjOamOQzGLsYhbe3jndOsP4mJmymlmBYQtzbJsqV7OqqvUDkVqi2mhDWGNcDU++4v8Ypy BIAvQSF8ySAa1wqzQBGmHpRA+0HZkr1IBoSTulGqEHmGhaCU62K0d1mPS5RCayQYqNvinKgiGjL SPPIRH4sdElEidiDilybrSpQt2qEyGy5SsY3E/HuCzKa/nLJSV5/o6Fy6FKYrDwM7uO+NEBRA7z CYw+Ixa7PqCdZ34xSPMWn7VZYJUH0oUygQQIo0JJAJS19K51FGFJ3AQzbuVSezfm1bkRxWm0yxI AvgsvSP5bxRwH75mZzIecZiKwYCBHbOwskxbyM+XTC3wU7Mr05UymLHoNwBGz00CaeFmE4aq1Zo DzCR3aPou1unIxUgyKM713ENeyhJRwLcNahaO+zrcWrah+jppW X-Received: by 2002:a05:6a00:3e19:b0:829:837b:9068 with SMTP id d2e1a72fcca58-829f6ee46a0mr3360613b3a.29.1773253257328; Wed, 11 Mar 2026 11:20:57 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82a072414f8sm348210b3a.4.2026.03.11.11.20.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 11:20:55 -0700 (PDT) From: Sanjay Chitroda X-Google-Original-From: Sanjay Chitroda To: jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org Cc: kees@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, sanjayembeddedse@gmail.com Subject: [PATCH v2] iio: st_sensors: drop temporary kmalloc buffer and reuse buffer_data Date: Wed, 11 Mar 2026 23:50:50 +0530 Message-Id: <20260311182050.3467471-1-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sanjay Chitroda Replace the per-call kmalloc() scratch buffer with the statically allocated buffer_data[] field present in struct st_sensor_data. The existing buffer is DMA-aligned and sufficiently sized for all channel widths, so using it avoids unnecessary dynamic memory allocation on each read. This simplifies the code, removes redundent code and allocation. No functional change intended. Signed-off-by: Sanjay Chitroda --- Changes in v2: - split series to individual patch - address review comment from David Lechner and reuse exising buffer instea= d of allocation - Link to v1 https://lore.kernel.org/all/20260310200513.2162018-4-sanjayemb= edded@gmail.com/ --- drivers/iio/common/st_sensors/st_sensors_core.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/drivers/iio/common/st_sensors/st_sensors_core.c b/drivers/iio/= common/st_sensors/st_sensors_core.c index dac593be5695..488e2bf6d117 100644 --- a/drivers/iio/common/st_sensors/st_sensors_core.c +++ b/drivers/iio/common/st_sensors/st_sensors_core.c @@ -495,20 +495,17 @@ static int st_sensors_read_axis_data(struct iio_dev *= indio_dev, struct iio_chan_spec const *ch, int *data) { int err; - u8 *outdata; struct st_sensor_data *sdata =3D iio_priv(indio_dev); unsigned int byte_for_channel; =20 byte_for_channel =3D DIV_ROUND_UP(ch->scan_type.realbits + ch->scan_type.shift, 8); - outdata =3D kmalloc(byte_for_channel, GFP_DMA | GFP_KERNEL); - if (!outdata) - return -ENOMEM; + u8 *outdata =3D (u8 *)sdata->buffer_data; =20 err =3D regmap_bulk_read(sdata->regmap, ch->address, outdata, byte_for_channel); if (err < 0) - goto st_sensors_free_memory; + return err; =20 if (byte_for_channel =3D=3D 1) *data =3D (s8)*outdata; @@ -517,10 +514,7 @@ static int st_sensors_read_axis_data(struct iio_dev *i= ndio_dev, else if (byte_for_channel =3D=3D 3) *data =3D (s32)sign_extend32(get_unaligned_le24(outdata), 23); =20 -st_sensors_free_memory: - kfree(outdata); - - return err; + return 0; } =20 int st_sensors_read_info_raw(struct iio_dev *indio_dev, --=20 2.34.1