lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150524165231.GA3994@deathray>
Date:	Sun, 24 May 2015 11:52:31 -0500
From:	Michael Welling <mwelling@...e.org>
To:	Nicholas Mc Guire <der.herr@...r.at>
Cc:	broonie@...nel.org, linux-omap@...r.kernel.org,
	linux-arm-kernel@...ts.infradead.org, linux-next@...r.kernel.org,
	linux-spi@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 4/4] spi: omap2-mcspi: Handle error on gpio_request

On Sun, May 24, 2015 at 10:13:07AM +0200, Nicholas Mc Guire wrote:
> On Sat, 23 May 2015, Michael Welling wrote:
> 
> > If a valid GPIO is specified but cannot be requested by the driver, print a
> > message and error out of omap2_mcspi_setup.
> > 
> > Signed-off-by: Michael Welling <mwelling@...e.org>
> > ---
> >  drivers/spi/spi-omap2-mcspi.c |    9 ++++++---
> >  1 file changed, 6 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
> > index c4e21ad..5867384 100644
> > --- a/drivers/spi/spi-omap2-mcspi.c
> > +++ b/drivers/spi/spi-omap2-mcspi.c
> > @@ -1023,9 +1023,12 @@ static int omap2_mcspi_setup(struct spi_device *spi)
> >  	}
> >  
> >  	if (gpio_is_valid(spi->cs_gpio)) {
> > -		if (gpio_request(spi->cs_gpio, dev_name(&spi->dev)) == 0)
> > -			gpio_direction_output(spi->cs_gpio,
> > -			!(spi->mode & SPI_CS_HIGH));
> > +		ret = gpio_request(spi->cs_gpio, dev_name(&spi->dev));
> > +		if (ret) {
> > +			dev_err(&spi->dev, "failed to request gpio\n");
> > +			return ret;
> > +		}
> > +		gpio_direction_output(spi->cs_gpio, !(spi->mode & SPI_CS_HIGH));
> >  	}
> 
> just wondering if the outer gpio_is_valid is actually needed as it seems
> gpio_request() is actually calling gpio_is_valid() anyway and would return
> non 0 if it were not,

In this case we have to check first because if the GPIO is not registered the 
native chip select is assumed. If the GPIO is registered, is valid and can be
requested we use it as the chip select. If the GPIO is registered and valid but
cannot be requested we return an error.

> 
> thx!
> hofrat
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ