[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] bitopts functions overflowing page boundarys
u.inuse.type_info is at the end of the pfn_info structure, and is u32 for both x86_32 and x86_64--in this location it can also be the last 32 bits of a page. several functions use bitopts.h functions to manipulate this member, and on x86_64 these functions use u64 instructions, which will overflow the page boundary, and possibly the end of memory as we see here: (XEN) &page->u.inuse.type_info = 0xffff828402fffffc (XEN) CPU: 0 (XEN) EIP: e010:[<ffff830000129089>] <registers and stack ommitted> (XEN) Pagetable walk from ffff828403000000: (XEN) L4 = 00000000016a5063 (XEN) L3 = 00000000016a6063 (XEN) L2 = 0000000000000000 **************************************** Panic on CPU0: CPU0 FATAL PAGE FAULT [error_code=0002] Faulting linear address: ffff828403000000 **************************************** the attached patch fixes this. sRp -- Scott Parish Signed-off-by: srparish@xxxxxxxxxx Attachment:
32bit.diff _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |