forked from mirrors/linux
		
	spi: imx: Gracefully handle NULL master->cs_gpios
It is possible that master->cs_gpios is NULL after spi_bitbang_start(), this happens if the master has no CS GPIOs specified in DT. Check for this case after spi_bitbang_start() to prevent NULL pointer dereference in the subsequent for loop, which accesses the master->cs_gpios field. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Martin Kaiser <martin@kaiser.cx> Cc: Mark Brown <broonie@kernel.org> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
		
							parent
							
								
									15ca92156e
								
							
						
					
					
						commit
						f13d4e189d
					
				
					 1 changed files with 5 additions and 0 deletions
				
			
		|  | @ -1268,6 +1268,11 @@ static int spi_imx_probe(struct platform_device *pdev) | ||||||
| 		goto out_clk_put; | 		goto out_clk_put; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	if (!master->cs_gpios) { | ||||||
|  | 		dev_err(&pdev->dev, "No CS GPIOs available\n"); | ||||||
|  | 		goto out_clk_put; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	for (i = 0; i < master->num_chipselect; i++) { | 	for (i = 0; i < master->num_chipselect; i++) { | ||||||
| 		if (!gpio_is_valid(master->cs_gpios[i])) | 		if (!gpio_is_valid(master->cs_gpios[i])) | ||||||
| 			continue; | 			continue; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Marek Vasut
						Marek Vasut