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

Reply via email to