diff options
Diffstat (limited to 'drivers/spi/spi.c')
| -rw-r--r-- | drivers/spi/spi.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 004b10f184d..163fd802b7a 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -1376,6 +1376,14 @@ static int __spi_async(struct spi_device *spi, struct spi_message *message)  			xfer->bits_per_word = spi->bits_per_word;  		if (!xfer->speed_hz)  			xfer->speed_hz = spi->max_speed_hz; +		if (master->bits_per_word_mask) { +			/* Only 32 bits fit in the mask */ +			if (xfer->bits_per_word > 32) +				return -EINVAL; +			if (!(master->bits_per_word_mask & +					BIT(xfer->bits_per_word - 1))) +				return -EINVAL; +		}  	}  	message->spi = spi;  |