lguest virtio_descriptor structure on 64bit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Rusty,

while playing with your virtio descriptor code, I realized that the desc_pages 
data structure is not 64 bit safe. struct lguest_desc desc[NUM_DESCS] can be 
smaller than a page, as struct lguest_desc is 24 bytes on 64bit systems. Lets 
add a char padding to make the next page really page aligned.

Btw. the new_io_desc.patch does not apply on current git. What base should I 
use?



--- lguest_virtio.c.old	2007-08-17 10:15:05.000000000 +0200
+++ lguest_virtio.c	2007-08-17 10:16:00.000000000 +0200
@@ -31,15 +31,16 @@
 
 struct desc_pages
 {
 	/* Page of descriptors. */
 	struct lguest_desc desc[NUM_DESCS];
+	char pad0[PAGE_SIZE - NUM_DESCS * sizeof(struct lguest_desc)];
 
 	/* Next page: how we tell other side what buffers are available. */
 	unsigned int avail_idx;
 	unsigned int available[NUM_DESCS];
-	char pad[PAGE_SIZE - (NUM_DESCS+1) * sizeof(unsigned int)];
+	char pad1[PAGE_SIZE - (NUM_DESCS+1) * sizeof(unsigned int)];
 
 	/* Third page: how other side tells us what's used. */
 	unsigned int used_idx;
 	struct lguest_used used[NUM_DESCS];
 };

cheers

Christian
_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/virtualization

[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux