This patch fixes a case in increasing a memory reservation where you
do not get the pages nor do you get an error. While an argument might
be made that checking the page count independently is workable, it
does seem reasonable to have the operation return a failure in the
cases where it doesn't do what was asked. Right now, it mostly returns
the correct status. This patch just adds another instance of this.
And, while-I-was-there, I've been generating linker maps for qemu in
my own builds. It's harmless, until you need it and then it's valuable.
Tweak the Makefile to create the map.
Signed-off-by: Ben Thomas (ben@xxxxxxxxxxxxxxx)
--
------------------------------------------------------------------------
Ben Thomas Virtual Iron Software
bthomas@xxxxxxxxxxxxxxx Tower 1, Floor 2
978-849-1214 900 Chelmsford Street
Lowell, MA 01851
--- a/tools/ioemu/target-i386-dm/Makefile Fri Apr 14 14:31:13 2006 -0400
+++ b/tools/ioemu/target-i386-dm/Makefile Thu Apr 20 13:56:56 2006 -0400
@@ -323,7 +323,7 @@ endif
endif
$(QEMU_SYSTEM): $(VL_OBJS) libqemu.a
- $(CC) $(CFLAGS) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(VNC_LIBS)
$(VL_LIBS) -lpthread
+ $(CC) $(CFLAGS) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(VNC_LIBS)
$(VL_LIBS) -lpthread -Wl,-Map,qemu-dm.map -Wl,--cref
vnc.o: vnc.c keyboard_rdesktop.c
$(CC) $(CFLAGS) $(DEFINES) $(VNC_CFLAGS) -c -o $@ $<
diff -r 487f5e5c0fbd xen/common/memory.c
--- a/xen/common/memory.c Fri Apr 14 14:31:13 2006 -0400
+++ b/xen/common/memory.c Thu Apr 20 13:56:56 2006 -0400
@@ -348,6 +348,9 @@ long do_memory_op(unsigned long cmd, GUE
break;
}
+ if (rc < reservation.nr_extents && !preempted)
+ return -ENOMEM;
+
if ( unlikely(reservation.domid != DOMID_SELF) )
put_domain(d);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|