# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1184230389 -3600
# Node ID 5557a81f0376eacab33e2783012f698b5ff54d74
# Parent 86ac3059ab675a1c80ab02be513afb57b5e63efa
# Parent 9942e31a3ec5dae997a43c1bb43d59a238e98b61
Merge with ia64 xen tree.
---
arch/i386/kernel/swiotlb.c | 2 +-
arch/i386/mm/ioremap-xen.c | 2 +-
drivers/xen/pciback/conf_space_header.c | 18 ++++++++++++++++--
drivers/xen/xenbus/xenbus_probe.c | 2 ++
4 files changed, 20 insertions(+), 4 deletions(-)
diff -r 86ac3059ab67 -r 5557a81f0376 arch/i386/kernel/swiotlb.c
--- a/arch/i386/kernel/swiotlb.c Tue Jul 10 11:18:07 2007 -0600
+++ b/arch/i386/kernel/swiotlb.c Thu Jul 12 09:53:09 2007 +0100
@@ -389,7 +389,7 @@ map_single(struct device *hwdev, struct
return dma_addr;
}
-struct phys_addr dma_addr_to_phys_addr(char *dma_addr)
+static struct phys_addr dma_addr_to_phys_addr(char *dma_addr)
{
int index = (dma_addr - iotlb_virt_start) >> IO_TLB_SHIFT;
struct phys_addr buffer = io_tlb_orig_addr[index];
diff -r 86ac3059ab67 -r 5557a81f0376 arch/i386/mm/ioremap-xen.c
--- a/arch/i386/mm/ioremap-xen.c Tue Jul 10 11:18:07 2007 -0600
+++ b/arch/i386/mm/ioremap-xen.c Thu Jul 12 09:53:09 2007 +0100
@@ -74,7 +74,7 @@ static int __direct_remap_pfn_range(stru
/*
* Fill in the machine address: PTE ptr is done later by
- * __direct_remap_area_pages().
+ * apply_to_page_range().
*/
v->val = __pte_val(pfn_pte_ma(mfn, prot));
diff -r 86ac3059ab67 -r 5557a81f0376 drivers/xen/pciback/conf_space_header.c
--- a/drivers/xen/pciback/conf_space_header.c Tue Jul 10 11:18:07 2007 -0600
+++ b/drivers/xen/pciback/conf_space_header.c Thu Jul 12 09:53:09 2007 +0100
@@ -75,8 +75,15 @@ static int rom_write(struct pci_dev *dev
*/
if (value == ~PCI_ROM_ADDRESS_ENABLE)
bar->which = 1;
- else
+ else {
+ u32 tmpval;
+ pci_read_config_dword(dev, offset, &tmpval);
+ if (tmpval != bar->val && value == bar->val) {
+ /* Allow restoration of bar value. */
+ pci_write_config_dword(dev, offset, bar->val);
+ }
bar->which = 0;
+ }
/* Do we need to support enabling/disabling the rom address here? */
@@ -102,8 +109,15 @@ static int bar_write(struct pci_dev *dev
*/
if (value == ~0)
bar->which = 1;
- else
+ else {
+ u32 tmpval;
+ pci_read_config_dword(dev, offset, &tmpval);
+ if (tmpval != bar->val && value == bar->val) {
+ /* Allow restoration of bar value. */
+ pci_write_config_dword(dev, offset, bar->val);
+ }
bar->which = 0;
+ }
return 0;
}
diff -r 86ac3059ab67 -r 5557a81f0376 drivers/xen/xenbus/xenbus_probe.c
--- a/drivers/xen/xenbus/xenbus_probe.c Tue Jul 10 11:18:07 2007 -0600
+++ b/drivers/xen/xenbus/xenbus_probe.c Thu Jul 12 09:53:09 2007 +0100
@@ -210,6 +210,7 @@ static void otherend_changed(struct xenb
DPRINTK("state is %d (%s), %s, %s", state, xenbus_strstate(state),
dev->otherend_watch.node, vec[XS_WATCH_PATH]);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
/*
* Ignore xenbus transitions during shutdown. This prevents us doing
* work that can fail e.g., when the rootfs is gone.
@@ -223,6 +224,7 @@ static void otherend_changed(struct xenb
xenbus_frontend_closed(dev);
return;
}
+#endif
if (drv->otherend_changed)
drv->otherend_changed(dev, state);
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|