lkml.org 
[lkml]   [2013]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH 1/6] GenWQE PCI support, health monitoring and recovery
From
Date
Hi Arnd,

Am Donnerstag, den 05.12.2013, 21:31 +0100 schrieb Arnd Bergmann:
> On Thursday 05 December 2013, Frank Haverkamp wrote:
> > > > Was wrong, as already pointed out before. It is now:
> > > >
> > > > struct genwqe_mem {
> > > > __u64 addr;
> > > > __u64 size;
> > > > int direction;
> > > > };
> > > >
> > > > I hope the int is ok here.
> > >
> > > No, it's not. The problem is that sizeof(struct genwqe_mem) is now 24 on
> > > most architectures (including x86-64) and 20 on x86-32.
> >
> > Interesting. So int is like long architecture specific. I changed it to
> > be __u64 too, to avoid any problem.
>
> The solution is ok, but the problem is different from what you thought:
>
> On all architectures that Linux runs on, 'int' is 32 bit. The problem is
> again the alignment of __u64. On normal architectures, it is naturally
> aligned, and gcc adds 4 byte padding so that 'sizeof (struct genwqe_mem)'
> is multiple of the required alignment. On x86-32, the required alignment
> for the __u64 members is only 4 bytes, so no padding is added.
>
> Arnd
>

now I understand. Interesting. I wondered how one could check this
automatically such that others don't repeat the mistakes I did.

I hope I have fixed all those issues now in my latest posting, or do you
still see some?

Other than that, is the code ready for inclusion now, or do you still
like to have other changes done (hopefully not, but if so which ones)?

Thanks

Frank




\
 
 \ /
  Last update: 2013-12-06 10:01    [W:0.134 / U:0.364 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site