ia64/xen-unstable

changeset 2900:796eb5765fcc

bitkeeper revision 1.1159.1.381 (418abc6aXm_o_cyE21OoXc96m0oi5g)

rename linux-2.6.9-patches to patches/linux-2.6.9
author iap10@labyrinth.cl.cam.ac.uk
date Thu Nov 04 23:34:02 2004 +0000 (2004-11-04)
parents 574f6a7c8697
children 2f1e5bdb3088
files .rootkeys BitKeeper/etc/ignore Makefile buildconfigs/mk.linux-2.4-xen0 linux-2.6.9-patches/agpgart.patch linux-2.6.9-patches/drm.patch patches/linux-2.6.9/agpgart.patch patches/linux-2.6.9/drm.patch patches/linux-2.6.9/nettel.patch
line diff
     1.1 --- a/.rootkeys	Thu Nov 04 23:05:06 2004 +0000
     1.2 +++ b/.rootkeys	Thu Nov 04 23:34:02 2004 +0000
     1.3 @@ -128,8 +128,6 @@ 409ba2e7akOFqQUg6Qyg2s28xcXiMg linux-2.4
     1.4  3e5a4e683HKVU-sxtagrDasRB8eBVw linux-2.4.27-xen-sparse/mm/swapfile.c
     1.5  41180721bNns9Na7w1nJ0ZVt8bhUNA linux-2.4.27-xen-sparse/mm/vmalloc.c
     1.6  41505c57WAd5l1rlfCLNSCpx9J13vA linux-2.4.27-xen-sparse/net/core/skbuff.c
     1.7 -413aa1d0oNP8HXLvfPuMe6cSroUfSA linux-2.6.9-patches/agpgart.patch
     1.8 -413aa1d0ewvSv-ohnNnQQNGsbPTTNA linux-2.6.9-patches/drm.patch
     1.9  40f562372u3A7_kfbYYixPHJJxYUxA linux-2.6.9-xen-sparse/arch/xen/Kconfig
    1.10  40f56237utH41NPukqHksuNf29IC9A linux-2.6.9-xen-sparse/arch/xen/Kconfig.drivers
    1.11  40f56237penAAlWVBVDpeQZNFIg8CA linux-2.6.9-xen-sparse/arch/xen/Makefile
    1.12 @@ -290,6 +288,9 @@ 413cb3b5rIKB3TbyhK3pbNyVkYysqA netbsd-2.
    1.13  413cb3b5eKxnzoodEqaWn2wrPnHWnA netbsd-2.0-xen-sparse/sys/arch/xen/xen/xencons.c
    1.14  413cb3b5F56TvQWAmO5TsuzhtzLFPQ netbsd-2.0-xen-sparse/sys/arch/xen/xen/xenkbc.c
    1.15  413cb3b53nyOv1OIeDSsCXhBFDXvJA netbsd-2.0-xen-sparse/sys/nfs/files.nfs
    1.16 +413aa1d0oNP8HXLvfPuMe6cSroUfSA patches/linux-2.6.9/agpgart.patch
    1.17 +413aa1d0ewvSv-ohnNnQQNGsbPTTNA patches/linux-2.6.9/drm.patch
    1.18 +418abc69J3F638vPO9MYoDGeYilxoQ patches/linux-2.6.9/nettel.patch
    1.19  40e1b09db5mN69Ijj0X_Eol-S7dXiw tools/Make.defs
    1.20  3f776bd1Hy9rn69ntXBhPReUFw9IEA tools/Makefile
    1.21  4124b307nRyK3dhn1hAsvrY76NuV3g tools/check/Makefile
     2.1 --- a/BitKeeper/etc/ignore	Thu Nov 04 23:05:06 2004 +0000
     2.2 +++ b/BitKeeper/etc/ignore	Thu Nov 04 23:34:02 2004 +0000
     2.3 @@ -51,7 +51,7 @@ netbsd-*-tools/*
     2.4  netbsd-*-xen0/*
     2.5  netbsd-*-xenU/*
     2.6  netbsd-*.patch
     2.7 -patches/*
     2.8 +patches/tmp/*
     2.9  pristine-*
    2.10  tools/*/build/lib*/*.py
    2.11  tools/balloon/balloon
    2.12 @@ -75,191 +75,5 @@ xen/tools/figlet/figlet
    2.13  xen/xen
    2.14  xen/xen-syms
    2.15  xen/xen.*
    2.16 -install/boot/System.map-2.6.9-xen0
    2.17 -install/boot/System.map-2.6.9-xenU
    2.18 -install/boot/config-2.6.9-xen0
    2.19 -install/boot/config-2.6.9-xenU
    2.20 -install/boot/vmlinux-syms-2.6.9-xen0
    2.21 -install/boot/vmlinux-syms-2.6.9-xenU
    2.22 -install/boot/vmlinuz-2.6.9-xen0
    2.23 -install/boot/vmlinuz-2.6.9-xenU
    2.24 -install/boot/xen-syms
    2.25 -install/boot/xen.gz
    2.26 -install/etc/xen/scripts/block-enbd
    2.27 -install/etc/xen/scripts/block-file
    2.28 -install/etc/xen/scripts/network
    2.29 -install/etc/xen/scripts/vif-bridge
    2.30 -install/etc/xen/xend-config.sxp
    2.31 -install/etc/xen/xmexample1
    2.32 -install/etc/xen/xmexample2
    2.33 -install/lib/modules/2.6.9-xen0/build
    2.34 -install/lib/modules/2.6.9-xen0/kernel/crypto/crc32c.ko
    2.35 -install/lib/modules/2.6.9-xen0/kernel/crypto/des.ko
    2.36 -install/lib/modules/2.6.9-xen0/kernel/crypto/md5.ko
    2.37 -install/lib/modules/2.6.9-xen0/kernel/crypto/sha1.ko
    2.38 -install/lib/modules/2.6.9-xen0/kernel/drivers/pcmcia/ds.ko
    2.39 -install/lib/modules/2.6.9-xen0/kernel/drivers/pcmcia/pcmcia_core.ko
    2.40 -install/lib/modules/2.6.9-xen0/kernel/drivers/pcmcia/yenta_socket.ko
    2.41 -install/lib/modules/2.6.9-xen0/kernel/fs/exportfs/exportfs.ko
    2.42 -install/lib/modules/2.6.9-xen0/kernel/fs/fat/fat.ko
    2.43 -install/lib/modules/2.6.9-xen0/kernel/fs/msdos/msdos.ko
    2.44 -install/lib/modules/2.6.9-xen0/kernel/fs/nfsd/nfsd.ko
    2.45 -install/lib/modules/2.6.9-xen0/kernel/fs/vfat/vfat.ko
    2.46 -install/lib/modules/2.6.9-xen0/kernel/net/ipv4/netfilter/ip_conntrack.ko
    2.47 -install/lib/modules/2.6.9-xen0/kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko
    2.48 -install/lib/modules/2.6.9-xen0/kernel/net/ipv4/netfilter/ip_tables.ko
    2.49 -install/lib/modules/2.6.9-xen0/modules.alias
    2.50 -install/lib/modules/2.6.9-xen0/modules.ccwmap
    2.51 -install/lib/modules/2.6.9-xen0/modules.dep
    2.52 -install/lib/modules/2.6.9-xen0/modules.ieee1394map
    2.53 -install/lib/modules/2.6.9-xen0/modules.inputmap
    2.54 -install/lib/modules/2.6.9-xen0/modules.isapnpmap
    2.55 -install/lib/modules/2.6.9-xen0/modules.pcimap
    2.56 -install/lib/modules/2.6.9-xen0/modules.symbols
    2.57 -install/lib/modules/2.6.9-xen0/modules.usbmap
    2.58 -install/lib/modules/2.6.9-xen0/source
    2.59 -install/lib/modules/2.6.9-xenU/build
    2.60 -install/lib/modules/2.6.9-xenU/kernel/crypto/crc32c.ko
    2.61 -install/lib/modules/2.6.9-xenU/kernel/crypto/md5.ko
    2.62 -install/lib/modules/2.6.9-xenU/kernel/drivers/block/loop.ko
    2.63 -install/lib/modules/2.6.9-xenU/kernel/drivers/block/nbd.ko
    2.64 -install/lib/modules/2.6.9-xenU/kernel/drivers/scsi/scsi_mod.ko
    2.65 -install/lib/modules/2.6.9-xenU/kernel/drivers/scsi/sd_mod.ko
    2.66 -install/lib/modules/2.6.9-xenU/kernel/fs/fat/fat.ko
    2.67 -install/lib/modules/2.6.9-xenU/kernel/fs/msdos/msdos.ko
    2.68 -install/lib/modules/2.6.9-xenU/kernel/fs/vfat/vfat.ko
    2.69 -install/lib/modules/2.6.9-xenU/kernel/lib/libcrc32c.ko
    2.70 -install/lib/modules/2.6.9-xenU/source
    2.71 -install/lib/python/xen/__init__.py
    2.72 -install/lib/python/xen/lowlevel/__init__.py
    2.73 -install/lib/python/xen/sv/CreateDomain.py
    2.74 -install/lib/python/xen/sv/Daemon.py
    2.75 -install/lib/python/xen/sv/DomInfo.py
    2.76 -install/lib/python/xen/sv/DomList.py
    2.77 -install/lib/python/xen/sv/GenTabbed.py
    2.78 -install/lib/python/xen/sv/HTMLBase.py
    2.79 -install/lib/python/xen/sv/Main.py
    2.80 -install/lib/python/xen/sv/MigrateDomain.py
    2.81 -install/lib/python/xen/sv/NodeInfo.py
    2.82 -install/lib/python/xen/sv/RestoreDomain.py
    2.83 -install/lib/python/xen/sv/SaveDomain.py
    2.84 -install/lib/python/xen/sv/TabView.py
    2.85 -install/lib/python/xen/sv/Wizard.py
    2.86 -install/lib/python/xen/sv/__init__.py
    2.87 -install/lib/python/xen/sv/params.py
    2.88 -install/lib/python/xen/sv/util.py
    2.89 -install/lib/python/xen/util/Brctl.py
    2.90 -install/lib/python/xen/util/__init__.py
    2.91 -install/lib/python/xen/util/console_client.py
    2.92 -install/lib/python/xen/util/ip.py
    2.93 -install/lib/python/xen/util/tempfile.py
    2.94 -install/lib/python/xen/xend/Args.py
    2.95 -install/lib/python/xen/xend/Blkctl.py
    2.96 -install/lib/python/xen/xend/EventServer.py
    2.97 -install/lib/python/xen/xend/EventTypes.py
    2.98 -install/lib/python/xen/xend/PrettyPrint.py
    2.99 -install/lib/python/xen/xend/Vifctl.py
   2.100 -install/lib/python/xen/xend/XendAsynchProtocol.py
   2.101 -install/lib/python/xen/xend/XendClient.py
   2.102 -install/lib/python/xen/xend/XendConsole.py
   2.103 -install/lib/python/xen/xend/XendDB.py
   2.104 -install/lib/python/xen/xend/XendDmesg.py
   2.105 -install/lib/python/xen/xend/XendDomain.py
   2.106 -install/lib/python/xen/xend/XendDomainConfig.py
   2.107 -install/lib/python/xen/xend/XendDomainInfo.py
   2.108 -install/lib/python/xen/xend/XendError.py
   2.109 -install/lib/python/xen/xend/XendLogging.py
   2.110 -install/lib/python/xen/xend/XendMigrate.py
   2.111 -install/lib/python/xen/xend/XendNode.py
   2.112 -install/lib/python/xen/xend/XendProtocol.py
   2.113 -install/lib/python/xen/xend/XendRoot.py
   2.114 -install/lib/python/xen/xend/XendVnet.py
   2.115 -install/lib/python/xen/xend/__init__.py
   2.116 -install/lib/python/xen/xend/encode.py
   2.117 -install/lib/python/xen/xend/server/SrvBase.py
   2.118 -install/lib/python/xen/xend/server/SrvConsole.py
   2.119 -install/lib/python/xen/xend/server/SrvConsoleDir.py
   2.120 -install/lib/python/xen/xend/server/SrvDaemon.py
   2.121 -install/lib/python/xen/xend/server/SrvDeviceDir.py
   2.122 -install/lib/python/xen/xend/server/SrvDir.py
   2.123 -install/lib/python/xen/xend/server/SrvDmesg.py
   2.124 -install/lib/python/xen/xend/server/SrvDomain.py
   2.125 -install/lib/python/xen/xend/server/SrvDomainDir.py
   2.126 -install/lib/python/xen/xend/server/SrvEventDir.py
   2.127 -install/lib/python/xen/xend/server/SrvNode.py
   2.128 -install/lib/python/xen/xend/server/SrvRoot.py
   2.129 -install/lib/python/xen/xend/server/SrvServer.py
   2.130 -install/lib/python/xen/xend/server/SrvVnetDir.py
   2.131 -install/lib/python/xen/xend/server/SrvXendLog.py
   2.132 -install/lib/python/xen/xend/server/__init__.py
   2.133 -install/lib/python/xen/xend/server/blkif.py
   2.134 -install/lib/python/xen/xend/server/channel.py
   2.135 -install/lib/python/xen/xend/server/console.py
   2.136 -install/lib/python/xen/xend/server/controller.py
   2.137 -install/lib/python/xen/xend/server/domain.py
   2.138 -install/lib/python/xen/xend/server/messages.py
   2.139 -install/lib/python/xen/xend/server/netif.py
   2.140 -install/lib/python/xen/xend/server/params.py
   2.141 -install/lib/python/xen/xend/sxp.py
   2.142 -install/lib/python/xen/xm/__init__.py
   2.143 -install/lib/python/xen/xm/create.py
   2.144 -install/lib/python/xen/xm/destroy.py
   2.145 -install/lib/python/xen/xm/help.py
   2.146 -install/lib/python/xen/xm/main.py
   2.147 -install/lib/python/xen/xm/migrate.py
   2.148 -install/lib/python/xen/xm/opts.py
   2.149 -install/lib/python/xen/xm/shutdown.py
   2.150 -install/usr/bin/miniterm
   2.151 -install/usr/bin/xen_cpuperf
   2.152 -install/usr/bin/xencons
   2.153 -install/usr/bin/xentrace
   2.154 -install/usr/bin/xentrace_format
   2.155 -install/usr/include/xc.h
   2.156 -install/usr/include/xen/COPYING
   2.157 -install/usr/include/xen/arch-x86_32.h
   2.158 -install/usr/include/xen/arch-x86_64.h
   2.159 -install/usr/include/xen/dom0_ops.h
   2.160 -install/usr/include/xen/event_channel.h
   2.161 -install/usr/include/xen/grant_table.h
   2.162 -install/usr/include/xen/io/blkif.h
   2.163 -install/usr/include/xen/io/domain_controller.h
   2.164 -install/usr/include/xen/io/netif.h
   2.165 -install/usr/include/xen/linux/privcmd.h
   2.166 -install/usr/include/xen/linux/suspend.h
   2.167 -install/usr/include/xen/physdev.h
   2.168 -install/usr/include/xen/sched_ctl.h
   2.169 -install/usr/include/xen/trace.h
   2.170 -install/usr/include/xen/xen.h
   2.171 -install/usr/man/man1/xentrace_format.1
   2.172 -install/usr/man/man8/xentrace.8
   2.173 -install/usr/sbin/netfix
   2.174 -install/usr/sbin/xend
   2.175 -install/usr/sbin/xensv
   2.176 -install/usr/sbin/xfrd
   2.177 -install/usr/sbin/xm
   2.178 -install/var/xen/sv/Main.rpy
   2.179 -install/var/xen/sv/images/destroy.png
   2.180 -install/var/xen/sv/images/finish.png
   2.181 -install/var/xen/sv/images/left-end-highlight.jpg
   2.182 -install/var/xen/sv/images/left-end-no-highlight.jpg
   2.183 -install/var/xen/sv/images/middle-highlight.jpg
   2.184 -install/var/xen/sv/images/middle-no-highlight.jpg
   2.185 -install/var/xen/sv/images/next.png
   2.186 -install/var/xen/sv/images/orb_01.jpg
   2.187 -install/var/xen/sv/images/orb_02.jpg
   2.188 -install/var/xen/sv/images/pause.png
   2.189 -install/var/xen/sv/images/previous.png
   2.190 -install/var/xen/sv/images/reboot.png
   2.191 -install/var/xen/sv/images/right-end-highlight.jpg
   2.192 -install/var/xen/sv/images/right-end-no-highlight.jpg
   2.193 -install/var/xen/sv/images/seperator-left-highlight.jpg
   2.194 -install/var/xen/sv/images/seperator-right-highlight.jpg
   2.195 -install/var/xen/sv/images/seperator.jpg
   2.196 -install/var/xen/sv/images/shutdown.png
   2.197 -install/var/xen/sv/images/small-destroy.png
   2.198 -install/var/xen/sv/images/small-pause.png
   2.199 -install/var/xen/sv/images/small-unpause.png
   2.200 -install/var/xen/sv/images/unpause.png
   2.201 -install/var/xen/sv/images/xen.png
   2.202 -install/var/xen/sv/inc/script.js
   2.203 -install/var/xen/sv/inc/style.css
   2.204 +install/*
   2.205 +
     3.1 --- a/Makefile	Thu Nov 04 23:05:06 2004 +0000
     3.2 +++ b/Makefile	Thu Nov 04 23:34:02 2004 +0000
     3.3 @@ -86,7 +86,7 @@ clean:
     3.4  
     3.5  # clean, but blow away kernel build tree plus tar balls
     3.6  mrproper: clean
     3.7 -	rm -rf dist patches
     3.8 +	rm -rf dist patches/tmp
     3.9  	for i in $(ALLKERNELS) ; do $(MAKE) -f buildconfigs/$$i delete ; done
    3.10  	for i in $(ALLSPARSETREES) ; do $(MAKE) -f buildconfigs/Rules.mk $$i-mrproper ; done
    3.11  
     4.1 --- a/buildconfigs/mk.linux-2.4-xen0	Thu Nov 04 23:05:06 2004 +0000
     4.2 +++ b/buildconfigs/mk.linux-2.4-xen0	Thu Nov 04 23:34:02 2004 +0000
     4.3 @@ -17,11 +17,11 @@ build: $(LINUX_DIR)/include/linux/autoco
     4.4  	$(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_MOD_PATH=$(INSTALL_DIR) modules_install
     4.5  	$(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(INSTALL_DIR) install
     4.6  
     4.7 -patches/ebtables.diff:
     4.8 -	mkdir -p patches
     4.9 +patches/tmp/ebtables.diff:
    4.10 +	mkdir -p patches/tmp
    4.11  	wget http://www.cl.cam.ac.uk/netos/xen/downloads/ebtables-brnf-5_vs_2.4.27.diff.gz -O- | gunzip -c > $@
    4.12  
    4.13 -$(LINUX_DIR)/include/linux/autoconf.h: patches/ebtables.diff
    4.14 +$(LINUX_DIR)/include/linux/autoconf.h: patches/tmp/ebtables.diff
    4.15  $(LINUX_DIR)/include/linux/autoconf.h: pristine-linux-$(LINUX_VER)
    4.16  	rm -rf $(LINUX_DIR)
    4.17  	cp -al pristine-linux-$(LINUX_VER) $(LINUX_DIR)
    4.18 @@ -33,7 +33,7 @@ patches/ebtables.diff:
    4.19  	  sed -e 's/^EXTRAVERSION.*/&-$(EXTRAVERSION)/' Makefile >Mk.tmp ; \
    4.20  	  rm -f Makefile ; mv Mk.tmp Makefile )
    4.21  	# add ebtables patch
    4.22 -	( cd $(LINUX_DIR) ; patch -p1 -F3 < ../patches/ebtables.diff )
    4.23 +	( cd $(LINUX_DIR) ; patch -p1 -F3 < ../patches/tmp/ebtables.diff )
    4.24  	# Re-use config from install dir if one exits else use default config
    4.25  	[ -r $(INSTALL_DIR)/boot/config-$(FULLVERSION) ] && \
    4.26  	  cp $(INSTALL_DIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \
     5.1 --- a/linux-2.6.9-patches/agpgart.patch	Thu Nov 04 23:05:06 2004 +0000
     5.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3 @@ -1,346 +0,0 @@
     5.4 ---- linux-2.6.8.1/drivers/char/agp/ali-agp.c	2004-08-14 11:55:35.000000000 +0100
     5.5 -+++ linux-2.6.8.1-xen0/drivers/char/agp/ali-agp.c	2004-09-05 05:55:58.876495340 +0100
     5.6 -@@ -150,7 +150,7 @@
     5.7 - 	pci_read_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL, &temp);
     5.8 - 	pci_write_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL,
     5.9 - 			(((temp & ALI_CACHE_FLUSH_ADDR_MASK) |
    5.10 --			  virt_to_phys(addr)) | ALI_CACHE_FLUSH_EN ));
    5.11 -+			  virt_to_bus(addr)) | ALI_CACHE_FLUSH_EN ));
    5.12 - 	return addr;
    5.13 - }
    5.14 - 
    5.15 -@@ -174,7 +174,7 @@
    5.16 - 	pci_read_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL, &temp);
    5.17 - 	pci_write_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL,
    5.18 - 			(((temp & ALI_CACHE_FLUSH_ADDR_MASK) |
    5.19 --			  virt_to_phys(addr)) | ALI_CACHE_FLUSH_EN));
    5.20 -+			  virt_to_bus(addr)) | ALI_CACHE_FLUSH_EN));
    5.21 - 	agp_generic_destroy_page(addr);
    5.22 - }
    5.23 - 
    5.24 ---- linux-2.6.8.1/drivers/char/agp/amd-k7-agp.c	2004-08-14 11:56:24.000000000 +0100
    5.25 -+++ linux-2.6.8.1-xen0/drivers/char/agp/amd-k7-agp.c	2004-09-05 05:55:58.877495108 +0100
    5.26 -@@ -43,7 +43,7 @@
    5.27 - 
    5.28 - 	SetPageReserved(virt_to_page(page_map->real));
    5.29 - 	global_cache_flush();
    5.30 --	page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
    5.31 -+	page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
    5.32 - 					    PAGE_SIZE);
    5.33 - 	if (page_map->remapped == NULL) {
    5.34 - 		ClearPageReserved(virt_to_page(page_map->real));
    5.35 -@@ -152,7 +152,7 @@
    5.36 - 
    5.37 - 	agp_bridge->gatt_table_real = (u32 *)page_dir.real;
    5.38 - 	agp_bridge->gatt_table = (u32 *)page_dir.remapped;
    5.39 --	agp_bridge->gatt_bus_addr = virt_to_phys(page_dir.real);
    5.40 -+	agp_bridge->gatt_bus_addr = virt_to_bus(page_dir.real);
    5.41 - 
    5.42 - 	/* Get the address for the gart region.
    5.43 - 	 * This is a bus address even on the alpha, b/c its
    5.44 -@@ -166,7 +166,7 @@
    5.45 - 	/* Calculate the agp offset */
    5.46 - 	for (i = 0; i < value->num_entries / 1024; i++, addr += 0x00400000) {
    5.47 - 		page_dir.remapped[GET_PAGE_DIR_OFF(addr)] =
    5.48 --			virt_to_phys(amd_irongate_private.gatt_pages[i]->real);
    5.49 -+			virt_to_bus(amd_irongate_private.gatt_pages[i]->real);
    5.50 - 		page_dir.remapped[GET_PAGE_DIR_OFF(addr)] |= 0x00000001;
    5.51 - 	}
    5.52 - 
    5.53 ---- linux-2.6.8.1/drivers/char/agp/amd64-agp.c	2004-08-14 11:55:47.000000000 +0100
    5.54 -+++ linux-2.6.8.1-xen0/drivers/char/agp/amd64-agp.c	2004-09-05 05:55:58.877495108 +0100
    5.55 -@@ -212,7 +212,7 @@
    5.56 - 
    5.57 - static int amd_8151_configure(void)
    5.58 - {
    5.59 --	unsigned long gatt_bus = virt_to_phys(agp_bridge->gatt_table_real);
    5.60 -+	unsigned long gatt_bus = virt_to_bus(agp_bridge->gatt_table_real);
    5.61 - 
    5.62 - 	/* Configure AGP regs in each x86-64 host bridge. */
    5.63 - 	for_each_nb() {
    5.64 -@@ -521,7 +521,7 @@
    5.65 - {
    5.66 - 	struct agp_bridge_data *bridge = pci_get_drvdata(pdev);
    5.67 - 
    5.68 --	release_mem_region(virt_to_phys(bridge->gatt_table_real),
    5.69 -+	release_mem_region(virt_to_bus(bridge->gatt_table_real),
    5.70 - 			   amd64_aperture_sizes[bridge->aperture_size_idx].size);
    5.71 - 	agp_remove_bridge(bridge);
    5.72 - 	agp_put_bridge(bridge);
    5.73 ---- linux-2.6.8.1/drivers/char/agp/ati-agp.c	2004-08-14 11:55:48.000000000 +0100
    5.74 -+++ linux-2.6.8.1-xen0/drivers/char/agp/ati-agp.c	2004-09-05 05:55:58.877495108 +0100
    5.75 -@@ -64,7 +64,7 @@
    5.76 - 
    5.77 - 	/* CACHE_FLUSH(); */
    5.78 - 	global_cache_flush();
    5.79 --	page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
    5.80 -+	page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
    5.81 - 					    PAGE_SIZE);
    5.82 - 	if (page_map->remapped == NULL || err) {
    5.83 - 		ClearPageReserved(virt_to_page(page_map->real));
    5.84 ---- linux-2.6.8.1/drivers/char/agp/backend.c	2004-08-14 11:55:47.000000000 +0100
    5.85 -+++ linux-2.6.8.1-xen0/drivers/char/agp/backend.c	2004-09-05 05:55:58.878494876 +0100
    5.86 -@@ -142,7 +142,7 @@
    5.87 - 			return -ENOMEM;
    5.88 - 		}
    5.89 - 
    5.90 --		bridge->scratch_page_real = virt_to_phys(addr);
    5.91 -+		bridge->scratch_page_real = virt_to_bus(addr);
    5.92 - 		bridge->scratch_page =
    5.93 - 		    bridge->driver->mask_memory(bridge->scratch_page_real, 0);
    5.94 - 	}
    5.95 -@@ -186,7 +186,7 @@
    5.96 - err_out:
    5.97 - 	if (bridge->driver->needs_scratch_page)
    5.98 - 		bridge->driver->agp_destroy_page(
    5.99 --				phys_to_virt(bridge->scratch_page_real));
   5.100 -+				bus_to_virt(bridge->scratch_page_real));
   5.101 - 	if (got_gatt)
   5.102 - 		bridge->driver->free_gatt_table();
   5.103 - 	if (got_keylist) {
   5.104 -@@ -211,7 +211,7 @@
   5.105 - 	if (bridge->driver->agp_destroy_page &&
   5.106 - 	    bridge->driver->needs_scratch_page)
   5.107 - 		bridge->driver->agp_destroy_page(
   5.108 --				phys_to_virt(bridge->scratch_page_real));
   5.109 -+				bus_to_virt(bridge->scratch_page_real));
   5.110 - }
   5.111 - 
   5.112 - static const drm_agp_t drm_agp = {
   5.113 ---- linux-2.6.8.1/drivers/char/agp/generic.c	2004-08-14 11:55:10.000000000 +0100
   5.114 -+++ linux-2.6.8.1-xen0/drivers/char/agp/generic.c	2004-09-05 05:55:58.879494644 +0100
   5.115 -@@ -127,7 +127,7 @@
   5.116 - 	}
   5.117 - 	if (curr->page_count != 0) {
   5.118 - 		for (i = 0; i < curr->page_count; i++) {
   5.119 --			agp_bridge->driver->agp_destroy_page(phys_to_virt(curr->memory[i]));
   5.120 -+			agp_bridge->driver->agp_destroy_page(bus_to_virt(curr->memory[i]));
   5.121 - 		}
   5.122 - 	}
   5.123 - 	agp_free_key(curr->key);
   5.124 -@@ -181,7 +181,7 @@
   5.125 - 			return NULL;
   5.126 - 		}
   5.127 - 		new->memory[i] =
   5.128 --			agp_bridge->driver->mask_memory(virt_to_phys(addr), type);
   5.129 -+			agp_bridge->driver->mask_memory(virt_to_bus(addr), type);
   5.130 - 		new->page_count++;
   5.131 - 	}
   5.132 - 
   5.133 -@@ -636,6 +636,7 @@
   5.134 - 	int i;
   5.135 - 	void *temp;
   5.136 - 	struct page *page;
   5.137 -+	dma_addr_t dma;
   5.138 - 
   5.139 - 	/* The generic routines can't handle 2 level gatt's */
   5.140 - 	if (agp_bridge->driver->size_type == LVL2_APER_SIZE)
   5.141 -@@ -674,8 +675,10 @@
   5.142 - 				break;
   5.143 - 			}
   5.144 - 
   5.145 --			table = (char *) __get_free_pages(GFP_KERNEL,
   5.146 --							  page_order);
   5.147 -+			table = dma_alloc_coherent(
   5.148 -+					&agp_bridge->dev->dev,
   5.149 -+					PAGE_SIZE << page_order, &dma,
   5.150 -+					GFP_KERNEL);
   5.151 - 
   5.152 - 			if (table == NULL) {
   5.153 - 				i++;
   5.154 -@@ -706,7 +709,9 @@
   5.155 - 		size = ((struct aper_size_info_fixed *) temp)->size;
   5.156 - 		page_order = ((struct aper_size_info_fixed *) temp)->page_order;
   5.157 - 		num_entries = ((struct aper_size_info_fixed *) temp)->num_entries;
   5.158 --		table = (char *) __get_free_pages(GFP_KERNEL, page_order);
   5.159 -+		table = dma_alloc_coherent(
   5.160 -+				&agp_bridge->dev->dev,
   5.161 -+				PAGE_SIZE << page_order, &dma, GFP_KERNEL);
   5.162 - 	}
   5.163 - 
   5.164 - 	if (table == NULL)
   5.165 -@@ -721,7 +726,7 @@
   5.166 - 	agp_gatt_table = (void *)table;
   5.167 - 
   5.168 - 	agp_bridge->driver->cache_flush();
   5.169 --	agp_bridge->gatt_table = ioremap_nocache(virt_to_phys(table),
   5.170 -+	agp_bridge->gatt_table = ioremap_nocache(virt_to_bus(table),
   5.171 - 					(PAGE_SIZE * (1 << page_order)));
   5.172 - 	agp_bridge->driver->cache_flush();
   5.173 - 
   5.174 -@@ -729,11 +734,12 @@
   5.175 - 		for (page = virt_to_page(table); page <= virt_to_page(table_end); page++)
   5.176 - 			ClearPageReserved(page);
   5.177 - 
   5.178 --		free_pages((unsigned long) table, page_order);
   5.179 -+		dma_free_coherent(&agp_bridge->dev->dev, PAGE_SIZE<<page_order,
   5.180 -+					table, dma);
   5.181 - 
   5.182 - 		return -ENOMEM;
   5.183 - 	}
   5.184 --	agp_bridge->gatt_bus_addr = virt_to_phys(agp_bridge->gatt_table_real);
   5.185 -+	agp_bridge->gatt_bus_addr = virt_to_bus(table);
   5.186 - 
   5.187 - 	/* AK: bogus, should encode addresses > 4GB */
   5.188 - 	for (i = 0; i < num_entries; i++)
   5.189 -@@ -785,7 +791,8 @@
   5.190 - 	for (page = virt_to_page(table); page <= virt_to_page(table_end); page++)
   5.191 - 		ClearPageReserved(page);
   5.192 - 
   5.193 --	free_pages((unsigned long) agp_bridge->gatt_table_real, page_order);
   5.194 -+	dma_free_coherent(&agp_bridge->dev->dev, PAGE_SIZE<<page_order,
   5.195 -+		agp_bridge->gatt_table_real, agp_bridge->gatt_bus_addr);
   5.196 - 
   5.197 - 	agp_gatt_table = NULL;
   5.198 - 	agp_bridge->gatt_table = NULL;
   5.199 ---- linux-2.6.8.1/drivers/char/agp/hp-agp.c	2004-08-14 11:55:59.000000000 +0100
   5.200 -+++ linux-2.6.8.1-xen0/drivers/char/agp/hp-agp.c	2004-09-05 05:55:58.879494644 +0100
   5.201 -@@ -110,7 +110,7 @@
   5.202 - 	hp->gart_size = HP_ZX1_GART_SIZE;
   5.203 - 	hp->gatt_entries = hp->gart_size / hp->io_page_size;
   5.204 - 
   5.205 --	hp->io_pdir = phys_to_virt(INREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE));
   5.206 -+	hp->io_pdir = bus_to_virt(INREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE));
   5.207 - 	hp->gatt = &hp->io_pdir[HP_ZX1_IOVA_TO_PDIR(hp->gart_base)];
   5.208 - 
   5.209 - 	if (hp->gatt[0] != HP_ZX1_SBA_IOMMU_COOKIE) {
   5.210 -@@ -248,7 +248,7 @@
   5.211 - 	agp_bridge->mode = INREG32(hp->lba_regs, hp->lba_cap_offset + PCI_AGP_STATUS);
   5.212 - 
   5.213 - 	if (hp->io_pdir_owner) {
   5.214 --		OUTREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE, virt_to_phys(hp->io_pdir));
   5.215 -+		OUTREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE, virt_to_bus(hp->io_pdir));
   5.216 - 		OUTREG64(hp->ioc_regs, HP_ZX1_TCNFG, hp->io_tlb_ps);
   5.217 - 		OUTREG64(hp->ioc_regs, HP_ZX1_IMASK, ~(HP_ZX1_IOVA_SIZE - 1));
   5.218 - 		OUTREG64(hp->ioc_regs, HP_ZX1_IBASE, hp->iova_base | 0x1);
   5.219 ---- linux-2.6.8.1/drivers/char/agp/i460-agp.c	2004-08-14 11:55:34.000000000 +0100
   5.220 -+++ linux-2.6.8.1-xen0/drivers/char/agp/i460-agp.c	2004-09-05 05:55:58.879494644 +0100
   5.221 -@@ -371,7 +371,7 @@
   5.222 - 	}
   5.223 - 	memset(lp->alloced_map, 0, map_size);
   5.224 - 
   5.225 --	lp->paddr = virt_to_phys(lpage);
   5.226 -+	lp->paddr = virt_to_bus(lpage);
   5.227 - 	lp->refcount = 0;
   5.228 - 	atomic_add(I460_KPAGES_PER_IOPAGE, &agp_bridge->current_memory_agp);
   5.229 - 	return 0;
   5.230 -@@ -382,7 +382,7 @@
   5.231 - 	kfree(lp->alloced_map);
   5.232 - 	lp->alloced_map = NULL;
   5.233 - 
   5.234 --	free_pages((unsigned long) phys_to_virt(lp->paddr), I460_IO_PAGE_SHIFT - PAGE_SHIFT);
   5.235 -+	free_pages((unsigned long) bus_to_virt(lp->paddr), I460_IO_PAGE_SHIFT - PAGE_SHIFT);
   5.236 - 	atomic_sub(I460_KPAGES_PER_IOPAGE, &agp_bridge->current_memory_agp);
   5.237 - }
   5.238 - 
   5.239 ---- linux-2.6.8.1/drivers/char/agp/intel-agp.c	2004-08-14 11:55:32.000000000 +0100
   5.240 -+++ linux-2.6.8.1-xen0/drivers/char/agp/intel-agp.c	2004-09-05 05:55:58.880494412 +0100
   5.241 -@@ -285,7 +285,7 @@
   5.242 - 	if (new == NULL)
   5.243 - 		return NULL;
   5.244 - 
   5.245 --	new->memory[0] = virt_to_phys(addr);
   5.246 -+	new->memory[0] = virt_to_bus(addr);
   5.247 - 	if (pg_count == 4) {
   5.248 - 		/* kludge to get 4 physical pages for ARGB cursor */
   5.249 - 		new->memory[1] = new->memory[0] + PAGE_SIZE;
   5.250 -@@ -328,10 +328,10 @@
   5.251 - 	agp_free_key(curr->key);
   5.252 - 	if(curr->type == AGP_PHYS_MEMORY) {
   5.253 - 		if (curr->page_count == 4)
   5.254 --			i8xx_destroy_pages(phys_to_virt(curr->memory[0]));
   5.255 -+			i8xx_destroy_pages(bus_to_virt(curr->memory[0]));
   5.256 - 		else
   5.257 - 	   		agp_bridge->driver->agp_destroy_page(
   5.258 --				 phys_to_virt(curr->memory[0]));
   5.259 -+				 bus_to_virt(curr->memory[0]));
   5.260 - 		vfree(curr->memory);
   5.261 - 	}
   5.262 - 	kfree(curr);
   5.263 ---- linux-2.6.8.1/drivers/char/agp/intel-mch-agp.c	2004-08-14 11:54:49.000000000 +0100
   5.264 -+++ linux-2.6.8.1-xen0/drivers/char/agp/intel-mch-agp.c	2004-09-05 05:55:58.880494412 +0100
   5.265 -@@ -51,7 +51,7 @@
   5.266 - 	if (new == NULL)
   5.267 - 		return NULL;
   5.268 - 
   5.269 --	new->memory[0] = agp_bridge->driver->mask_memory(virt_to_phys(addr), type);
   5.270 -+	new->memory[0] = agp_bridge->driver->mask_memory(virt_to_bus(addr), type);
   5.271 - 	new->page_count = 1;
   5.272 - 	new->num_scratch_pages = 1;
   5.273 - 	new->type = AGP_PHYS_MEMORY;
   5.274 -@@ -63,7 +63,7 @@
   5.275 - {
   5.276 - 	agp_free_key(curr->key);
   5.277 - 	if(curr->type == AGP_PHYS_MEMORY) {
   5.278 --		agp_bridge->driver->agp_destroy_page(phys_to_virt(curr->memory[0]));
   5.279 -+		agp_bridge->driver->agp_destroy_page(bus_to_virt(curr->memory[0]));
   5.280 - 		vfree(curr->memory);
   5.281 - 	}
   5.282 - 	kfree(curr);
   5.283 ---- linux-2.6.8.1/drivers/char/agp/sworks-agp.c	2004-08-14 11:55:10.000000000 +0100
   5.284 -+++ linux-2.6.8.1-xen0/drivers/char/agp/sworks-agp.c	2004-09-05 05:55:58.881494180 +0100
   5.285 -@@ -51,7 +51,7 @@
   5.286 - 	}
   5.287 - 	SetPageReserved(virt_to_page(page_map->real));
   5.288 - 	global_cache_flush();
   5.289 --	page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real), 
   5.290 -+	page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real), 
   5.291 - 					    PAGE_SIZE);
   5.292 - 	if (page_map->remapped == NULL) {
   5.293 - 		ClearPageReserved(virt_to_page(page_map->real));
   5.294 -@@ -164,7 +164,7 @@
   5.295 - 	for(i = 0; i < 1024; i++) {
   5.296 - 		serverworks_private.scratch_dir.remapped[i] = (unsigned long) agp_bridge->scratch_page;
   5.297 - 		page_dir.remapped[i] =
   5.298 --			virt_to_phys(serverworks_private.scratch_dir.real);
   5.299 -+			virt_to_bus(serverworks_private.scratch_dir.real);
   5.300 - 		page_dir.remapped[i] |= 0x00000001;
   5.301 - 	}
   5.302 - 
   5.303 -@@ -177,7 +177,7 @@
   5.304 - 
   5.305 - 	agp_bridge->gatt_table_real = (u32 *)page_dir.real;
   5.306 - 	agp_bridge->gatt_table = (u32 *)page_dir.remapped;
   5.307 --	agp_bridge->gatt_bus_addr = virt_to_phys(page_dir.real);
   5.308 -+	agp_bridge->gatt_bus_addr = virt_to_bus(page_dir.real);
   5.309 - 
   5.310 - 	/* Get the address for the gart region.
   5.311 - 	 * This is a bus address even on the alpha, b/c its
   5.312 -@@ -191,7 +191,7 @@
   5.313 - 
   5.314 - 	for(i = 0; i < value->num_entries / 1024; i++) {
   5.315 - 		page_dir.remapped[i] =
   5.316 --			virt_to_phys(serverworks_private.gatt_pages[i]->real);
   5.317 -+			virt_to_bus(serverworks_private.gatt_pages[i]->real);
   5.318 - 		page_dir.remapped[i] |= 0x00000001;
   5.319 - 	}
   5.320 - 
   5.321 ---- linux-2.6.8.1/drivers/char/agp/uninorth-agp.c	2004-08-14 11:55:32.000000000 +0100
   5.322 -+++ linux-2.6.8.1-xen0/drivers/char/agp/uninorth-agp.c	2004-09-05 05:55:58.881494180 +0100
   5.323 -@@ -200,7 +200,7 @@
   5.324 - 
   5.325 - 	agp_bridge->gatt_table_real = (u32 *) table;
   5.326 - 	agp_bridge->gatt_table = (u32 *)table;
   5.327 --	agp_bridge->gatt_bus_addr = virt_to_phys(table);
   5.328 -+	agp_bridge->gatt_bus_addr = virt_to_bus(table);
   5.329 - 
   5.330 - 	for (i = 0; i < num_entries; i++) {
   5.331 - 		agp_bridge->gatt_table[i] =
   5.332 ---- linux-2.6.8.1/include/asm-i386/agp.h	2004-08-14 11:54:47.000000000 +0100
   5.333 -+++ linux-2.6.8.1-xen0/include/asm-i386/agp.h	2004-09-05 05:57:26.040268956 +0100
   5.334 -@@ -3,6 +3,7 @@
   5.335 - 
   5.336 - #include <asm/pgtable.h>
   5.337 - #include <asm/cacheflush.h>
   5.338 -+#include <asm/system.h>
   5.339 - 
   5.340 - /* 
   5.341 -  * Functions to keep the agpgart mappings coherent with the MMU.
   5.342 -@@ -19,6 +20,6 @@
   5.343 - /* Could use CLFLUSH here if the cpu supports it. But then it would
   5.344 -    need to be called for each cacheline of the whole page so it may not be 
   5.345 -    worth it. Would need a page for it. */
   5.346 --#define flush_agp_cache() asm volatile("wbinvd":::"memory")
   5.347 -+#define flush_agp_cache() wbinvd()
   5.348 - 
   5.349 - #endif
     6.1 --- a/linux-2.6.9-patches/drm.patch	Thu Nov 04 23:05:06 2004 +0000
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,11 +0,0 @@
     6.4 ---- linux-2.6.8.1/drivers/char/drm/ati_pcigart.h	2004-08-14 11:56:14.000000000 +0100
     6.5 -+++ linux-2.6.8.1-xen0/drivers/char/drm/ati_pcigart.h	2004-09-05 06:14:51.751782846 +0100
     6.6 -@@ -158,7 +158,7 @@
     6.7 - 	ret = 1;
     6.8 - 
     6.9 - #if defined(__i386__) || defined(__x86_64__)
    6.10 --	asm volatile ( "wbinvd" ::: "memory" );
    6.11 -+	wbinvd();
    6.12 - #else
    6.13 - 	mb();
    6.14 - #endif
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/patches/linux-2.6.9/agpgart.patch	Thu Nov 04 23:34:02 2004 +0000
     7.3 @@ -0,0 +1,346 @@
     7.4 +--- linux-2.6.8.1/drivers/char/agp/ali-agp.c	2004-08-14 11:55:35.000000000 +0100
     7.5 ++++ linux-2.6.8.1-xen0/drivers/char/agp/ali-agp.c	2004-09-05 05:55:58.876495340 +0100
     7.6 +@@ -150,7 +150,7 @@
     7.7 + 	pci_read_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL, &temp);
     7.8 + 	pci_write_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL,
     7.9 + 			(((temp & ALI_CACHE_FLUSH_ADDR_MASK) |
    7.10 +-			  virt_to_phys(addr)) | ALI_CACHE_FLUSH_EN ));
    7.11 ++			  virt_to_bus(addr)) | ALI_CACHE_FLUSH_EN ));
    7.12 + 	return addr;
    7.13 + }
    7.14 + 
    7.15 +@@ -174,7 +174,7 @@
    7.16 + 	pci_read_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL, &temp);
    7.17 + 	pci_write_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL,
    7.18 + 			(((temp & ALI_CACHE_FLUSH_ADDR_MASK) |
    7.19 +-			  virt_to_phys(addr)) | ALI_CACHE_FLUSH_EN));
    7.20 ++			  virt_to_bus(addr)) | ALI_CACHE_FLUSH_EN));
    7.21 + 	agp_generic_destroy_page(addr);
    7.22 + }
    7.23 + 
    7.24 +--- linux-2.6.8.1/drivers/char/agp/amd-k7-agp.c	2004-08-14 11:56:24.000000000 +0100
    7.25 ++++ linux-2.6.8.1-xen0/drivers/char/agp/amd-k7-agp.c	2004-09-05 05:55:58.877495108 +0100
    7.26 +@@ -43,7 +43,7 @@
    7.27 + 
    7.28 + 	SetPageReserved(virt_to_page(page_map->real));
    7.29 + 	global_cache_flush();
    7.30 +-	page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
    7.31 ++	page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
    7.32 + 					    PAGE_SIZE);
    7.33 + 	if (page_map->remapped == NULL) {
    7.34 + 		ClearPageReserved(virt_to_page(page_map->real));
    7.35 +@@ -152,7 +152,7 @@
    7.36 + 
    7.37 + 	agp_bridge->gatt_table_real = (u32 *)page_dir.real;
    7.38 + 	agp_bridge->gatt_table = (u32 *)page_dir.remapped;
    7.39 +-	agp_bridge->gatt_bus_addr = virt_to_phys(page_dir.real);
    7.40 ++	agp_bridge->gatt_bus_addr = virt_to_bus(page_dir.real);
    7.41 + 
    7.42 + 	/* Get the address for the gart region.
    7.43 + 	 * This is a bus address even on the alpha, b/c its
    7.44 +@@ -166,7 +166,7 @@
    7.45 + 	/* Calculate the agp offset */
    7.46 + 	for (i = 0; i < value->num_entries / 1024; i++, addr += 0x00400000) {
    7.47 + 		page_dir.remapped[GET_PAGE_DIR_OFF(addr)] =
    7.48 +-			virt_to_phys(amd_irongate_private.gatt_pages[i]->real);
    7.49 ++			virt_to_bus(amd_irongate_private.gatt_pages[i]->real);
    7.50 + 		page_dir.remapped[GET_PAGE_DIR_OFF(addr)] |= 0x00000001;
    7.51 + 	}
    7.52 + 
    7.53 +--- linux-2.6.8.1/drivers/char/agp/amd64-agp.c	2004-08-14 11:55:47.000000000 +0100
    7.54 ++++ linux-2.6.8.1-xen0/drivers/char/agp/amd64-agp.c	2004-09-05 05:55:58.877495108 +0100
    7.55 +@@ -212,7 +212,7 @@
    7.56 + 
    7.57 + static int amd_8151_configure(void)
    7.58 + {
    7.59 +-	unsigned long gatt_bus = virt_to_phys(agp_bridge->gatt_table_real);
    7.60 ++	unsigned long gatt_bus = virt_to_bus(agp_bridge->gatt_table_real);
    7.61 + 
    7.62 + 	/* Configure AGP regs in each x86-64 host bridge. */
    7.63 + 	for_each_nb() {
    7.64 +@@ -521,7 +521,7 @@
    7.65 + {
    7.66 + 	struct agp_bridge_data *bridge = pci_get_drvdata(pdev);
    7.67 + 
    7.68 +-	release_mem_region(virt_to_phys(bridge->gatt_table_real),
    7.69 ++	release_mem_region(virt_to_bus(bridge->gatt_table_real),
    7.70 + 			   amd64_aperture_sizes[bridge->aperture_size_idx].size);
    7.71 + 	agp_remove_bridge(bridge);
    7.72 + 	agp_put_bridge(bridge);
    7.73 +--- linux-2.6.8.1/drivers/char/agp/ati-agp.c	2004-08-14 11:55:48.000000000 +0100
    7.74 ++++ linux-2.6.8.1-xen0/drivers/char/agp/ati-agp.c	2004-09-05 05:55:58.877495108 +0100
    7.75 +@@ -64,7 +64,7 @@
    7.76 + 
    7.77 + 	/* CACHE_FLUSH(); */
    7.78 + 	global_cache_flush();
    7.79 +-	page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
    7.80 ++	page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
    7.81 + 					    PAGE_SIZE);
    7.82 + 	if (page_map->remapped == NULL || err) {
    7.83 + 		ClearPageReserved(virt_to_page(page_map->real));
    7.84 +--- linux-2.6.8.1/drivers/char/agp/backend.c	2004-08-14 11:55:47.000000000 +0100
    7.85 ++++ linux-2.6.8.1-xen0/drivers/char/agp/backend.c	2004-09-05 05:55:58.878494876 +0100
    7.86 +@@ -142,7 +142,7 @@
    7.87 + 			return -ENOMEM;
    7.88 + 		}
    7.89 + 
    7.90 +-		bridge->scratch_page_real = virt_to_phys(addr);
    7.91 ++		bridge->scratch_page_real = virt_to_bus(addr);
    7.92 + 		bridge->scratch_page =
    7.93 + 		    bridge->driver->mask_memory(bridge->scratch_page_real, 0);
    7.94 + 	}
    7.95 +@@ -186,7 +186,7 @@
    7.96 + err_out:
    7.97 + 	if (bridge->driver->needs_scratch_page)
    7.98 + 		bridge->driver->agp_destroy_page(
    7.99 +-				phys_to_virt(bridge->scratch_page_real));
   7.100 ++				bus_to_virt(bridge->scratch_page_real));
   7.101 + 	if (got_gatt)
   7.102 + 		bridge->driver->free_gatt_table();
   7.103 + 	if (got_keylist) {
   7.104 +@@ -211,7 +211,7 @@
   7.105 + 	if (bridge->driver->agp_destroy_page &&
   7.106 + 	    bridge->driver->needs_scratch_page)
   7.107 + 		bridge->driver->agp_destroy_page(
   7.108 +-				phys_to_virt(bridge->scratch_page_real));
   7.109 ++				bus_to_virt(bridge->scratch_page_real));
   7.110 + }
   7.111 + 
   7.112 + static const drm_agp_t drm_agp = {
   7.113 +--- linux-2.6.8.1/drivers/char/agp/generic.c	2004-08-14 11:55:10.000000000 +0100
   7.114 ++++ linux-2.6.8.1-xen0/drivers/char/agp/generic.c	2004-09-05 05:55:58.879494644 +0100
   7.115 +@@ -127,7 +127,7 @@
   7.116 + 	}
   7.117 + 	if (curr->page_count != 0) {
   7.118 + 		for (i = 0; i < curr->page_count; i++) {
   7.119 +-			agp_bridge->driver->agp_destroy_page(phys_to_virt(curr->memory[i]));
   7.120 ++			agp_bridge->driver->agp_destroy_page(bus_to_virt(curr->memory[i]));
   7.121 + 		}
   7.122 + 	}
   7.123 + 	agp_free_key(curr->key);
   7.124 +@@ -181,7 +181,7 @@
   7.125 + 			return NULL;
   7.126 + 		}
   7.127 + 		new->memory[i] =
   7.128 +-			agp_bridge->driver->mask_memory(virt_to_phys(addr), type);
   7.129 ++			agp_bridge->driver->mask_memory(virt_to_bus(addr), type);
   7.130 + 		new->page_count++;
   7.131 + 	}
   7.132 + 
   7.133 +@@ -636,6 +636,7 @@
   7.134 + 	int i;
   7.135 + 	void *temp;
   7.136 + 	struct page *page;
   7.137 ++	dma_addr_t dma;
   7.138 + 
   7.139 + 	/* The generic routines can't handle 2 level gatt's */
   7.140 + 	if (agp_bridge->driver->size_type == LVL2_APER_SIZE)
   7.141 +@@ -674,8 +675,10 @@
   7.142 + 				break;
   7.143 + 			}
   7.144 + 
   7.145 +-			table = (char *) __get_free_pages(GFP_KERNEL,
   7.146 +-							  page_order);
   7.147 ++			table = dma_alloc_coherent(
   7.148 ++					&agp_bridge->dev->dev,
   7.149 ++					PAGE_SIZE << page_order, &dma,
   7.150 ++					GFP_KERNEL);
   7.151 + 
   7.152 + 			if (table == NULL) {
   7.153 + 				i++;
   7.154 +@@ -706,7 +709,9 @@
   7.155 + 		size = ((struct aper_size_info_fixed *) temp)->size;
   7.156 + 		page_order = ((struct aper_size_info_fixed *) temp)->page_order;
   7.157 + 		num_entries = ((struct aper_size_info_fixed *) temp)->num_entries;
   7.158 +-		table = (char *) __get_free_pages(GFP_KERNEL, page_order);
   7.159 ++		table = dma_alloc_coherent(
   7.160 ++				&agp_bridge->dev->dev,
   7.161 ++				PAGE_SIZE << page_order, &dma, GFP_KERNEL);
   7.162 + 	}
   7.163 + 
   7.164 + 	if (table == NULL)
   7.165 +@@ -721,7 +726,7 @@
   7.166 + 	agp_gatt_table = (void *)table;
   7.167 + 
   7.168 + 	agp_bridge->driver->cache_flush();
   7.169 +-	agp_bridge->gatt_table = ioremap_nocache(virt_to_phys(table),
   7.170 ++	agp_bridge->gatt_table = ioremap_nocache(virt_to_bus(table),
   7.171 + 					(PAGE_SIZE * (1 << page_order)));
   7.172 + 	agp_bridge->driver->cache_flush();
   7.173 + 
   7.174 +@@ -729,11 +734,12 @@
   7.175 + 		for (page = virt_to_page(table); page <= virt_to_page(table_end); page++)
   7.176 + 			ClearPageReserved(page);
   7.177 + 
   7.178 +-		free_pages((unsigned long) table, page_order);
   7.179 ++		dma_free_coherent(&agp_bridge->dev->dev, PAGE_SIZE<<page_order,
   7.180 ++					table, dma);
   7.181 + 
   7.182 + 		return -ENOMEM;
   7.183 + 	}
   7.184 +-	agp_bridge->gatt_bus_addr = virt_to_phys(agp_bridge->gatt_table_real);
   7.185 ++	agp_bridge->gatt_bus_addr = virt_to_bus(table);
   7.186 + 
   7.187 + 	/* AK: bogus, should encode addresses > 4GB */
   7.188 + 	for (i = 0; i < num_entries; i++)
   7.189 +@@ -785,7 +791,8 @@
   7.190 + 	for (page = virt_to_page(table); page <= virt_to_page(table_end); page++)
   7.191 + 		ClearPageReserved(page);
   7.192 + 
   7.193 +-	free_pages((unsigned long) agp_bridge->gatt_table_real, page_order);
   7.194 ++	dma_free_coherent(&agp_bridge->dev->dev, PAGE_SIZE<<page_order,
   7.195 ++		agp_bridge->gatt_table_real, agp_bridge->gatt_bus_addr);
   7.196 + 
   7.197 + 	agp_gatt_table = NULL;
   7.198 + 	agp_bridge->gatt_table = NULL;
   7.199 +--- linux-2.6.8.1/drivers/char/agp/hp-agp.c	2004-08-14 11:55:59.000000000 +0100
   7.200 ++++ linux-2.6.8.1-xen0/drivers/char/agp/hp-agp.c	2004-09-05 05:55:58.879494644 +0100
   7.201 +@@ -110,7 +110,7 @@
   7.202 + 	hp->gart_size = HP_ZX1_GART_SIZE;
   7.203 + 	hp->gatt_entries = hp->gart_size / hp->io_page_size;
   7.204 + 
   7.205 +-	hp->io_pdir = phys_to_virt(INREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE));
   7.206 ++	hp->io_pdir = bus_to_virt(INREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE));
   7.207 + 	hp->gatt = &hp->io_pdir[HP_ZX1_IOVA_TO_PDIR(hp->gart_base)];
   7.208 + 
   7.209 + 	if (hp->gatt[0] != HP_ZX1_SBA_IOMMU_COOKIE) {
   7.210 +@@ -248,7 +248,7 @@
   7.211 + 	agp_bridge->mode = INREG32(hp->lba_regs, hp->lba_cap_offset + PCI_AGP_STATUS);
   7.212 + 
   7.213 + 	if (hp->io_pdir_owner) {
   7.214 +-		OUTREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE, virt_to_phys(hp->io_pdir));
   7.215 ++		OUTREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE, virt_to_bus(hp->io_pdir));
   7.216 + 		OUTREG64(hp->ioc_regs, HP_ZX1_TCNFG, hp->io_tlb_ps);
   7.217 + 		OUTREG64(hp->ioc_regs, HP_ZX1_IMASK, ~(HP_ZX1_IOVA_SIZE - 1));
   7.218 + 		OUTREG64(hp->ioc_regs, HP_ZX1_IBASE, hp->iova_base | 0x1);
   7.219 +--- linux-2.6.8.1/drivers/char/agp/i460-agp.c	2004-08-14 11:55:34.000000000 +0100
   7.220 ++++ linux-2.6.8.1-xen0/drivers/char/agp/i460-agp.c	2004-09-05 05:55:58.879494644 +0100
   7.221 +@@ -371,7 +371,7 @@
   7.222 + 	}
   7.223 + 	memset(lp->alloced_map, 0, map_size);
   7.224 + 
   7.225 +-	lp->paddr = virt_to_phys(lpage);
   7.226 ++	lp->paddr = virt_to_bus(lpage);
   7.227 + 	lp->refcount = 0;
   7.228 + 	atomic_add(I460_KPAGES_PER_IOPAGE, &agp_bridge->current_memory_agp);
   7.229 + 	return 0;
   7.230 +@@ -382,7 +382,7 @@
   7.231 + 	kfree(lp->alloced_map);
   7.232 + 	lp->alloced_map = NULL;
   7.233 + 
   7.234 +-	free_pages((unsigned long) phys_to_virt(lp->paddr), I460_IO_PAGE_SHIFT - PAGE_SHIFT);
   7.235 ++	free_pages((unsigned long) bus_to_virt(lp->paddr), I460_IO_PAGE_SHIFT - PAGE_SHIFT);
   7.236 + 	atomic_sub(I460_KPAGES_PER_IOPAGE, &agp_bridge->current_memory_agp);
   7.237 + }
   7.238 + 
   7.239 +--- linux-2.6.8.1/drivers/char/agp/intel-agp.c	2004-08-14 11:55:32.000000000 +0100
   7.240 ++++ linux-2.6.8.1-xen0/drivers/char/agp/intel-agp.c	2004-09-05 05:55:58.880494412 +0100
   7.241 +@@ -285,7 +285,7 @@
   7.242 + 	if (new == NULL)
   7.243 + 		return NULL;
   7.244 + 
   7.245 +-	new->memory[0] = virt_to_phys(addr);
   7.246 ++	new->memory[0] = virt_to_bus(addr);
   7.247 + 	if (pg_count == 4) {
   7.248 + 		/* kludge to get 4 physical pages for ARGB cursor */
   7.249 + 		new->memory[1] = new->memory[0] + PAGE_SIZE;
   7.250 +@@ -328,10 +328,10 @@
   7.251 + 	agp_free_key(curr->key);
   7.252 + 	if(curr->type == AGP_PHYS_MEMORY) {
   7.253 + 		if (curr->page_count == 4)
   7.254 +-			i8xx_destroy_pages(phys_to_virt(curr->memory[0]));
   7.255 ++			i8xx_destroy_pages(bus_to_virt(curr->memory[0]));
   7.256 + 		else
   7.257 + 	   		agp_bridge->driver->agp_destroy_page(
   7.258 +-				 phys_to_virt(curr->memory[0]));
   7.259 ++				 bus_to_virt(curr->memory[0]));
   7.260 + 		vfree(curr->memory);
   7.261 + 	}
   7.262 + 	kfree(curr);
   7.263 +--- linux-2.6.8.1/drivers/char/agp/intel-mch-agp.c	2004-08-14 11:54:49.000000000 +0100
   7.264 ++++ linux-2.6.8.1-xen0/drivers/char/agp/intel-mch-agp.c	2004-09-05 05:55:58.880494412 +0100
   7.265 +@@ -51,7 +51,7 @@
   7.266 + 	if (new == NULL)
   7.267 + 		return NULL;
   7.268 + 
   7.269 +-	new->memory[0] = agp_bridge->driver->mask_memory(virt_to_phys(addr), type);
   7.270 ++	new->memory[0] = agp_bridge->driver->mask_memory(virt_to_bus(addr), type);
   7.271 + 	new->page_count = 1;
   7.272 + 	new->num_scratch_pages = 1;
   7.273 + 	new->type = AGP_PHYS_MEMORY;
   7.274 +@@ -63,7 +63,7 @@
   7.275 + {
   7.276 + 	agp_free_key(curr->key);
   7.277 + 	if(curr->type == AGP_PHYS_MEMORY) {
   7.278 +-		agp_bridge->driver->agp_destroy_page(phys_to_virt(curr->memory[0]));
   7.279 ++		agp_bridge->driver->agp_destroy_page(bus_to_virt(curr->memory[0]));
   7.280 + 		vfree(curr->memory);
   7.281 + 	}
   7.282 + 	kfree(curr);
   7.283 +--- linux-2.6.8.1/drivers/char/agp/sworks-agp.c	2004-08-14 11:55:10.000000000 +0100
   7.284 ++++ linux-2.6.8.1-xen0/drivers/char/agp/sworks-agp.c	2004-09-05 05:55:58.881494180 +0100
   7.285 +@@ -51,7 +51,7 @@
   7.286 + 	}
   7.287 + 	SetPageReserved(virt_to_page(page_map->real));
   7.288 + 	global_cache_flush();
   7.289 +-	page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real), 
   7.290 ++	page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real), 
   7.291 + 					    PAGE_SIZE);
   7.292 + 	if (page_map->remapped == NULL) {
   7.293 + 		ClearPageReserved(virt_to_page(page_map->real));
   7.294 +@@ -164,7 +164,7 @@
   7.295 + 	for(i = 0; i < 1024; i++) {
   7.296 + 		serverworks_private.scratch_dir.remapped[i] = (unsigned long) agp_bridge->scratch_page;
   7.297 + 		page_dir.remapped[i] =
   7.298 +-			virt_to_phys(serverworks_private.scratch_dir.real);
   7.299 ++			virt_to_bus(serverworks_private.scratch_dir.real);
   7.300 + 		page_dir.remapped[i] |= 0x00000001;
   7.301 + 	}
   7.302 + 
   7.303 +@@ -177,7 +177,7 @@
   7.304 + 
   7.305 + 	agp_bridge->gatt_table_real = (u32 *)page_dir.real;
   7.306 + 	agp_bridge->gatt_table = (u32 *)page_dir.remapped;
   7.307 +-	agp_bridge->gatt_bus_addr = virt_to_phys(page_dir.real);
   7.308 ++	agp_bridge->gatt_bus_addr = virt_to_bus(page_dir.real);
   7.309 + 
   7.310 + 	/* Get the address for the gart region.
   7.311 + 	 * This is a bus address even on the alpha, b/c its
   7.312 +@@ -191,7 +191,7 @@
   7.313 + 
   7.314 + 	for(i = 0; i < value->num_entries / 1024; i++) {
   7.315 + 		page_dir.remapped[i] =
   7.316 +-			virt_to_phys(serverworks_private.gatt_pages[i]->real);
   7.317 ++			virt_to_bus(serverworks_private.gatt_pages[i]->real);
   7.318 + 		page_dir.remapped[i] |= 0x00000001;
   7.319 + 	}
   7.320 + 
   7.321 +--- linux-2.6.8.1/drivers/char/agp/uninorth-agp.c	2004-08-14 11:55:32.000000000 +0100
   7.322 ++++ linux-2.6.8.1-xen0/drivers/char/agp/uninorth-agp.c	2004-09-05 05:55:58.881494180 +0100
   7.323 +@@ -200,7 +200,7 @@
   7.324 + 
   7.325 + 	agp_bridge->gatt_table_real = (u32 *) table;
   7.326 + 	agp_bridge->gatt_table = (u32 *)table;
   7.327 +-	agp_bridge->gatt_bus_addr = virt_to_phys(table);
   7.328 ++	agp_bridge->gatt_bus_addr = virt_to_bus(table);
   7.329 + 
   7.330 + 	for (i = 0; i < num_entries; i++) {
   7.331 + 		agp_bridge->gatt_table[i] =
   7.332 +--- linux-2.6.8.1/include/asm-i386/agp.h	2004-08-14 11:54:47.000000000 +0100
   7.333 ++++ linux-2.6.8.1-xen0/include/asm-i386/agp.h	2004-09-05 05:57:26.040268956 +0100
   7.334 +@@ -3,6 +3,7 @@
   7.335 + 
   7.336 + #include <asm/pgtable.h>
   7.337 + #include <asm/cacheflush.h>
   7.338 ++#include <asm/system.h>
   7.339 + 
   7.340 + /* 
   7.341 +  * Functions to keep the agpgart mappings coherent with the MMU.
   7.342 +@@ -19,6 +20,6 @@
   7.343 + /* Could use CLFLUSH here if the cpu supports it. But then it would
   7.344 +    need to be called for each cacheline of the whole page so it may not be 
   7.345 +    worth it. Would need a page for it. */
   7.346 +-#define flush_agp_cache() asm volatile("wbinvd":::"memory")
   7.347 ++#define flush_agp_cache() wbinvd()
   7.348 + 
   7.349 + #endif
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/patches/linux-2.6.9/drm.patch	Thu Nov 04 23:34:02 2004 +0000
     8.3 @@ -0,0 +1,11 @@
     8.4 +--- linux-2.6.8.1/drivers/char/drm/ati_pcigart.h	2004-08-14 11:56:14.000000000 +0100
     8.5 ++++ linux-2.6.8.1-xen0/drivers/char/drm/ati_pcigart.h	2004-09-05 06:14:51.751782846 +0100
     8.6 +@@ -158,7 +158,7 @@
     8.7 + 	ret = 1;
     8.8 + 
     8.9 + #if defined(__i386__) || defined(__x86_64__)
    8.10 +-	asm volatile ( "wbinvd" ::: "memory" );
    8.11 ++	wbinvd();
    8.12 + #else
    8.13 + 	mb();
    8.14 + #endif
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/patches/linux-2.6.9/nettel.patch	Thu Nov 04 23:34:02 2004 +0000
     9.3 @@ -0,0 +1,30 @@
     9.4 +diff -ru linux-2.6.8.1/drivers/mtd/maps/nettel.c linux-2.6.8.1-xen0/drivers/mtd/maps/nettel.c
     9.5 +--- linux-2.6.8.1/drivers/mtd/maps/nettel.c	2004-10-21 15:59:29.000000000 -0600
     9.6 ++++ linux-2.6.8.1-xen0/drivers/mtd/maps/nettel.c	2004-10-22 09:12:17.000000000 -0600
     9.7 +@@ -270,7 +270,7 @@
     9.8 + 	maxsize = AMD_WINDOW_MAXSIZE;
     9.9 + 
    9.10 + 	*amdpar = SC520_PAR(SC520_PAR_BOOTCS, amdaddr, maxsize);
    9.11 +-	__asm__ ("wbinvd");
    9.12 ++	wbinvd();
    9.13 + 
    9.14 + 	nettel_amd_map.phys = amdaddr;
    9.15 + 	nettel_amd_map.virt = (unsigned long)
    9.16 +@@ -382,7 +382,7 @@
    9.17 + 	 */
    9.18 + 	intel1addr = intel0addr + intel0size;
    9.19 + 	*intel1par = SC520_PAR(intel1cs, intel1addr, maxsize);
    9.20 +-	__asm__ ("wbinvd");
    9.21 ++	wbinvd();
    9.22 + 
    9.23 + 	maxsize += intel0size;
    9.24 + 
    9.25 +@@ -408,7 +408,7 @@
    9.26 + 	intel1size = intel_mtd->size - intel0size;
    9.27 + 	if (intel1size > 0) {
    9.28 + 		*intel1par = SC520_PAR(intel1cs, intel1addr, intel1size);
    9.29 +-		__asm__ ("wbinvd");
    9.30 ++		wbinvd();
    9.31 + 	} else {
    9.32 + 		*intel1par = 0;
    9.33 + 	}