All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.