Messages in this thread | | | Date | Sat, 26 Jan 2008 22:00:23 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH 06/19] dlm: align midcomms message buffer |
| |
> On Thu, 24 Jan 2008 10:50:29 -0600 David Teigland <teigland@redhat.com> wrote: > From: Fabio M. Di Nitto <fabbione@ubuntu.com> > > 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/
> --- > 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?
It all looks rather ugly. Can't this stuff be implemeted within the C type system somehow?
| |