greybus: get rid of message status

We (sort of) maintain the status of each message, but we shouldn't
need to.  Right now we're not using it consistently in any case.

If a message fails to send, the caller will know to destroy the
operation that contained it.

If a message has been sent (i.e., handed to the host device layer)
it'll have a non-null cookie pointer.

If a does complete in error, we can update the status of the
operation that contains it.  That isn't happening right now but
it will soon.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
diff --git a/drivers/staging/greybus/operation.c b/drivers/staging/greybus/operation.c
index 96f4c68..05a61d8 100644
--- a/drivers/staging/greybus/operation.c
+++ b/drivers/staging/greybus/operation.c
@@ -107,28 +107,30 @@
 {
 	struct gb_connection *connection = message->operation->connection;
 	u16 dest_cport_id = connection->interface_cport_id;
+	int ret = 0;
 
-	message->status = -EINPROGRESS;
 	message->cookie = connection->hd->driver->buffer_send(connection->hd,
 					dest_cport_id,
 					message->buffer,
 					message->buffer_size,
 					gfp_mask);
 	if (IS_ERR(message->cookie)) {
-		message->status = PTR_ERR(message->cookie);
+		ret = PTR_ERR(message->cookie);
 		message->cookie = NULL;
-
-		return message->status;
 	}
-	return 0;
+	return ret;
 }
 
+/*
+ * Cancel a message whose buffer we have passed to the host device
+ * layer to be sent.
+ */
 static void gb_message_cancel(struct gb_message *message)
 {
 	struct greybus_host_device *hd;
 
-	if (message->status != -EINPROGRESS)
-		return;
+	if (!message->cookie)
+		return;	/* Don't bother if the message isn't in flight */
 
 	hd = message->operation->connection->hd;
 	hd->driver->buffer_cancel(message->cookie);
@@ -252,7 +254,6 @@
 	if (!message->buffer)
 		return -ENOMEM;
 	message->buffer_size = size;
-	message->status = -EBADR;	/* Initial value--means "never set" */
 
 	/* Fill in the header structure */
 	header = message->buffer;
diff --git a/drivers/staging/greybus/operation.h b/drivers/staging/greybus/operation.h
index 81fd7f7..80ee158 100644
--- a/drivers/staging/greybus/operation.h
+++ b/drivers/staging/greybus/operation.h
@@ -28,7 +28,6 @@
 	void			*payload;
 
 	struct gb_operation	*operation;
-	int			status;
 
 	void			*buffer;
 	size_t			buffer_size;