diff --git a/drivers/staging/greybus/operation.c b/drivers/staging/greybus/operation.c
index 0adb72773d8a..2729b486d68d 100644
--- a/drivers/staging/greybus/operation.c
+++ b/drivers/staging/greybus/operation.c
@@ -705,6 +705,9 @@ static int gb_operation_response_send(struct gb_operation *operation,
 	struct gb_connection *connection = operation->connection;
 	int ret;
 
+	if (connection->state != GB_CONNECTION_STATE_ENABLED)
+		return -ENOTCONN;
+
 	if (!operation->response &&
 			!gb_operation_is_unidirectional(operation)) {
 		if (!gb_operation_response_alloc(operation, 0))