diff options
author | Olof Johansson <olof@lixom.net> | 2018-11-16 19:55:04 -0800 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2018-11-27 14:07:08 +0000 |
commit | 1d2319efb6a970d5f5740a60828244e6c309df2b (patch) | |
tree | ea1960e2103d9caa7279917c627b4b10cf6123ea /drivers/spi/spi-npcm-pspi.c | |
parent | a1880d38674b1b7e120a231151298b2eb530b645 (diff) | |
download | lwn-1d2319efb6a970d5f5740a60828244e6c309df2b.tar.gz lwn-1d2319efb6a970d5f5740a60828244e6c309df2b.zip |
spi: npcm: Fix uninitialized variable warning
The compiler has no way to know that rsize 1 or 2 are the only valid
values. Also simplify the code a bit with early return.
The warning was:
drivers/spi/spi-npcm-pspi.c:215:6: warning: 'val' may be used uninitialized in this function [-Wmaybe-uninitialized]
Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi-npcm-pspi.c')
-rw-r--r-- | drivers/spi/spi-npcm-pspi.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/spi/spi-npcm-pspi.c b/drivers/spi/spi-npcm-pspi.c index fed05b02007c..dda91c19af93 100644 --- a/drivers/spi/spi-npcm-pspi.c +++ b/drivers/spi/spi-npcm-pspi.c @@ -217,15 +217,23 @@ static void npcm_pspi_recv(struct npcm_pspi *priv) rsize = min(bytes_per_word(priv->bits_per_word), priv->rx_bytes); priv->rx_bytes -= rsize; - if (priv->rx_buf) { - if (rsize == 1) - val = ioread8(priv->base + NPCM_PSPI_DATA); - if (rsize == 2) - val = ioread16(priv->base + NPCM_PSPI_DATA); + if (!priv->rx_buf) + return; - *priv->rx_buf = val; - priv->rx_buf += rsize; + switch (rsize) { + case 1: + val = ioread8(priv->base + NPCM_PSPI_DATA); + break; + case 2: + val = ioread16(priv->base + NPCM_PSPI_DATA); + break; + default: + WARN_ON_ONCE(1); + return; } + + *priv->rx_buf = val; + priv->rx_buf += rsize; } static int npcm_pspi_transfer_one(struct spi_master *master, |