forked from mirrors/linux
		
	spi: work around clang bug in SPI_BPW_RANGE_MASK()
Clang-8 evaluates both sides of a ?: expression to check for
valid arithmetic even in the side that is never taken. This
results in a build warning:
drivers/spi/spi-sh-msiof.c:1052:24: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
        .bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32),
                              ^~~~~~~~~~~~~~~~~~~~~~~~~
Change the implementation to use the GENMASK() macro that does
what we want here but does not have a problem with the shift
count overflow.
Link: https://bugs.llvm.org/show_bug.cgi?id=38789
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
			
			
This commit is contained in:
		
							parent
							
								
									14dbfb417b
								
							
						
					
					
						commit
						eefffb42f6
					
				
					 1 changed files with 1 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -444,8 +444,7 @@ struct spi_controller {
 | 
			
		|||
	/* bitmask of supported bits_per_word for transfers */
 | 
			
		||||
	u32			bits_per_word_mask;
 | 
			
		||||
#define SPI_BPW_MASK(bits) BIT((bits) - 1)
 | 
			
		||||
#define SPI_BIT_MASK(bits) (((bits) == 32) ? ~0U : (BIT(bits) - 1))
 | 
			
		||||
#define SPI_BPW_RANGE_MASK(min, max) (SPI_BIT_MASK(max) - SPI_BIT_MASK(min - 1))
 | 
			
		||||
#define SPI_BPW_RANGE_MASK(min, max) GENMASK((min) - 1, (max) - 1)
 | 
			
		||||
 | 
			
		||||
	/* limits on transfer speed */
 | 
			
		||||
	u32			min_speed_hz;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue