lkml.org 
[lkml]   [2008]   [Jan]   [27]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSat, 26 Jan 2008 22:00:23 -0800
FromAndrew Morton <>
SubjectRe: [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?


\
 
 \ /
  Last update: 2008-01-27 06:03    [from the cache]
©2003-2008