Re: [PATCH 06/19] dlm: align midcomms message buffer

From: Fabio M. Di Nitto
Date: Sun Jan 27 2008 - 02:19:02 EST


On Sat, 26 Jan 2008, Andrew Morton wrote:

On Thu, 24 Jan 2008 10:50:29 -0600 David Teigland <teigland@xxxxxxxxxx> wrote:
From: Fabio M. Di Nitto <fabbione@xxxxxxxxxx>

gcc does not guarantee that a static buffer is 64bit aligned. This change
allows sparc64 to work.


This buffer is not static: changelog needs fixing: s/static/auto/

thanks


---
fs/dlm/midcomms.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/fs/dlm/midcomms.c b/fs/dlm/midcomms.c
index f8c69dd..da653b5 100644
--- a/fs/dlm/midcomms.c
+++ b/fs/dlm/midcomms.c
@@ -58,7 +58,7 @@ static void copy_from_cb(void *dst, const void *base, unsigned offset,
int dlm_process_incoming_buffer(int nodeid, const void *base,
unsigned offset, unsigned len, unsigned limit)
{
- unsigned char __tmp[DLM_INBUF_LEN];
+ unsigned char __tmp[DLM_INBUF_LEN] __attribute__((aligned(64)));
struct dlm_header *msg = (struct dlm_header *) __tmp;
int ret = 0;
int err = 0;

Why does DLM require that this thing be 64-bit aligned?

i spotted this running on sparc64 and the kernel was both complaning about TSP not being aligned and the data on the other side of the wire were wrong.

It all looks rather ugly. Can't this stuff be implemeted within the C type
system somehow?

Yes, i will rework it.

Thanks for the feedback.

Fabio

--
I'm going to make him an offer he can't refuse.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/