1
0
Fork 0

greybus: stop storing hd in message

The host device pointer doesn't have to be stored in every message.
It can be derived by following up the chain of pointers back to
the operation's connection.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
hifive-unleashed-5.1
Alex Elder 2014-11-18 13:26:52 -06:00 committed by Greg Kroah-Hartman
parent e238e641ee
commit 3ed67aba9f
2 changed files with 12 additions and 6 deletions

View File

@ -105,10 +105,10 @@ gb_pending_operation_find(struct gb_connection *connection, u16 id)
static int gb_message_send(struct gb_message *message, gfp_t gfp_mask)
{
struct greybus_host_device *hd = message->hd;
struct gb_connection *connection = message->operation->connection;
message->status = -EINPROGRESS;
message->cookie = hd->driver->buffer_send(hd,
message->cookie = connection->hd->driver->buffer_send(connection->hd,
message->dest_cport_id,
message->buffer,
message->buffer_size,
@ -124,10 +124,13 @@ static int gb_message_send(struct gb_message *message, gfp_t gfp_mask)
static void gb_message_cancel(struct gb_message *message)
{
struct greybus_host_device *hd;
if (message->status != -EINPROGRESS)
return;
message->hd->driver->buffer_cancel(message->cookie);
hd = message->operation->connection->hd;
hd->driver->buffer_cancel(message->cookie);
}
/*
@ -255,7 +258,6 @@ static int gb_operation_message_init(struct gb_operation *operation,
if (!message->buffer)
return -ENOMEM;
message->buffer_size = size;
message->hd = hd;
message->dest_cport_id = dest_cport_id;
message->status = -EBADR; /* Initial value--means "never set" */
@ -273,9 +275,13 @@ static int gb_operation_message_init(struct gb_operation *operation,
static void gb_operation_message_exit(struct gb_message *message)
{
struct greybus_host_device *hd;
hd = message->operation->connection->hd;
hd->driver->buffer_free(message->buffer);
message->operation = NULL;
message->payload = NULL;
message->hd->driver->buffer_free(message->buffer);
message->buffer = NULL;
message->buffer_size = 0;
}

View File

@ -26,8 +26,8 @@ enum gb_operation_status {
struct gb_message {
void *payload;
struct gb_operation *operation;
struct greybus_host_device *hd;
u16 dest_cport_id; /* Destination CPort id */
int status;