[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [patch] unwanted sign extending
static int alloc_l3_table(struct pfn_info *page) { ... unsigned long vaddr; unsigned int i; ... for ( i = 0; i < L3_PAGETABLE_ENTRIES; i++ ) { vaddr = i << L3_PAGETABLE_SHIFT; ... } ... } "i" gets sign extended when its shifted, so vaddr has all its high bits set. Because of that some l2 page_type's come out looking like PGT_writable instead of PGT_l2. Eventually this leads to an attempt to call put_page_type on the page twice, once when cleaning up recursively from l4, and once from walking the raw frames list. The second put_page_type hits the ASSERT that the type count isn't 0. With the attached patch, i can completely run a simple "hello world" domu, and its cleanup. Linux domu still probably doesn't work. sRp -- Scott Parish Signed-off-by: srparish@xxxxxxxxxx Attachment:
no-sign-extension.diff _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |