u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] spi: exynos: Remove extra term from test
@ 2025-09-01 15:13 Andrew Goodbody
  2025-09-03 10:33 ` Minkyu Kang
  0 siblings, 1 reply; 2+ messages in thread
From: Andrew Goodbody @ 2025-09-01 15:13 UTC (permalink / raw)
  To: Jagan Teki, Tom Rini; +Cc: u-boot, Andrew Goodbody

In spi_rx_tx there comes a test for execution of a code block that
allows execution if rxp is not NULL or stopping is true. However all the
code in this block relies on rxp being valid so allowing entry just if
stopping is true does not make sense. So remove this from the test
expression leaving just a NULL check for rxp.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
---
Changes in v2:
- Remove the stopping variable which is now not useful
- Link to v1: https://lore.kernel.org/r/20250812-exynos_spi-v1-1-bd0813ff6593@linaro.org
---
 drivers/spi/exynos_spi.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/spi/exynos_spi.c b/drivers/spi/exynos_spi.c
index 1b9bf004b7c..7f2965f8321 100644
--- a/drivers/spi/exynos_spi.c
+++ b/drivers/spi/exynos_spi.c
@@ -105,14 +105,10 @@ static int spi_rx_tx(struct exynos_spi_priv *priv, int todo,
 	uint out_bytes, in_bytes;
 	int toread;
 	unsigned start = get_timer(0);
-	int stopping;
 	int step;
 
 	out_bytes = in_bytes = todo;
 
-	stopping = priv->skip_preamble && (flags & SPI_XFER_END) &&
-					!(priv->mode & SPI_SLAVE);
-
 	/*
 	 * Try to transfer words if we can. This helps read performance at
 	 * SPI clock speeds above about 20MHz.
@@ -161,12 +157,10 @@ static int spi_rx_tx(struct exynos_spi_priv *priv, int todo,
 			while (rx_lvl >= step) {
 				temp = readl(&regs->rx_data);
 				if (priv->skip_preamble) {
-					if (temp == SPI_PREAMBLE_END_BYTE) {
+					if (temp == SPI_PREAMBLE_END_BYTE)
 						priv->skip_preamble = 0;
-						stopping = 0;
-					}
 				} else {
-					if (rxp || stopping) {
+					if (rxp) {
 						if (step == 4)
 							*(uint32_t *)rxp = temp;
 						else

---
base-commit: 7807ed921314cd7af83fd88162d0b8c6fb20a9ca
change-id: 20250812-exynos_spi-8172ecb31a83

Best regards,
-- 
Andrew Goodbody <andrew.goodbody@linaro.org>


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] spi: exynos: Remove extra term from test
  2025-09-01 15:13 [PATCH v2] spi: exynos: Remove extra term from test Andrew Goodbody
@ 2025-09-03 10:33 ` Minkyu Kang
  0 siblings, 0 replies; 2+ messages in thread
From: Minkyu Kang @ 2025-09-03 10:33 UTC (permalink / raw)
  To: Andrew Goodbody; +Cc: Jagan Teki, Tom Rini, u-boot

Hi

2025년 9월 2일 (화) 00:23, Andrew Goodbody <andrew.goodbody@linaro.org>님이 작성:

> In spi_rx_tx there comes a test for execution of a code block that
> allows execution if rxp is not NULL or stopping is true. However all the
> code in this block relies on rxp being valid so allowing entry just if
> stopping is true does not make sense. So remove this from the test
> expression leaving just a NULL check for rxp.
>
> This issue was found by Smatch.
>
> Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
> ---
> Changes in v2:
> - Remove the stopping variable which is now not useful
> - Link to v1:
> https://lore.kernel.org/r/20250812-exynos_spi-v1-1-bd0813ff6593@linaro.org
> ---
>  drivers/spi/exynos_spi.c | 10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/spi/exynos_spi.c b/drivers/spi/exynos_spi.c
> index 1b9bf004b7c..7f2965f8321 100644
> --- a/drivers/spi/exynos_spi.c
> +++ b/drivers/spi/exynos_spi.c
> @@ -105,14 +105,10 @@ static int spi_rx_tx(struct exynos_spi_priv *priv,
> int todo,
>         uint out_bytes, in_bytes;
>         int toread;
>         unsigned start = get_timer(0);
> -       int stopping;
>         int step;
>
>         out_bytes = in_bytes = todo;
>
> -       stopping = priv->skip_preamble && (flags & SPI_XFER_END) &&
> -                                       !(priv->mode & SPI_SLAVE);
> -
>         /*
>          * Try to transfer words if we can. This helps read performance at
>          * SPI clock speeds above about 20MHz.
> @@ -161,12 +157,10 @@ static int spi_rx_tx(struct exynos_spi_priv *priv,
> int todo,
>                         while (rx_lvl >= step) {
>                                 temp = readl(&regs->rx_data);
>                                 if (priv->skip_preamble) {
> -                                       if (temp == SPI_PREAMBLE_END_BYTE)
> {
> +                                       if (temp == SPI_PREAMBLE_END_BYTE)
>                                                 priv->skip_preamble = 0;
> -                                               stopping = 0;
> -                                       }
>                                 } else {
> -                                       if (rxp || stopping) {
> +                                       if (rxp) {
>                                                 if (step == 4)
>                                                         *(uint32_t *)rxp =
> temp;
>                                                 else
>
> ---
> base-commit: 7807ed921314cd7af83fd88162d0b8c6fb20a9ca
> change-id: 20250812-exynos_spi-8172ecb31a83
>
> Best regards,
> --
> Andrew Goodbody <andrew.goodbody@linaro.org>
>

applied to u-boot-samsung.

Thanks.
Minkyu Kang.


>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-09-03 10:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-01 15:13 [PATCH v2] spi: exynos: Remove extra term from test Andrew Goodbody
2025-09-03 10:33 ` Minkyu Kang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).