xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* Multicall result missing sign extension in Xen or Linux
@ 2012-08-03 18:57 Daniel De Graaf
  2012-08-03 19:00 ` Jeremy Fitzhardinge
  2012-08-03 21:26 ` Keir Fraser
  0 siblings, 2 replies; 4+ messages in thread
From: Daniel De Graaf @ 2012-08-03 18:57 UTC (permalink / raw)
  To: xen-devel; +Cc: Jeremy Fitzhardinge, Konrad Rzeszutek Wilk

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-08-03 21:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-03 18:57 Multicall result missing sign extension in Xen or Linux Daniel De Graaf
2012-08-03 19:00 ` Jeremy Fitzhardinge
2012-08-03 19:26   ` Daniel De Graaf
2012-08-03 21:26 ` Keir Fraser

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).