diff options
author | Rui Miguel Silva <rui.silva@linaro.org> | 2015-12-15 19:09:56 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@google.com> | 2015-12-15 14:32:12 -0800 |
commit | 4a0c4453e3f99335db3e7786b1a66e3b6cfa0653 (patch) | |
tree | 6af379d7599e98c95497c06fa9531654096324c4 /drivers | |
parent | a92a2d46acd0bfb97ba409d9d663c270cb240715 (diff) |
greybus: spi: unregister master on device add fail
When registering devices if any of it fail, just cleanup and release spi
master.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Reported-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/greybus/spi.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/staging/greybus/spi.c b/drivers/staging/greybus/spi.c index 6e1146d474df..e49dc56495b5 100644 --- a/drivers/staging/greybus/spi.c +++ b/drivers/staging/greybus/spi.c @@ -366,8 +366,12 @@ static int gb_spi_connection_init(struct gb_connection *connection) /* now, fetch the devices configuration */ for (i = 0; i < spi->num_chipselect; i++) { ret = gb_spi_setup_device(spi, i); - if (ret < 0) + if (ret < 0) { + dev_err(&connection->bundle->dev, + "failed to allocated spi device: %d\n", ret); + spi_unregister_master(master); break; + } } return ret; |