On 12/03/2012 05:40 PM, Daniel Vetter wrote: > On Mon, Dec 3, 2012 at 10:30 AM, Mark Zhang <nvmarkzhang@xxxxxxxxx> wrote: >> I'm new in kernel development. Could you tell me or give me some >> materials to read that why we need to align the size of IOCTL structures >> to 64bit? I can understand if we're working in a 64bit kernel but why we >> need to do this if we're in a 32bit arm kernel? Besides, why the >> pointers in IOCTL structure should be declared as u64? > > Because in a few years/months you'll have arm64, but still the same > driver with the same ioctls ... and if the ioctls are not _exactly_ > the same you get to write compat ioctl code which copies the old 32bit > struct into the 64bit struct the kernel understands. Hence your ioctl > must be laid out exactly the same for both 32bit and 64bit, which > happens if you naturally align/pad everything to 64bits and only use > fixed-sized integers and no pointers. Ah, I see. Thanks. Yes, u64 still works as 32 bit pointer. Mark > -Daniel > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel