Index: examples/io_uring.c
===================================================================
--- examples/io_uring.c	(revision a86b1b859e6d2a74b207e4278d574af6c3794926)
+++ examples/io_uring.c	(revision f3ed2af0d0db19c5e782300e01938a51f9a748f2)
@@ -1,3 +1,5 @@
+#ifndef _GNU_SOURCE
 #define _GNU_SOURCE
+#endif
 
 #include <fcntl.h>
@@ -8,4 +10,6 @@
 
 struct io_uring ring;
+
+__attribute__((aligned(1024))) char data[1024];
 
 int main(int argc,  char * argv[]) {
@@ -22,6 +26,5 @@
 
       /* prep the array */
-      char data[512];
-      struct iovec iov = { data, 512 };
+      struct iovec iov = { data, 1024 };
 
       /* init liburing */
@@ -35,6 +38,7 @@
       sqe = io_uring_get_sqe(&ring);
       io_uring_prep_readv(sqe, fd, &iov, 1, 0);
+      // io_uring_prep_read(sqe, fd, data, 1024, 0);
 
-      sqe->user_data = data;
+      sqe->user_data = (uint64_t)(uintptr_t)data;
 
       /* tell the kernel we have an sqe ready for consumption */
@@ -46,5 +50,5 @@
       /* read and process cqe event */
       if(ret == 0) {
-            char * out = cqe->user_data;
+            char * out = (char *)(uintptr_t)cqe->user_data;
             signed int len = cqe->res;
             io_uring_cqe_seen(&ring, cqe);
@@ -54,5 +58,5 @@
             }
             else if( len < 0 ) {
-                  fprintf(stderr, "readv returned error : %s\n", strerror(-len));
+                  fprintf(stderr, "readv/read returned error : %s\n", strerror(-len));
             }
       }
