25 lines
874 B
Diff
25 lines
874 B
Diff
|
# Commit 53decd322157e922cac2988e07da6d39538c8033
|
||
|
# Date 2013-03-01 16:59:49 +0100
|
||
|
# Author Jan Beulich <jbeulich@suse.com>
|
||
|
# Committer Jan Beulich <jbeulich@suse.com>
|
||
|
fix compat memory exchange op splitting
|
||
|
|
||
|
A shift with a negative count was erroneously used here, yielding
|
||
|
undefined behavior.
|
||
|
|
||
|
Reported-by: Xi Wang <xi@mit.edu>
|
||
|
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
||
|
Acked-by: Keir Fraser <keir@xen.org>
|
||
|
|
||
|
--- a/xen/common/compat/memory.c
|
||
|
+++ b/xen/common/compat/memory.c
|
||
|
@@ -172,7 +172,7 @@ int compat_memory_op(unsigned int cmd, X
|
||
|
if ( order_delta >= 0 )
|
||
|
nat.xchg->out.nr_extents = end_extent >> order_delta;
|
||
|
else
|
||
|
- nat.xchg->out.nr_extents = end_extent << order_delta;
|
||
|
+ nat.xchg->out.nr_extents = end_extent << -order_delta;
|
||
|
++split;
|
||
|
}
|
||
|
|