NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/39897: sizeof(struct gpt_hdr);
The following reply was made to PR kern/39897; it has been noted by GNATS.
From: Jason Thorpe <thorpej%shagadelic.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: kern-bug-people%netbsd.org@localhost,
gnats-admin%netbsd.org@localhost,
netbsd-bugs%netbsd.org@localhost,
jakllsch%kollasch.net@localhost
Subject: Re: kern/39897: sizeof(struct gpt_hdr);
Date: Wed, 12 Nov 2008 14:47:31 -0800
On Nov 12, 2008, at 2:45 PM, David Laight wrote:
> The following reply was made to PR kern/39897; it has been noted by
> GNATS.
>
> From: David Laight <david%l8s.co.uk@localhost>
> To: Jason Thorpe <thorpej%shagadelic.org@localhost>
> Cc: gnats-bugs%NetBSD.org@localhost
> Subject: Re: kern/39897: sizeof(struct gpt_hdr);
> Date: Wed, 12 Nov 2008 22:40:39 +0000
>
> On Tue, Nov 11, 2008 at 04:56:14PM -0800, Jason Thorpe wrote:
>>
>> On Nov 11, 2008, at 3:55 PM, David Laight wrote:
>>
>>> On Tue, Nov 11, 2008 at 07:00:01PM +0000, jakllsch%kollasch.net@localhost
>>> wrote:
>>>>> Synopsis: sizeof(struct gpt_hdr); is "wrong" on amd64
>>>
>>>> Perhaps add a '__packed' attribute to the GPT structures.
>>>
>>> There is a typedef for a 64bit int with 32bit alignment somewhere.
>>> That is better than applying packed to the entire structure.
>>
>> No, there's not.
>>
>> The problem is likely due to the fact that the struct has 3
>> uint32_t's
>> at the end, rather than 2 or 4.
>
> To get the entire structure to have 4-byte alignment, the uint64_t
> fields need to be marked as having 4-byte alignment.
> This is done in some of the compat code for i386.
Alignment is not the issue. Padding at the end is.
The solution to this problem is trivial. I have a patch to check in.
>
>
> However I suspect the gpt_hdr never exists as an array, so the
> overall size/padding should be handled differently.
>
> Otherwise you get rather long code sequences if you have to access
> the structure members on systems that can't perform misaligned
> transfers.
>
> David
>
> --
> David Laight: david%l8s.co.uk@localhost
>
-- thorpej
Home |
Main Index |
Thread Index |
Old Index