[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Multicall result missing sign extension in Xen or Linux
While trying to figure out why a failing component of a multicall did not properly return its result, I discovered that multicall results are not sign-extended when placed in the unsigned long result field. For hypercalls such as do_mmu_update which return a (signed) int, this results in Linux incorrectly thinking the hypercall succeeded when it has actually failed since arch/x86/xen/multicalls.c uses a signed long for "result" and checks (b->entries[i].result < 0). Is this a bug in Xen (using the wrong return type for do_mmu_op and other hypercalls) or in Linux (assuming all returns are signed longs)? One or the other needs to be changed, because the current setup is silently hiding failed memory mapping operations. -- Daniel De Graaf National Security Agency _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |