ChangeSet 1.1493, 2005/05/20 23:18:38+01:00, iap10@xxxxxxxxxxxxxxxxxxxxx
Merge
freefall.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-2.0-testing.bk
into freefall.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-unstable.bk
b/linux-2.4.30-xen-sparse/arch/xen/Makefile | 2
b/linux-2.4.30-xen-sparse/arch/xen/config.in | 16
b/linux-2.4.30-xen-sparse/arch/xen/defconfig-xen0 | 3
b/linux-2.4.30-xen-sparse/arch/xen/defconfig-xenU | 2
b/linux-2.4.30-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c | 50
b/linux-2.4.30-xen-sparse/arch/xen/kernel/Makefile | 4
b/linux-2.4.30-xen-sparse/arch/xen/kernel/head.S | 4
b/linux-2.4.30-xen-sparse/arch/xen/kernel/ldt.c | 5
b/linux-2.4.30-xen-sparse/arch/xen/kernel/process.c | 50
b/linux-2.4.30-xen-sparse/arch/xen/kernel/setup.c | 31
b/linux-2.4.30-xen-sparse/arch/xen/kernel/traps.c | 11
b/linux-2.4.30-xen-sparse/arch/xen/mm/fault.c | 4
b/linux-2.4.30-xen-sparse/arch/xen/mm/init.c | 13
b/linux-2.4.30-xen-sparse/arch/xen/mm/ioremap.c | 19
b/linux-2.4.30-xen-sparse/include/asm-xen/desc.h | 8
b/linux-2.4.30-xen-sparse/include/asm-xen/fixmap.h | 4
b/linux-2.4.30-xen-sparse/include/asm-xen/mmu_context.h | 45
b/linux-2.4.30-xen-sparse/include/asm-xen/page.h | 24
b/linux-2.4.30-xen-sparse/include/asm-xen/pgalloc.h | 25
b/linux-2.4.30-xen-sparse/include/asm-xen/pgtable-2level.h | 36
b/linux-2.4.30-xen-sparse/include/asm-xen/pgtable.h | 53
b/linux-2.4.30-xen-sparse/include/asm-xen/system.h | 2
b/linux-2.4.30-xen-sparse/mkbuildtree | 17
b/linux-2.4.30-xen-sparse/mm/highmem.c | 1
b/linux-2.4.30-xen-sparse/mm/memory.c | 36
b/linux-2.4.30-xen-sparse/mm/mremap.c | 2
b/linux-2.6.11-xen-sparse/drivers/xen/blkfront/block.h | 11
linux-2.4.30-xen-sparse/fs/exec.c | 1179
---------
linux-2.4.30-xen-sparse/include/asm-xen/msr.h | 138 -
linux-2.4.30-xen-sparse/mm/swapfile.c | 1269
----------
linux-2.4.30-xen-sparse/mm/vmalloc.c | 385 ---
31 files changed, 201 insertions(+), 3248 deletions(-)
diff -Nru a/linux-2.4.30-xen-sparse/arch/xen/Makefile
b/linux-2.4.30-xen-sparse/arch/xen/Makefile
--- a/linux-2.4.30-xen-sparse/arch/xen/Makefile 2005-05-20 19:04:06 -04:00
+++ b/linux-2.4.30-xen-sparse/arch/xen/Makefile 2005-05-20 19:04:06 -04:00
@@ -61,6 +61,7 @@
SUBDIRS += arch/xen/drivers/evtchn
SUBDIRS += arch/xen/drivers/blkif
SUBDIRS += arch/xen/drivers/netif
+SUBDIRS += arch/xen/drivers/usbif
SUBDIRS += arch/xen/drivers/balloon
ifdef CONFIG_XEN_PRIVILEGED_GUEST
SUBDIRS += arch/xen/drivers/dom0
@@ -71,6 +72,7 @@
CORE_FILES += arch/xen/drivers/console/drv.o
DRIVERS += arch/xen/drivers/blkif/drv.o
DRIVERS += arch/xen/drivers/netif/drv.o
+DRIVERS += arch/xen/drivers/usbif/drv.o
ifdef CONFIG_XEN_PRIVILEGED_GUEST
CORE_FILES += arch/xen/drivers/dom0/drv.o
endif
diff -Nru a/linux-2.4.30-xen-sparse/arch/xen/config.in
b/linux-2.4.30-xen-sparse/arch/xen/config.in
--- a/linux-2.4.30-xen-sparse/arch/xen/config.in 2005-05-20 19:04:06
-04:00
+++ b/linux-2.4.30-xen-sparse/arch/xen/config.in 2005-05-20 19:04:06
-04:00
@@ -16,14 +16,19 @@
comment 'Xen'
bool 'Support for privileged operations (domain 0)' CONFIG_XEN_PRIVILEGED_GUEST
bool 'Device-driver domain (physical device access)' CONFIG_XEN_PHYSDEV_ACCESS
+if [ "$CONFIG_XEN_PHYSDEV_ACCESS" = "y" ]; then
+ bool 'USB-device backend driver' CONFIG_XEN_USB_BACKEND
+fi
bool 'Scrub memory before freeing it to Xen' CONFIG_XEN_SCRUB_PAGES
bool 'Network-device frontend driver' CONFIG_XEN_NETDEV_FRONTEND
bool 'Block-device frontend driver' CONFIG_XEN_BLKDEV_FRONTEND
+bool 'Block-device uses grant tables' CONFIG_XEN_BLKDEV_GRANT
+bool 'USB-device frontend driver' CONFIG_XEN_USB_FRONTEND
endmenu
# The IBM S/390 patch needs this.
define_bool CONFIG_NO_IDLE_HZ y
-if [ "$CONFIG_XEN_PHYSDEV_ACCESS" == "y" ]; then
+if [ "$CONFIG_XEN_PHYSDEV_ACCESS" = "y" ]; then
define_bool CONFIG_FOREIGN_PAGES y
else
define_bool CONFIG_FOREIGN_PAGES n
@@ -262,7 +267,7 @@
source drivers/char/Config.in
-if [ "$CONFIG_XEN_PHYSDEV_ACCESS" = "y" ]; then
+if [ "$CONFIG_XEN_PHYSDEV_ACCESS" = "y" -o "$CONFIG_XEN_USB_FRONTEND" = "y" ];
then
source drivers/media/Config.in
fi
@@ -295,9 +300,16 @@
source drivers/sound/Config.in
fi
endmenu
+fi
+if [ "$CONFIG_XEN_PHYSDEV_ACCESS" = "y" -o "$CONFIG_XEN_USB_FRONTEND" = "y" ];
then
+ if [ "$CONFIG_XEN_USB_FRONTEND" = "y" -o "$CONFIG_XEN_USB_BACKEND" = "y" ];
then
+ define_bool CONFIG_USB y
+ fi
source drivers/usb/Config.in
+fi
+if [ "$CONFIG_XEN_PHYSDEV_ACCESS" = "y" ]; then
source net/bluetooth/Config.in
fi
diff -Nru a/linux-2.4.30-xen-sparse/arch/xen/defconfig-xen0
b/linux-2.4.30-xen-sparse/arch/xen/defconfig-xen0
--- a/linux-2.4.30-xen-sparse/arch/xen/defconfig-xen0 2005-05-20 19:04:06
-04:00
+++ b/linux-2.4.30-xen-sparse/arch/xen/defconfig-xen0 2005-05-20 19:04:06
-04:00
@@ -12,9 +12,12 @@
#
CONFIG_XEN_PRIVILEGED_GUEST=y
CONFIG_XEN_PHYSDEV_ACCESS=y
+# CONFIG_XEN_USB_BACKEND is not set
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_XEN_BLKDEV_GRANT=y
+# CONFIG_XEN_USB_FRONTEND is not set
CONFIG_NO_IDLE_HZ=y
CONFIG_FOREIGN_PAGES=y
diff -Nru a/linux-2.4.30-xen-sparse/arch/xen/defconfig-xenU
b/linux-2.4.30-xen-sparse/arch/xen/defconfig-xenU
--- a/linux-2.4.30-xen-sparse/arch/xen/defconfig-xenU 2005-05-20 19:04:06
-04:00
+++ b/linux-2.4.30-xen-sparse/arch/xen/defconfig-xenU 2005-05-20 19:04:06
-04:00
@@ -15,6 +15,8 @@
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_XEN_BLKDEV_GRANT=y
+# CONFIG_XEN_USB_FRONTEND is not set
CONFIG_NO_IDLE_HZ=y
# CONFIG_FOREIGN_PAGES is not set
CONFIG_NETDEVICES=y
diff -Nru a/linux-2.4.30-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c
b/linux-2.4.30-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c
--- a/linux-2.4.30-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c
2005-05-20 19:04:07 -04:00
+++ b/linux-2.4.30-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c
2005-05-20 19:04:07 -04:00
@@ -67,9 +67,14 @@
memset(&req, 0, sizeof(req));
req.operation = BLKIF_OP_PROBE;
req.nr_segments = 1;
+#ifdef CONFIG_XEN_BLKDEV_GRANT
+ blkif_control_probe_send(&req, &rsp,
+ (unsigned long)(virt_to_machine(buf)));
+#else
req.frame_and_sects[0] = virt_to_machine(buf) | 7;
blkif_control_send(&req, &rsp);
+#endif
if ( rsp.status <= 0 )
{
@@ -114,12 +119,6 @@
if ( (bd = bdget(device)) == NULL )
return -1;
- /*
- * Update of partition info, and check of usage count, is protected
- * by the per-block-device semaphore.
- */
- down(&bd->bd_sem);
-
if ( ((disk = xldev_to_xldisk(device)) != NULL) && (disk->usage != 0) )
{
printk(KERN_ALERT "VBD update failed - in use [dev=%x]\n", device);
@@ -137,11 +136,6 @@
major_name = XLSCSI_MAJOR_NAME;
max_part = XLSCSI_MAX_PART;
- } else if (VDISK_VIRTUAL(xd->info)) {
-
- major_name = XLVBD_MAJOR_NAME;
- max_part = XLVBD_MAX_PART;
-
} else {
/* SMH: hmm - probably a CCISS driver or sim; assume CCISS for now */
@@ -248,8 +242,8 @@
blk_size[major] = gd->sizes;
}
- if ( VDISK_READONLY(xd->info) )
- set_device_ro(device, 1);
+ if ( xd->info & VDISK_READONLY )
+ set_device_ro(device, 1);
gd->flags[minor >> gd->minor_shift] |= GENHD_FL_XEN;
@@ -298,20 +292,16 @@
gd->sizes[minor] = capacity>>(BLOCK_SIZE_BITS-9);
/* Some final fix-ups depending on the device type */
- switch ( VDISK_TYPE(xd->info) )
+ if ( xd->info & VDISK_REMOVABLE )
{
- case VDISK_TYPE_CDROM:
- case VDISK_TYPE_FLOPPY:
- case VDISK_TYPE_TAPE:
gd->flags[minor >> gd->minor_shift] |= GENHD_FL_REMOVABLE;
printk(KERN_ALERT
"Skipping partition check on %s /dev/%s\n",
- VDISK_TYPE(xd->info)==VDISK_TYPE_CDROM ? "cdrom" :
- (VDISK_TYPE(xd->info)==VDISK_TYPE_TAPE ? "tape" :
- "floppy"), disk_name(gd, MINOR(device), buf));
- break;
-
- case VDISK_TYPE_DISK:
+ (xd->info & VDISK_CDROM) ? "cdrom" : "removable",
+ disk_name(gd, MINOR(device), buf));
+ }
+ else
+ {
/* Only check partitions on real discs (not virtual!). */
if ( gd->flags[minor>>gd->minor_shift] & GENHD_FL_VIRT_PARTNS )
{
@@ -321,17 +311,10 @@
break;
}
register_disk(gd, device, gd->max_p, &xlvbd_block_fops, capacity);
- break;
-
- default:
- printk(KERN_ALERT "XenoLinux: unknown device type %d\n",
- VDISK_TYPE(xd->info));
- break;
}
}
out:
- up(&bd->bd_sem);
bdput(bd);
return rc;
}
@@ -356,12 +339,6 @@
if ( (bd = bdget(device)) == NULL )
return -1;
- /*
- * Update of partition info, and check of usage count, is protected
- * by the per-block-device semaphore.
- */
- down(&bd->bd_sem);
-
if ( ((gd = get_gendisk(device)) == NULL) ||
((disk = xldev_to_xldisk(device)) == NULL) )
BUG();
@@ -423,7 +400,6 @@
}
out:
- up(&bd->bd_sem);
bdput(bd);
return rc;
}
diff -Nru a/linux-2.4.30-xen-sparse/arch/xen/kernel/Makefile
b/linux-2.4.30-xen-sparse/arch/xen/kernel/Makefile
--- a/linux-2.4.30-xen-sparse/arch/xen/kernel/Makefile 2005-05-20 19:04:07
-04:00
+++ b/linux-2.4.30-xen-sparse/arch/xen/kernel/Makefile 2005-05-20 19:04:07
-04:00
@@ -6,12 +6,12 @@
O_TARGET := kernel.o
-export-objs := i386_ksyms.o skbuff.o ctrl_if.o
+export-objs := i386_ksyms.o gnttab.o skbuff.o ctrl_if.o
obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o \
ptrace.o ioport.o ldt.o setup.o time.o sys_i386.o \
i386_ksyms.o i387.o evtchn.o ctrl_if.o pci-dma.o \
- reboot.o fixup.o skbuff.o
+ reboot.o fixup.o gnttab.o skbuff.o
ifdef CONFIG_PCI
obj-y += pci-i386.o pci-pc.o
diff -Nru a/linux-2.4.30-xen-sparse/arch/xen/kernel/head.S
b/linux-2.4.30-xen-sparse/arch/xen/kernel/head.S
--- a/linux-2.4.30-xen-sparse/arch/xen/kernel/head.S 2005-05-20 19:04:06
-04:00
+++ b/linux-2.4.30-xen-sparse/arch/xen/kernel/head.S 2005-05-20 19:04:06
-04:00
@@ -1,6 +1,8 @@
.section __xen_guest
- .asciz "GUEST_OS=linux,GUEST_VER=2.4,XEN_VER=2.0,VIRT_BASE=0xC0000000"
+ .ascii "GUEST_OS=linux,GUEST_VER=2.4,XEN_VER=3.0,VIRT_BASE=0xC0000000"
+ .ascii ",LOADER=generic"
+ .byte 0
.text
#include <linux/config.h>
diff -Nru a/linux-2.4.30-xen-sparse/arch/xen/kernel/ldt.c
b/linux-2.4.30-xen-sparse/arch/xen/kernel/ldt.c
--- a/linux-2.4.30-xen-sparse/arch/xen/kernel/ldt.c 2005-05-20 19:04:06
-04:00
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|