On 08/15/2016 07:23 PM, David Miller wrote:
From: David Laight <david.lai...@aculab.com>
Date: Mon, 15 Aug 2016 16:38:36 +0000

From: Stefan Hajnoczi
Sent: 10 August 2016 12:52
On Mon, Aug 08, 2016 at 06:14:41PM +0200, ggar...@abra.uab.cat wrote:
diff --git a/include/uapi/linux/vsockmon.h b/include/uapi/linux/vsockmon.h
new file mode 100644
index 0000000..739b4bf
--- /dev/null
+++ b/include/uapi/linux/vsockmon.h
@@ -0,0 +1,35 @@
+#ifndef _UAPI_VSOCKMON_H
+#define _UAPI_VSOCKMON_H
+
+#include <linux/virtio_vsock.h>
+
+/* Structure of packets received trought the vsockmon device. */
+
+struct af_vsockmon_hdr {
+       __le64 src_cid;
+       __le64 dst_cid;
+       __le32 src_port;
+       __le32 dst_port;
+       __le16 op;                      /* enum af_vsockmon_op */
+       __le16 t;                       /* enum af_vosckmon_t */
+       __le16 len;                     /* sizeof(t_hdr) */
+       union {
+               struct virtio_vsock_hdr virtio_hdr;
+       } t_hdr;
+} __attribute__((packed));
...

Gah, another 'packed' structure.
Have you looked at the amount of code the sparc64 compiler generates
to access the structure members??

You really want to add another 16bit field and enforce 64bit alignment
on the header and all data blocks.

Indeed, avoid the packed attribute at all costs.


I understand. I'll add another 16b field so it is aligned and avoid the packed attribute.

Gerard

Reply via email to