Author: dim
Date: Tue Apr 16 16:35:48 2013
New Revision: 249550
URL: http://svnweb.freebsd.org/changeset/base/249550

Log:
  MFC r249449:
  
  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...@gmail.com>
  PR:           kern/177759

Modified:
  stable/9/sys/arm/xscale/ixp425/avila_gpio.c
  stable/9/sys/arm/xscale/ixp425/cambria_gpio.c
  stable/9/sys/mips/atheros/ar71xx_gpio.c
  stable/9/sys/mips/rt305x/rt305x_gpio.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/arm/xscale/ixp425/avila_gpio.c
==============================================================================
--- stable/9/sys/arm/xscale/ixp425/avila_gpio.c Tue Apr 16 16:09:27 2013        
(r249549)
+++ stable/9/sys/arm/xscale/ixp425/avila_gpio.c Tue Apr 16 16:35:48 2013        
(r249550)
@@ -220,8 +220,8 @@ avila_gpio_pin_setflags(device_t dev, ui
        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 */

Modified: stable/9/sys/arm/xscale/ixp425/cambria_gpio.c
==============================================================================
--- stable/9/sys/arm/xscale/ixp425/cambria_gpio.c       Tue Apr 16 16:09:27 
2013        (r249549)
+++ stable/9/sys/arm/xscale/ixp425/cambria_gpio.c       Tue Apr 16 16:35:48 
2013        (r249550)
@@ -317,8 +317,8 @@ cambria_gpio_pin_setflags(device_t dev, 
        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 */

Modified: stable/9/sys/mips/atheros/ar71xx_gpio.c
==============================================================================
--- stable/9/sys/mips/atheros/ar71xx_gpio.c     Tue Apr 16 16:09:27 2013        
(r249549)
+++ stable/9/sys/mips/atheros/ar71xx_gpio.c     Tue Apr 16 16:35:48 2013        
(r249550)
@@ -238,8 +238,8 @@ ar71xx_gpio_pin_setflags(device_t dev, u
        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 */

Modified: stable/9/sys/mips/rt305x/rt305x_gpio.c
==============================================================================
--- stable/9/sys/mips/rt305x/rt305x_gpio.c      Tue Apr 16 16:09:27 2013        
(r249549)
+++ stable/9/sys/mips/rt305x/rt305x_gpio.c      Tue Apr 16 16:35:48 2013        
(r249550)
@@ -242,8 +242,8 @@ rt305x_gpio_pin_setflags(device_t dev, u
        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 */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to