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. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel