[PATCH 4/8] atmel_spi: add sanity check in setup
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Tue Nov 6 14:33:32 EST 2012
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
drivers/spi/atmel_spi.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c
index dbf6af8..17b91eb 100644
--- a/drivers/spi/atmel_spi.c
+++ b/drivers/spi/atmel_spi.c
@@ -87,6 +87,20 @@ static int atmel_spi_setup(struct spi_device *spi)
unsigned int bits = spi->bits_per_word;
unsigned long bus_hz;
+ if (spi->chip_select > spi->master->num_chipselect) {
+ dev_dbg(&spi->dev,
+ "setup: invalid chipselect %u (%u defined)\n",
+ spi->chip_select, spi->master->num_chipselect);
+ return -EINVAL;
+ }
+
+ if (bits < 8 || bits > 16) {
+ dev_dbg(&spi->dev,
+ "setup: invalid bits_per_word %u (8 to 16)\n",
+ bits);
+ return -EINVAL;
+ }
+
if (spi->controller_data) {
csr = (u32)spi->controller_data;
spi_writel(as, CSR0, csr);
--
1.7.10.4
More information about the barebox
mailing list