summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2013-04-13 21:21:13 +0000
committerdim <dim@FreeBSD.org>2013-04-13 21:21:13 +0000
commit6a5be05861061839894b4f8a1f31c03093684f2a (patch)
tree1b1dfdcf875c16318c2d61b2fa2d2f7dd55e03ec /sys/arm
parentb9f17d62db67c67d9d2177347bc75b306530943b (diff)
downloadFreeBSD-src-6a5be05861061839894b4f8a1f31c03093684f2a.zip
FreeBSD-src-6a5be05861061839894b4f8a1f31c03093684f2a.tar.gz
Fix undefined behaviour in several gpio_pin_setflags() routines (under
sys/arm and sys/mips), squelching the clang 3.3 warnings about this. Noticed by: tinderbox and many irate spectators Submitted by: Luiz Otavio O Souza <loos.br@gmail.com> PR: kern/177759 MFC after: 3 days
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/allwinner/a10_gpio.c4
-rw-r--r--sys/arm/broadcom/bcm2835/bcm2835_gpio.c4
-rw-r--r--sys/arm/freescale/imx/imx51_gpio.c4
-rw-r--r--sys/arm/xscale/ixp425/avila_gpio.c4
-rw-r--r--sys/arm/xscale/ixp425/cambria_gpio.c4
5 files changed, 10 insertions, 10 deletions
diff --git a/sys/arm/allwinner/a10_gpio.c b/sys/arm/allwinner/a10_gpio.c
index bc0d92a..0ccea4f 100644
--- a/sys/arm/allwinner/a10_gpio.c
+++ b/sys/arm/allwinner/a10_gpio.c
@@ -300,8 +300,8 @@ a10_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
if (i >= sc->sc_gpio_npins)
return (EINVAL);
- /* Filter out unwanted flags. */
- if ((flags &= sc->sc_gpio_pins[i].gp_caps) != flags)
+ /* Check for unwanted flags. */
+ if ((flags & sc->sc_gpio_pins[i].gp_caps) != flags)
return (EINVAL);
/* Can't mix input/output together. */
diff --git a/sys/arm/broadcom/bcm2835/bcm2835_gpio.c b/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
index 8029d80..9ddb44b 100644
--- a/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
+++ b/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
@@ -385,8 +385,8 @@ bcm_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
if (bcm_gpio_pin_is_ro(sc, pin))
return (EINVAL);
- /* Filter out unwanted flags. */
- if ((flags &= sc->sc_gpio_pins[i].gp_caps) != flags)
+ /* Check for unwanted flags. */
+ if ((flags & sc->sc_gpio_pins[i].gp_caps) != flags)
return (EINVAL);
/* Can't mix input/output together. */
diff --git a/sys/arm/freescale/imx/imx51_gpio.c b/sys/arm/freescale/imx/imx51_gpio.c
index d42a313..c23a49d 100644
--- a/sys/arm/freescale/imx/imx51_gpio.c
+++ b/sys/arm/freescale/imx/imx51_gpio.c
@@ -261,8 +261,8 @@ imx51_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
if (i >= sc->gpio_npins)
return (EINVAL);
- /* Filter out unwanted flags */
- if ((flags &= sc->gpio_pins[i].gp_caps) != flags)
+ /* Check for unwanted flags. */
+ if ((flags & sc->gpio_pins[i].gp_caps) != flags)
return (EINVAL);
/* Can't mix input/output together */
diff --git a/sys/arm/xscale/ixp425/avila_gpio.c b/sys/arm/xscale/ixp425/avila_gpio.c
index dc4e33a..8be9948 100644
--- a/sys/arm/xscale/ixp425/avila_gpio.c
+++ b/sys/arm/xscale/ixp425/avila_gpio.c
@@ -220,8 +220,8 @@ avila_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
if (pin >= IXP4XX_GPIO_PINS || !(sc->sc_valid & mask))
return (EINVAL);
- /* Filter out unwanted flags */
- if ((flags &= sc->sc_pins[pin].gp_caps) != flags)
+ /* Check for unwanted flags. */
+ if ((flags & sc->sc_pins[pin].gp_caps) != flags)
return (EINVAL);
/* Can't mix input/output together */
diff --git a/sys/arm/xscale/ixp425/cambria_gpio.c b/sys/arm/xscale/ixp425/cambria_gpio.c
index 34f5d21..18472cd 100644
--- a/sys/arm/xscale/ixp425/cambria_gpio.c
+++ b/sys/arm/xscale/ixp425/cambria_gpio.c
@@ -317,8 +317,8 @@ cambria_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
if (pin >= GPIO_PINS)
return (EINVAL);
- /* Filter out unwanted flags */
- if ((flags &= sc->sc_pins[pin].gp_caps) != flags)
+ /* Check for unwanted flags. */
+ if ((flags & sc->sc_pins[pin].gp_caps) != flags)
return (EINVAL);
/* Can't mix input/output together */
OpenPOWER on IntegriCloud