diff --git a/drivers/staging/greybus/spi.c b/drivers/staging/greybus/spi.c
index 41aa0ec1ced7f..6e1146d474df1 100644
--- a/drivers/staging/greybus/spi.c
+++ b/drivers/staging/greybus/spi.c
@@ -360,6 +360,8 @@ static int gb_spi_connection_init(struct gb_connection *connection)
 	master->transfer_one_message = gb_spi_transfer_one_message;
 
 	ret = spi_register_master(master);
+	if (ret < 0)
+		goto out_put_master;
 
 	/* now, fetch the devices configuration */
 	for (i = 0; i < spi->num_chipselect; i++) {