diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index 8f521b3..663f33c 100644
--- a/hw/virtio-net.c
+++ b/hw/virtio-net.c
@@ -81,7 +81,7 @@ typedef struct VirtIONet
  * 'container'.
  */
 #define endof(container, field) \
-    ((intptr_t)(&(((container *)0)->field)+1))
+    (offsetof(container, field) + sizeof(((container *)0)->field))
 
 typedef struct VirtIOFeature {
     uint32_t flags;
