diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
index a582e64abc64b236bd90688f6d52031f68a0430e..2525a85e3d48c24a076a3e06681d30fcdfd13b38 100644
--- a/tests/i915/gem_ctx_persistence.c
+++ b/tests/i915/gem_ctx_persistence.c
@@ -420,7 +420,7 @@ static void sendfd(int socket, int fd)
 	cmsg->cmsg_level = SOL_SOCKET;
 	cmsg->cmsg_type = SCM_RIGHTS;
 	cmsg->cmsg_len = msg.msg_controllen;
-	*(int *)CMSG_DATA(cmsg) = fd;
+	memcpy(CMSG_DATA(cmsg), &fd, sizeof(fd));
 
 	igt_assert(sendmsg(socket, &msg, 0) != -1);
 }