[PATCH] spi: mpc512x-psc: fix compiler warning about uninitialized variable

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Tue Jul 21 18:30:42 AEST 2015

This fixes several warnings like:

	drivers/spi/spi-mpc512x-psc.c: In function 'mpc512x_psc_spi_prep_xfer_hw':
	arch/powerpc/include/asm/io.h:163:2: warning: '__ret' may be used uninitialized in this function [-Wmaybe-uninitialized]

introduced in commit 8bf960985dfc for some build configurations.

Fixes: 8bf960985dfc ("spi: mpc512x-psc: add support for Freescale MPC5125")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>

didn't check why "my" config doesn't throw this warning, but I could reproduce
and fix it with the .config and toolchain as suggested by the build bot's

An alternatives is to introduce a default case that BUG()s, but I think
there is not much benefit over the NULL pointer exception that I
introduced with my commit.

I expected that giving the enum I introduced a name and using this to
type the variable should do the trick, but this didn't made the compiler

Best regards

 drivers/spi/spi-mpc512x-psc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/spi/spi-mpc512x-psc.c b/drivers/spi/spi-mpc512x-psc.c
index 280794dd248a..1e75341689a6 100644
--- a/drivers/spi/spi-mpc512x-psc.c
+++ b/drivers/spi/spi-mpc512x-psc.c
@@ -40,8 +40,8 @@ enum {
  * MPC5121 (which uses a struct mpc52xx_psc) and MPC5125 (using mpc5125_psc).
 #define psc_addr(mps, regname) ({					\
-	void *__ret;							\
-	switch(mps->type) {						\
+	void *__ret = NULL;						\
+	switch (mps->type) {						\
 	case TYPE_MPC5121: {						\
 			struct mpc52xx_psc __iomem *psc = mps->psc;	\
 			__ret = &psc->regname;				\

More information about the Linuxppc-dev mailing list