From nobody Fri Sep 25 07:56:53 2026 Received: from mail-wr2-f12.google.com (mail-wr2-f12.google.com [74.125.225.76]) (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 5C50F343899 for ; Tue, 15 Sep 2026 08:00:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.225.76 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789459215; cv=none; b=K1MoO6er/pO4iq/Mp/qtR0p04YvM6z7NYBpUsj5Jj0k+ey+VrY1tlzXw9uZWMitSigi6CuHIrsaMNiDrwdYh5WVKPj+ky4yjjWGTASSu8t5o3kzSO3pbICdMNG5IPTvN92XN3TYqAHYpNm9gmsr5IRGsHGMgNIfH/brNyus/Xpg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789459215; c=relaxed/simple; bh=wFxXi8Z9WcIxFPd9fUaEH26jlrgztUaT4NJh8D572Es=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hUQWE9BLO6uf5+sgBM+UzJRYDscVhOpE8NMzJli0l1p5Xlx8SKcwvOyOYDEbpIsLTQ3kMTfZTuOmBjKbDM3iWM7DvAjoHqD9DzmYp0+hyoOfUlkToxvlroOzTwEt5WbprwUNA/TzDsj6fcxkzVXOKjigTvYsuPyHs0sjVswuJuU= 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=KcgwfU90; arc=none smtp.client-ip=74.125.225.76 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="KcgwfU90" Received: by mail-wr2-f12.google.com with SMTP id ffacd0b85a97d-486e1a044c5so6813f8f.3 for ; Tue, 15 Sep 2026 01:00:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789459210; x=1790064010; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=PW1ixTgxWimSTTjdthxgReSlmPLPKmDhq2QrwAvzdaI=; b=KcgwfU90wWAGZpjTUr8z91VWhc2YRUIU65O0O21c3pzfStJ4f8VWFN9soQN0WrJhLd 1nEeyLqBDoznAr9xI/Y0p+bfqGNjrthdpP7kwsX7ZfK6D1dPfqcchJSn72SRFuuys4qY hR2gRKhN/q/y+dB+IHKoqEc+XaMSW6fr5fqUndKSL0PCuTl2ZxZfRdFIE3++xuRgSbTM D/VKzt1i1tn0w7sZ0MPYsUHhQIqAsXs3rltt1cZITwWMB2CCtnyJpuOAK0lzPVah6frf Hn99UHHdTnfCqSkZWaFQOqqO7yd22qFFQOKJIDsjflOVcvBREk1tS0Q7F/vpcL6X1wmW X14g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789459210; x=1790064010; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=PW1ixTgxWimSTTjdthxgReSlmPLPKmDhq2QrwAvzdaI=; b=yKvrQB1OdMYekOTcWCB7F6CWzqwnP+DrgS23suzySAEeUfygyJ8CcBVOXKdCwX4Bwb 4A2Bo4wV1QDHUS9pLDo5hgxxFjuddNGDVO0sSuLRJ3+HvqrTBR5m1SBUg8dbaVH9yPEp Hy01MFuTEbrTgkgJ4nL4gaKfx1I9tRXijrnZpRwabf5mLl6obZHQhl97LKjT9AYOcIOK 8OkoDImKhSf218jlbmNYjuGiIEHWTMJ4gh/lyAzAjM3yPNIhXQInmhpjELi5i+6y9ih1 NNMbh22BUnWAMoB+mwQD8piEaVHmCy6y3b5QtHrF46inqFO5myE8CWQi3dPg9OQshGcw VMQg== X-Forwarded-Encrypted: i=1; AKwUvBxdGZQ942l94mm0Buyk3N9aaKejvGbESi+5Q5NJ9caVIrjlU8UiCOyIb800COhcFNIm9yNFprWCtEZD2Lg=@vger.kernel.org X-Gm-Message-State: AFuF++mQIhiDZYt0175TCYvtir62EUIxKcGYBcoE33/lnQjBTKkGr/lb Hb/umL9oeY1QBzYFgGdw0Y2cFfMKyxRLLLMTZZPSWvB6jxfvOzTtZr9d X-Gm-Gg: AYBFou38FlJzWDff0N1s5UV/HFd/aXPYoCqMxGLTm7DseuIZvKgYs0WYwc+uvYLwgNx brithNhHeynT79VkzIebQmMdBssUakLmK0Tp7YP7sFw+RcjJL2f/9phajqfZOJlUgSvkSDkOF7P GP/DMRPcE2SdwmRyQnim0p5YXv7l/nJUoBQlPdWCcm5foHJWL6xgMGcX40yXo4Fa6tRoUvKC07Q w5QPie/Q5HeiU2u4PgqjtNrYxe69LYt7sKB50Ud/U6+i8aZ97wZuLymXvbGGCfkPZuCaMLx2J1/ VvY8x+jAnwj0Xj8+BJgFI9HWuUwqxvV+yk4ImLiarh7/p+yXI1xQ9IIuknVm0I+E2zDo6FipPBw k9QY2Fjf9MW+Yp1o87dHSYX3+ZTp+vr2b7r+MRJ2DSFHuyT+a5mT0vzo7hKKjZMxYWTIvgMpsgJ sOdsMLaSY5Odotqtyc8o0zyxwvaK5Vh1yGxAeD0NVS16eo3avIoYlLZdsuMef+ux0xHmWfnPo/+ /OfeuCjz0aIuk+ov0A= X-Received: by 2002:a05:600c:3548:b0:49e:6ac4:b76e with SMTP id 5b1f17b1804b1-49e822a6d43mr585075e9.30.1789459210180; Tue, 15 Sep 2026 01:00:10 -0700 (PDT) Received: from fedora ([154.182.99.41]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49e7d6bf4desm64112155e9.15.2026.09.15.01.00.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 01:00:09 -0700 (PDT) From: Abdelnasser Hussein To: jic23@kernel.org, gregkh@linuxfoundation.org, nuno.sa@analog.com, Michael.Hennerich@analog.com Cc: dlechner@baylibre.com, andy@kernel.org, linux@analog.com, linux-iio@vger.kernel.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, joshua.crofts1@gmail.com, Abdelnasser Hussein Subject: [PATCH v7 1/3] staging: iio: adc: ad7816: Sort headers alphabetically Date: Tue, 15 Sep 2026 10:59:37 +0300 Message-ID: <20260915075939.18180-2-abdelnasserhussein11@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260915075939.18180-1-abdelnasserhussein11@gmail.com> References: <20260915075939.18180-1-abdelnasserhussein11@gmail.com> 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" Sort the include directives alphabetically to improve readability and maintainability. This is a precursor cleanup patch to prepare for the addition of new headers in subsequent changes. Signed-off-by: Abdelnasser Hussein Reviewed-by: Joshua Crofts --- drivers/staging/iio/adc/ad7816.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7= 816.c index 30644d2d7c54..9e43ce83e071 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -5,19 +5,19 @@ * Copyright 2010 Analog Devices Inc. */ =20 -#include -#include #include +#include +#include #include -#include -#include #include -#include #include +#include +#include +#include =20 +#include #include #include -#include =20 /* * AD7816 config masks --=20 2.54.0 From nobody Fri Sep 25 07:56:53 2026 Received: from mail-wm2-f12.google.com (mail-wm2-f12.google.com [74.125.225.140]) (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 6668B36B915 for ; Tue, 15 Sep 2026 08:00:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.225.140 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789459225; cv=none; b=dxdYIHWZVCsk+AnG4DUi1XPtyFGqunyHmLyjrWd2xi3rtQL5/66bzruGLOJs+lXZVBJX9C9YcZNDOfy1h4xl2lr3iNEIfdstuAg3lF4nkMXUQRB2i/q5q2KQFzzNLb5Yfnfy5IM22NqJvnK3gVDYJyMX6syu5MunT7LbQ4zbpJg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789459225; c=relaxed/simple; bh=WWVcE57q2ujxsqolRC6ZoeQXUL6FEoBX5JlOVLcjvtU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=O95bfw0eSuR9alMG+UwF48GpygzvNFq4ZizA/QHWziog7sHdZ0T1CElWl/8eDLnggJuod7nrQppD48kNFkpY+E/1Aaqec9n3XQjvLo/crJUL5dhk0cQA/gMokV3VRrgFBgQNbGisM0IwAuNAMc0G23bo35WGnp3zu+uFC+zQRh8= 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=ghgrjG3/; arc=none smtp.client-ip=74.125.225.140 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="ghgrjG3/" Received: by mail-wm2-f12.google.com with SMTP id 5b1f17b1804b1-49b912d37b6so12993175e9.0 for ; Tue, 15 Sep 2026 01:00:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789459223; x=1790064023; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=tXRYdo/Nw5o2tKXlPYpP0Bk1aAxSCNWraHSi1/LMRzI=; b=ghgrjG3/X8l3jAzPHgjzgmBRqX5ncys7KkiOE2SSUOYPhvCe5DO4789TfLpV7QBQ6F XrnZ8/SHcQ2uU3gLifv5NM8sh+Nh6m37QJRRZfym6nsYnD/9n/XW7kVnj078PpzqbA6Y C2h2uVfDTvKnHPt6qIZ5469adt79ICsW8pU1EpWjv9470m5M7L9SL0Oxb3dypBZurg56 /T7uDzplMggyJF8zOCaRxNNRVH7pxm5aCtnOKgsxjioCea3H1cDYQgKGNE7RSCbnkh1Y X6jPSEzpYNMq7OOBG+JwF9UfVznw0J6MiHk3tz0aP9O47KA/5KgNmXCWNReKlRfQ41nm z7Kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789459223; x=1790064023; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=tXRYdo/Nw5o2tKXlPYpP0Bk1aAxSCNWraHSi1/LMRzI=; b=2I9FQE2p0DwdjM/3mq2j5budUtZLIzRFstPwmQnErt3iChmLoH5CEPP4jNm627X59l vXsQ8sMuD9aOtBsHrar928dR9Nme1b2qfXlXXZv1wKFV3sDhhJ/EglpxTJtyM5Brykzh QJ4sOP2jAAw8ZIgsnwtX6xjsMoE9Pl1w2NtSmL1rI3M0hG5ng9eKqqd3k3leMO5wYcbf XdH6a7sQ/5d5FdEFxBdflHr1Gru6BG4atwygdEkH9TRhuxu3CV0Nxcq5f9vh2WIjJCgk VA9C3UVYv3B0ul7tMKl8rxbk3lGl02N5q0jJAsODVLtv2Jw3aZe6HHv7bYrYc4TiaLuE AhYw== X-Forwarded-Encrypted: i=1; AKwUvBw14oDb+sqwI1/xuGKp4Nx6sh2QwPI2uszLzCEIGcbevl6F4IpFmzR3w101qXuIjuIekT0UCrhqlx2mcH0=@vger.kernel.org X-Gm-Message-State: AFuF++nDEArxBHVOJFfQukO1Xco01S9riFyIuEI6g7C2P7KRjVYMsdyT QzxyH4qXnVvmMUVROt4a+9scBPr88uequMf1SlQLVSPVHT9vRDeyBHWa X-Gm-Gg: AYBFou3bxDm+f4/wbEaQ6aUEec/Z6R6vI9oNSwfrWxpslgIX//jOkaWBq0DumHXiFJA dUt5NnewsAWZcLFnurDz4GdaJlQE5HUO+RA4E5UmJrlEdSJFnfZp9cy/yIpYxyYOCsn74ABgS5r FDxqywYC8Y/7UJNX5Pn2QGmcSuAVXknJ2gQlJ57xgn0KMCmeHR8eHO6mVYOer4vclZc5uNAuRvk oo60Bd6EixUHAZJygCyom5suTVcpfzveun9EUzqW6sOM59OGjRnkZQ30ogJqCkGdnFZxe0qx6VN vH7R17qK+RAyhGEzFExyrO8Qql1gLdKWsGjnPHSW+wSWF1crxXXGyGSmoC65PSnklhLb6CFxK04 gXCNCGPqiV2dIbTDuLA8/hIHfo21ThHQDE3d4LY4yj8cu3dt0U/4+vowwSQOe1I57S6q5/AekXS E0Jk4VjEYb47Gh23WlhevmyWpnaCivn4U7zEHq1Me3ssoA1pz4bsofU2knP/KF2O8EV8Y+uZ0W/ gAMV0/M8PpYgtyeH/ARlw8Bm+9ZaA== X-Received: by 2002:a05:600c:8716:b0:49e:6692:27fd with SMTP id 5b1f17b1804b1-49e7a657f9dmr165235115e9.2.1789459221055; Tue, 15 Sep 2026 01:00:21 -0700 (PDT) Received: from fedora ([154.182.99.41]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49e7d6bf4desm64112155e9.15.2026.09.15.01.00.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 01:00:20 -0700 (PDT) From: Abdelnasser Hussein To: jic23@kernel.org, gregkh@linuxfoundation.org, nuno.sa@analog.com, Michael.Hennerich@analog.com Cc: dlechner@baylibre.com, andy@kernel.org, linux@analog.com, linux-iio@vger.kernel.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, joshua.crofts1@gmail.com, Abdelnasser Hussein Subject: [PATCH v7 2/3] staging: iio: adc: ad7816: Serialize SPI operations Date: Tue, 15 Sep 2026 10:59:38 +0300 Message-ID: <20260915075939.18180-3-abdelnasserhussein11@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260915075939.18180-1-abdelnasserhussein11@gmail.com> References: <20260915075939.18180-1-abdelnasserhussein11@gmail.com> 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" The ad7816_spi_read() and ad7816_spi_write() functions perform a sequence of GPIO state changes followed by an SPI transfer. If multiple operations occur simultaneously, the GPIO state could be changed by one thread while another is in the middle of a transfer, leading to a race condition. Introduce a mutex to serialize the operations, ensuring that the GPIO toggling and the SPI transfer are treated as a single atomic operation. The mutex is placed right after the pointers in the device state structure to avoid padding holes. Signed-off-by: Abdelnasser Hussein Reviewed-by: Joshua Crofts Reviewed-by: Maxwell Doose --- drivers/staging/iio/adc/ad7816.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7= 816.c index 9e43ce83e071..c18093ca8a82 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -5,12 +5,14 @@ * Copyright 2010 Analog Devices Inc. */ =20 +#include #include #include #include #include #include #include +#include #include #include #include @@ -47,6 +49,7 @@ struct ad7816_chip_info { struct gpio_desc *rdwr_pin; struct gpio_desc *convert_pin; struct gpio_desc *busy_pin; + struct mutex lock; /* protect device state during SPI transfers */ u8 oti_data[AD7816_CS_MAX + 1]; u8 channel_id; /* 0 always be temperature */ u8 mode; @@ -67,6 +70,8 @@ static int ad7816_spi_read(struct ad7816_chip_info *chip,= u16 *data) int ret; __be16 buf; =20 + guard(mutex)(&chip->lock); + gpiod_set_value(chip->rdwr_pin, 1); gpiod_set_value(chip->rdwr_pin, 0); ret =3D spi_write(spi_dev, &chip->channel_id, sizeof(chip->channel_id)); @@ -107,6 +112,8 @@ static int ad7816_spi_write(struct ad7816_chip_info *ch= ip, u8 data) struct spi_device *spi_dev =3D chip->spi_dev; int ret; =20 + guard(mutex)(&chip->lock); + gpiod_set_value(chip->rdwr_pin, 1); gpiod_set_value(chip->rdwr_pin, 0); ret =3D spi_write(spi_dev, &data, sizeof(data)); @@ -360,6 +367,10 @@ static int ad7816_probe(struct spi_device *spi_dev) return -ENOMEM; chip =3D iio_priv(indio_dev); =20 + ret =3D devm_mutex_init(&spi_dev->dev, &chip->lock); + if (ret) + return ret; + chip->spi_dev =3D spi_dev; for (i =3D 0; i <=3D AD7816_CS_MAX; i++) chip->oti_data[i] =3D 203; --=20 2.54.0 From nobody Fri Sep 25 07:56:53 2026 Received: from mail-wm2-f13.google.com (mail-wm2-f13.google.com [74.125.225.141]) (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 551F73515F1 for ; Tue, 15 Sep 2026 08:00:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.225.141 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789459234; cv=none; b=UEKN1DlcCIvILsHezo+/Eg/IJd62ahVlxiwRuuCnQL3F1vOkp+S1Xp6YiLX6K014rDByleY2JplMcy6KlCC26KnA03xsWd8nu+Vq/IxZUOy15tNu1IZSg6jbQWOuqqHUVJcObzLnqHp8aPseHSGwE603S9O5O3tHh+DY3PL++G4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789459234; c=relaxed/simple; bh=KTgZMvg4dulJZHvYNEIoy011mnzTSGSayGEdve6hAJE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rg//UDHvoKa0ojAszu0rwGaJukgCzNLGWXvRGSRVV8zqJJqgdzSdzNiDTCaf95pWGcNVle+TU6hfLntjPrEBlV/WA9peRj8rpWq0s5L+pMuj4ZbZE5o/uWLJufG2HsPwZzbkpd1iB+mKWCP+aLnbRLVNBVRDH3ELMoU2Yhvq0Fc= 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=VWdXzhkH; arc=none smtp.client-ip=74.125.225.141 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="VWdXzhkH" Received: by mail-wm2-f13.google.com with SMTP id 5b1f17b1804b1-49e71cdb22bso18183425e9.2 for ; Tue, 15 Sep 2026 01:00:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789459230; x=1790064030; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=xfw0WXqsQI2eC5dBxcA9xLNGEmKqYt2MXCmmX8Bocyo=; b=VWdXzhkHVit+KwBomAQib3RZmw09rFkgPTMN8czAJDxWWGYTmkFxA+Zv6Y24jTlunr o8SDDlOOa1Nw4yh8h+HyCZTQgYSPcxhv+P+oe5B8UL/BKHhDwRlugCXGrMC3Hs6mrGQG hviYZW10GMGT/mM72t/D94MRP2+ZQv7Xq0Ea55C+frqsVTLHCeMJsCyp3x5+XkIenZT3 Wfz6CQ4TpV1uakvwTXBhn5AG4D2uafPNrEfMJRZIqXTLDb8bOiTKzXDkpbvViN49hY9F pfFS4IgcPhlA1t+mwryrnXcFERjngSoAZe5QzPTH89GqqqiFxzH4Ed6WNiG6+Sn5OeTc xNoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789459230; x=1790064030; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=xfw0WXqsQI2eC5dBxcA9xLNGEmKqYt2MXCmmX8Bocyo=; b=P4+uPCe7GzlYmNkqe/5vhS/zD9wuGelLk+EvwX3t0ODSPhjNRG+DBr14GVOznNyTt3 L4Zh4gM1QJwHLxsbaymtvd858s/6rcXWHGLiabXoGRHPPMSd+hOcwjamtRS+76gslvMd Kl7vJVc8gW063WVL3fNHu4cS4z3fo5mr7S5oVdniWtgLmmDNwtVYYmgvWe6r655sy3Po cydr9jbcTtMDqE6d+19NwhE5xv1FheirDPguJfVFYiAPYa/kZzYnJxR2m93tUZOv1nPI D8qeh9R2pDH6kwcy/Us9q/4ngYmW59jLnx5xmuXsY8EINeOlsDdz27IxRFfIwqWzrRre a6wA== X-Forwarded-Encrypted: i=1; AKwUvByujDyl47dPG2/aqAC5ByuSth6Ofbegn7z7T4s2IwRJTv67KKtl7ZWOV6B85bR6Mu2m28LpFpIMruRh9uw=@vger.kernel.org X-Gm-Message-State: AFuF++k7oI0VEi5/8mme8yK8zFLqbP2HhlplSqbyFfPNKVg0Yqu60x8S KvddXghV1ikfCT/mJAxuWRRheAChOknVVHz7tNujACIxqLZDTi+wzvhH X-Gm-Gg: AYBFou2EOLvFoYxyfkCwtctHEOok7jIg/fISWJeidaAxym88oDsiUG1+SS2PO5v7WHn XsT3aWwA6JWA8O5QIw+pZnB7RFqJQSfidpuuqML/UROVcav8j4DR4rfy5JwsJwIw7ZXcCDe6VMa bzXM6LRvpYVesTbmgPSox5MtjVvFpza1/xooeFZX8xiMB1aU6AjESBG8u58qaIKo8YQIcnrgtdv aAwXEHryDQDnRsQqqpJm+c2nFVnXDdCJS5vyXyHA5wEv/i3SPAaSf0wlTF1usTNuBTYP0H0Hdcy ffXiwlpeCf/9e1bnjLYiBRmGAgtJbVUCTsGU1LpPkJCcj4YPJVmZtUVeqVB5CeHYG7o3snH8pJN Nn80gxaGLE+52K7W4r3TkH7Z1902G6RKICU1i8G2ofRtu93e9EeomUsGloevD1mDwwqCemvS5to 2C28tyUGQa+UMilVMTmV+gIdTEzsIlhtOovLihxY5KFh/8mEd7x1qip+b3EUvKmf7ZbUCI85zFr FL2YqOq29G5Cz6GhFI= X-Received: by 2002:a05:600c:c8a:b0:493:aa0a:45ad with SMTP id 5b1f17b1804b1-49e7a6386d4mr71308795e9.2.1789459230005; Tue, 15 Sep 2026 01:00:30 -0700 (PDT) Received: from fedora ([154.182.99.41]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49e7d6bf4desm64112155e9.15.2026.09.15.01.00.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 01:00:29 -0700 (PDT) From: Abdelnasser Hussein To: jic23@kernel.org, gregkh@linuxfoundation.org, nuno.sa@analog.com, Michael.Hennerich@analog.com Cc: dlechner@baylibre.com, andy@kernel.org, linux@analog.com, linux-iio@vger.kernel.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, joshua.crofts1@gmail.com, Abdelnasser Hussein Subject: [PATCH v7 3/3] staging: iio: adc: ad7816: Fix DMA safety issues in SPI transfers Date: Tue, 15 Sep 2026 10:59:39 +0300 Message-ID: <20260915075939.18180-4-abdelnasserhussein11@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260915075939.18180-1-abdelnasserhussein11@gmail.com> References: <20260915075939.18180-1-abdelnasserhussein11@gmail.com> 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" The SPI operations in this driver are not DMA safe: 1. spi_read() uses a stack-allocated buffer. 2. spi_write() in ad7816_spi_read() uses a struct member that shares a cacheline with other variables. 3. spi_write() in ad7816_spi_write() passes a stack parameter by reference. Fix these violations by replacing all spi_read() and spi_write() calls with spi_write_then_read(). This safely handles DMA by internally allocating a bounce buffer for the transfers, avoiding cacheline sharing issues without needing dedicated aligned buffers. This implicitly corrects the size argument in read to sizeof(buf). Fixes: 7024425db64a ("staging: iio: adc: new driver for AD7816 devices") Signed-off-by: Abdelnasser Hussein Reviewed-by: Joshua Crofts --- drivers/staging/iio/adc/ad7816.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7= 816.c index c18093ca8a82..f76f0215119a 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -74,7 +74,7 @@ static int ad7816_spi_read(struct ad7816_chip_info *chip,= u16 *data) =20 gpiod_set_value(chip->rdwr_pin, 1); gpiod_set_value(chip->rdwr_pin, 0); - ret =3D spi_write(spi_dev, &chip->channel_id, sizeof(chip->channel_id)); + ret =3D spi_write_then_read(spi_dev, &chip->channel_id, sizeof(chip->chan= nel_id), NULL, 0); if (ret < 0) { dev_err(&spi_dev->dev, "SPI channel setting error\n"); return ret; @@ -96,7 +96,7 @@ static int ad7816_spi_read(struct ad7816_chip_info *chip,= u16 *data) =20 gpiod_set_value(chip->rdwr_pin, 0); gpiod_set_value(chip->rdwr_pin, 1); - ret =3D spi_read(spi_dev, &buf, sizeof(*data)); + ret =3D spi_write_then_read(spi_dev, NULL, 0, &buf, sizeof(buf)); if (ret < 0) { dev_err(&spi_dev->dev, "SPI data read error\n"); return ret; @@ -116,7 +116,7 @@ static int ad7816_spi_write(struct ad7816_chip_info *ch= ip, u8 data) =20 gpiod_set_value(chip->rdwr_pin, 1); gpiod_set_value(chip->rdwr_pin, 0); - ret =3D spi_write(spi_dev, &data, sizeof(data)); + ret =3D spi_write_then_read(spi_dev, &data, sizeof(data), NULL, 0); if (ret < 0) dev_err(&spi_dev->dev, "SPI oti data write error\n"); =20 --=20 2.54.0