Re: [Xen-devel] [PATCH RFC] xen-block: correctly definestructures in public headers

From: Jan Beulich
Date: Tue Dec 03 2013 - 06:15:03 EST


>>> On 03.12.13 at 11:57, Roger Pau Monne <roger.pau@xxxxxxxxxx> wrote:
> struct blkif_request_rw {
> uint8_t nr_segments; /* number of segments */
> blkif_vdev_t handle; /* only for read/write requests */
> -#ifdef CONFIG_X86_64
> - uint32_t _pad1; /* offsetof(blkif_request,u.rw.id) == 8 */
> -#endif
> uint64_t id; /* private guest value, echoed in resp */
> blkif_sector_t sector_number;/* start sector idx on disk (r/w only) */
> struct blkif_request_segment {
> @@ -157,47 +154,36 @@ struct blkif_request_rw {
> /* @last_sect: last sector in frame to transfer (inclusive). */
> uint8_t first_sect, last_sect;
> } seg[BLKIF_MAX_SEGMENTS_PER_REQUEST];
> -} __attribute__((__packed__));
> +};

Removing the packed attribute here and below is not possible
as long as the defined structures get used in struct blkif_request
as the second field after a uint8_t one, and as long as the
individual fields here aren't natively aligned.

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/