Align all ipc messages on 8 byte boundaries. This alignment will remove bus errors on systems that can't access non-byte aligned data and should improve performance.
Signed-off-by: Steven Dake <sd...@redhat.com> --- exec/coroipcs.c | 2 +- lib/coroipcc.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/exec/coroipcs.c b/exec/coroipcs.c index 703802a..9b88cab 100644 --- a/exec/coroipcs.c +++ b/exec/coroipcs.c @@ -1240,7 +1240,7 @@ static void memcpy_dwrap (struct conn_info *conn_info, void *msg, unsigned int l write_idx = conn_info->control_buffer->write; memcpy (&conn_info->dispatch_buffer[write_idx], msg, len); - conn_info->control_buffer->write = (write_idx + len) % conn_info->dispatch_size; + conn_info->control_buffer->write = ((write_idx + len + 7) & 0xFFFFFFFF8) % conn_info->dispatch_size; } static void msg_send (void *conn, const struct iovec *iov, unsigned int iov_len, diff --git a/lib/coroipcc.c b/lib/coroipcc.c index bbeb95f..c5196a6 100644 --- a/lib/coroipcc.c +++ b/lib/coroipcc.c @@ -932,7 +932,9 @@ retry_ipc_sem_wait: read_idx = ipc_instance->control_buffer->read; header = (coroipc_response_header_t *) &addr[read_idx]; ipc_instance->control_buffer->read = - (read_idx + header->size) % ipc_instance->dispatch_size; + ((read_idx + header->size + 7) & 0xFFFFFFF8) % + ipc_instance->dispatch_size; + /* * Put from dispatch get and also from this call's get */ -- 1.7.2.3 _______________________________________________ Openais mailing list Openais@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/openais