diff options
Diffstat (limited to 'drivers/spi/spi.c')
| -rw-r--r-- | drivers/spi/spi.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 5787b723b593..838783c3fed0 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -1618,9 +1618,11 @@ static void of_register_spi_devices(struct spi_master *master)  		if (of_node_test_and_set_flag(nc, OF_POPULATED))  			continue;  		spi = of_register_spi_device(master, nc); -		if (IS_ERR(spi)) +		if (IS_ERR(spi)) {  			dev_warn(&master->dev, "Failed to create SPI device for %s\n",  				nc->full_name); +			of_node_clear_flag(nc, OF_POPULATED); +		}  	}  }  #else @@ -3131,6 +3133,7 @@ static int of_spi_notify(struct notifier_block *nb, unsigned long action,  		if (IS_ERR(spi)) {  			pr_err("%s: failed to create for '%s'\n",  					__func__, rd->dn->full_name); +			of_node_clear_flag(rd->dn, OF_POPULATED);  			return notifier_from_errno(PTR_ERR(spi));  		}  		break;  |