Commit 8e929a82 authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman

greybus: core: add lower-limit for host-device buffers

Make sure we never end up with a host device with maximum buffer size
smaller than the shortest Greybus message.
Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent c38cf10b
...@@ -188,6 +188,11 @@ struct greybus_host_device *greybus_create_hd(struct greybus_host_driver *driver ...@@ -188,6 +188,11 @@ struct greybus_host_device *greybus_create_hd(struct greybus_host_driver *driver
return NULL; return NULL;
} }
if (buffer_size_max < GB_OPERATION_MESSAGE_SIZE_MIN) {
dev_err(parent, "greybus host-device buffers too small\n");
return NULL;
}
/* /*
* Make sure to never allocate messages larger than what the Greybus * Make sure to never allocate messages larger than what the Greybus
* protocol supports. * protocol supports.
......
...@@ -69,6 +69,7 @@ struct gb_operation_msg_hdr { ...@@ -69,6 +69,7 @@ struct gb_operation_msg_hdr {
__u8 pad[2]; /* must be zero (ignore when read) */ __u8 pad[2]; /* must be zero (ignore when read) */
} __aligned(sizeof(u64)); } __aligned(sizeof(u64));
#define GB_OPERATION_MESSAGE_SIZE_MIN sizeof(struct gb_operation_msg_hdr)
#define GB_OPERATION_MESSAGE_SIZE_MAX U16_MAX #define GB_OPERATION_MESSAGE_SIZE_MAX U16_MAX
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment