WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [PV-on-HVM] Make PV drivers on HVM kernel

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [PV-on-HVM] Make PV drivers on HVM kernels work on older kernels after
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 23 Jan 2007 12:05:08 -0800
Delivery-date: Tue, 23 Jan 2007 12:05:19 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxxxxx>
# Date 1169485827 0
# Node ID 687b1120765e0aebabc1d0a6bfbae2b9c4948aca
# Parent  dd55107d4a679512c08d2c426f4876f424a3ae93
[PV-on-HVM] Make PV drivers on HVM kernels work on older kernels after
update to 2.6.18.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxxxxx>
---
 linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c              |    8 ++++++
 linux-2.6-xen-sparse/drivers/xen/core/gnttab.c                    |    2 -
 unmodified_drivers/linux-2.6/compat-include/xen/platform-compat.h |   11 
++++++++
 unmodified_drivers/linux-2.6/platform-pci/platform-pci.c          |   13 
++++++++--
 4 files changed, 31 insertions(+), 3 deletions(-)

diff -r dd55107d4a67 -r 687b1120765e 
linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c      Mon Jan 22 
17:07:16 2007 +0000
+++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c      Mon Jan 22 
17:10:27 2007 +0000
@@ -272,13 +272,21 @@ static void backend_changed(struct xenbu
                if (bd == NULL)
                        xenbus_dev_fatal(dev, -ENODEV, "bdget failed");
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17)
+               down(&bd->bd_sem);
+#else
                mutex_lock(&bd->bd_mutex);
+#endif
                if (info->users > 0)
                        xenbus_dev_error(dev, -EBUSY,
                                         "Device in use; refusing to close");
                else
                        blkfront_closing(dev);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17)
+               up(&bd->bd_sem);
+#else
                mutex_unlock(&bd->bd_mutex);
+#endif
                bdput(bd);
                break;
        }
diff -r dd55107d4a67 -r 687b1120765e 
linux-2.6-xen-sparse/drivers/xen/core/gnttab.c
--- a/linux-2.6-xen-sparse/drivers/xen/core/gnttab.c    Mon Jan 22 17:07:16 
2007 +0000
+++ b/linux-2.6-xen-sparse/drivers/xen/core/gnttab.c    Mon Jan 22 17:10:27 
2007 +0000
@@ -464,7 +464,7 @@ int gnttab_suspend(void)
 
 #endif /* !CONFIG_XEN */
 
-int __init gnttab_init(void)
+int __devinit gnttab_init(void)
 {
        int i;
 
diff -r dd55107d4a67 -r 687b1120765e 
unmodified_drivers/linux-2.6/compat-include/xen/platform-compat.h
--- a/unmodified_drivers/linux-2.6/compat-include/xen/platform-compat.h Mon Jan 
22 17:07:16 2007 +0000
+++ b/unmodified_drivers/linux-2.6/compat-include/xen/platform-compat.h Mon Jan 
22 17:10:27 2007 +0000
@@ -40,6 +40,13 @@
 #define gfp_t unsigned
 #endif
 
+#if defined (_LINUX_NOTIFIER_H) && !defined ATOMIC_NOTIFIER_HEAD
+#define ATOMIC_NOTIFIER_HEAD(name) struct notifier_block *name
+#define atomic_notifier_chain_register(chain,nb) 
notifier_chain_register(chain,nb)
+#define atomic_notifier_chain_unregister(chain,nb) 
notifier_chain_unregister(chain,nb)
+#define atomic_notifier_call_chain(chain,val,v) 
notifier_call_chain(chain,val,v)
+#endif
+
 #if defined(_LINUX_FS_H) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9)
 #define nonseekable_open(inode, filp) /* Nothing to do */
 #endif
@@ -69,4 +76,8 @@ extern char *kasprintf(gfp_t gfp, const 
        __attribute__ ((format (printf, 2, 3)));
 #endif
 
+#if defined(_I386_PAGE_H) && defined(CONFIG_X86_PAE)
+#define __supported_pte_mask ~0ULL
 #endif
+
+#endif
diff -r dd55107d4a67 -r 687b1120765e 
unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
--- a/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c  Mon Jan 22 
17:07:16 2007 +0000
+++ b/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c  Mon Jan 22 
17:10:27 2007 +0000
@@ -61,7 +61,7 @@ unsigned long *phys_to_machine_mapping;
 unsigned long *phys_to_machine_mapping;
 EXPORT_SYMBOL(phys_to_machine_mapping);
 
-static int __init init_xen_info(void)
+static int __devinit init_xen_info(void)
 {
        unsigned long shared_info_frame;
        struct xen_add_to_physmap xatp;
@@ -194,14 +194,23 @@ static uint64_t get_callback_via(struct 
               rid);
        return rid | IA64_CALLBACK_IRQ_RID;
 #else /* !__ia64__ */
+       u8 pin;
+
        if (pdev->irq < 16)
                return pdev->irq; /* ISA IRQ */
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+       pin = pdev->pin;
+#else
+       pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pin);
+#endif
+
        /* We don't know the GSI. Specify the PCI INTx line instead. */
        return (((uint64_t)0x01 << 56) | /* PCI INTx identifier */
                ((uint64_t)pci_domain_nr(pdev->bus) << 32) |
                ((uint64_t)pdev->bus->number << 16) |
                ((uint64_t)(pdev->devfn & 0xff) << 8) |
-               ((uint64_t)(pdev->pin - 1) & 3));
+               ((uint64_t)(pin - 1) & 3));
 #endif
 }
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [PV-on-HVM] Make PV drivers on HVM kernels work on older kernels after, Xen patchbot-unstable <=