Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Apr 2013 21:30:01 GMT
From:      dfilter@FreeBSD.ORG (dfilter service)
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/177759: commit references a PR
Message-ID:  <201304132130.r3DLU1Ef078434@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/177759; it has been noted by GNATS.

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/177759: commit references a PR
Date: Sat, 13 Apr 2013 21:21:27 +0000 (UTC)

 Author: dim
 Date: Sat Apr 13 21:21:13 2013
 New Revision: 249449
 URL: http://svnweb.freebsd.org/changeset/base/249449
 
 Log:
   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
 
 Modified:
   head/sys/arm/allwinner/a10_gpio.c
   head/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
   head/sys/arm/freescale/imx/imx51_gpio.c
   head/sys/arm/xscale/ixp425/avila_gpio.c
   head/sys/arm/xscale/ixp425/cambria_gpio.c
   head/sys/mips/atheros/ar71xx_gpio.c
   head/sys/mips/cavium/octeon_gpio.c
   head/sys/mips/rt305x/rt305x_gpio.c
 
 Modified: head/sys/arm/allwinner/a10_gpio.c
 ==============================================================================
 --- head/sys/arm/allwinner/a10_gpio.c	Sat Apr 13 21:17:43 2013	(r249448)
 +++ head/sys/arm/allwinner/a10_gpio.c	Sat Apr 13 21:21:13 2013	(r249449)
 @@ -300,8 +300,8 @@ a10_gpio_pin_setflags(device_t dev, uint
  	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. */
 
 Modified: head/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
 ==============================================================================
 --- head/sys/arm/broadcom/bcm2835/bcm2835_gpio.c	Sat Apr 13 21:17:43 2013	(r249448)
 +++ head/sys/arm/broadcom/bcm2835/bcm2835_gpio.c	Sat Apr 13 21:21:13 2013	(r249449)
 @@ -385,8 +385,8 @@ bcm_gpio_pin_setflags(device_t dev, uint
  	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. */
 
 Modified: head/sys/arm/freescale/imx/imx51_gpio.c
 ==============================================================================
 --- head/sys/arm/freescale/imx/imx51_gpio.c	Sat Apr 13 21:17:43 2013	(r249448)
 +++ head/sys/arm/freescale/imx/imx51_gpio.c	Sat Apr 13 21:21:13 2013	(r249449)
 @@ -261,8 +261,8 @@ imx51_gpio_pin_setflags(device_t dev, ui
  	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: head/sys/arm/xscale/ixp425/avila_gpio.c
 ==============================================================================
 --- head/sys/arm/xscale/ixp425/avila_gpio.c	Sat Apr 13 21:17:43 2013	(r249448)
 +++ head/sys/arm/xscale/ixp425/avila_gpio.c	Sat Apr 13 21:21:13 2013	(r249449)
 @@ -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: head/sys/arm/xscale/ixp425/cambria_gpio.c
 ==============================================================================
 --- head/sys/arm/xscale/ixp425/cambria_gpio.c	Sat Apr 13 21:17:43 2013	(r249448)
 +++ head/sys/arm/xscale/ixp425/cambria_gpio.c	Sat Apr 13 21:21:13 2013	(r249449)
 @@ -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: head/sys/mips/atheros/ar71xx_gpio.c
 ==============================================================================
 --- head/sys/mips/atheros/ar71xx_gpio.c	Sat Apr 13 21:17:43 2013	(r249448)
 +++ head/sys/mips/atheros/ar71xx_gpio.c	Sat Apr 13 21:21:13 2013	(r249449)
 @@ -219,8 +219,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: head/sys/mips/cavium/octeon_gpio.c
 ==============================================================================
 --- head/sys/mips/cavium/octeon_gpio.c	Sat Apr 13 21:17:43 2013	(r249448)
 +++ head/sys/mips/cavium/octeon_gpio.c	Sat Apr 13 21:21:13 2013	(r249449)
 @@ -219,8 +219,8 @@ octeon_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: head/sys/mips/rt305x/rt305x_gpio.c
 ==============================================================================
 --- head/sys/mips/rt305x/rt305x_gpio.c	Sat Apr 13 21:17:43 2013	(r249448)
 +++ head/sys/mips/rt305x/rt305x_gpio.c	Sat Apr 13 21:21:13 2013	(r249449)
 @@ -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-unsubscribe@freebsd.org"
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201304132130.r3DLU1Ef078434>