I got a question here lately. aligned directive will ensure that it will fall on boundary. Say aligned(4) ensures that structure is aligned to 4 byte boundary. Compiler can (at least theoretically) still have 4 byte structure aligned to 8 byte boundary on 64-bit platform (which is 4 byte aligned too).
struct { u32 field; } attribute ((aligned(4)); However requirement is to have this structure only 4 byte size( because adapter excepts it to be 4B sise) and therefor packed is used. I don't know the way to ensure size of 4 byte and alignment too. Or I am misunderstanding? Parav > -----Original Message----- > From: linux-rdma-ow...@vger.kernel.org [mailto:linux-rdma- > ow...@vger.kernel.org] On Behalf Of parav.pan...@emulex.com > Sent: Friday, March 23, 2012 2:41 AM > To: jguntho...@obsidianresearch.com > Cc: david.lai...@aculab.com; rol...@purestorage.com; linux- > r...@vger.kernel.org; net...@vger.kernel.org > Subject: RE: [PATCH 2/9] ocrdma: Driver for Emulex OneConnect RDMA > adapter > > > > > -----Original Message----- > > From: Jason Gunthorpe [mailto:jguntho...@obsidianresearch.com] > > Sent: Friday, March 23, 2012 2:28 AM > > To: Pandit, Parav > > Cc: david.lai...@aculab.com; rol...@purestorage.com; linux- > > r...@vger.kernel.org; net...@vger.kernel.org > > Subject: Re: [PATCH 2/9] ocrdma: Driver for Emulex OneConnect RDMA > > adapter > > > > On Thu, Mar 22, 2012 at 01:52:30PM -0700, parav.pan...@emulex.com > > wrote: > > > > > > This can be used to force 32bit alignment in amd64 code in order > > > > to match definitions in 32bit userspace. > > > > For new things it would make sense to force 64bit alignment of > > > > 64bit fields for 32bit code. > > > > > > o.k. so I'll use aligned attribute to align user-kernel interface > > > data structure to 8 byte boundary. That should work for 32-bit and > > > 64-bit user and kernel space and does't hurt performance either? > > > > If the structure is only for user/kernel interfacing then it is much > > better to add explicit padding fields to naturally place 64 bit > > quantities on an 8 byte alignment than to mess with gcc specific > > attributes (user space has a much wide choice of compilers). > > > > This was David's second suggestion. Better to do this now before the > > driver is accepted :) > > > o.k. I'll align them to naturally 8 byte boundary. > > > Jason > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the > body of a message to majord...@vger.kernel.org More majordomo info at > http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html