Messages in this thread |  | | | Date | Sun, 27 Jan 2008 07:45:54 +0100 (CET) | | From | "Fabio M. Di Nitto" <> | | Subject | Re: [PATCH 06/19] dlm: align midcomms message buffer | |
On Sat, 26 Jan 2008, Andrew Morton wrote:
>> 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/
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.
|  |