On 2.6.21 a new parameter was added to relay_open(). Handle this parameter
on kvm_relay_open() if needed.

Signed-off-by: Eduardo Habkost <[EMAIL PROTECTED]>
---
 kernel/external-module-compat-comm.h |   19 +++++++++++++++++++
 kernel/external-module-compat.c      |   22 ++++++++++++++++++++++
 kernel/x86/hack-module.awk           |    2 ++
 3 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/kernel/external-module-compat-comm.h 
b/kernel/external-module-compat-comm.h
index 8b417d4..e07a6b6 100644
--- a/kernel/external-module-compat-comm.h
+++ b/kernel/external-module-compat-comm.h
@@ -533,3 +533,22 @@ struct pci_dev;
 struct pci_dev *pci_get_bus_and_slot(unsigned int bus, unsigned int devfn);
 
 #endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)
+
+#include <linux/relay.h>
+
+/* relay_open() interface has changed on 2.6.21 */
+
+struct rchan *kvm_relay_open(const char *base_filename,
+                        struct dentry *parent,
+                        size_t subbuf_size,
+                        size_t n_subbufs,
+                        struct rchan_callbacks *cb,
+                        void *private_data);
+
+#else
+
+#define kvm_relay_open relay_open
+
+#endif
diff --git a/kernel/external-module-compat.c b/kernel/external-module-compat.c
index 4b9a9f2..c0a0355 100644
--- a/kernel/external-module-compat.c
+++ b/kernel/external-module-compat.c
@@ -276,3 +276,25 @@ int intel_iommu_found()
 }
 
 #endif
+
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)
+
+/* relay_open() interface has changed on 2.6.21 */
+
+struct rchan *kvm_relay_open(const char *base_filename,
+                        struct dentry *parent,
+                        size_t subbuf_size,
+                        size_t n_subbufs,
+                        struct rchan_callbacks *cb,
+                        void *private_data)
+{
+       struct rchan *chan = relay_open(base_filename, parent,
+                                       subbuf_size, n_subbufs,
+                                       cb);
+       if (chan)
+               chan->private_data = private_data;
+       return chan;
+}
+
+#endif
diff --git a/kernel/x86/hack-module.awk b/kernel/x86/hack-module.awk
index 7f59483..3a491cd 100644
--- a/kernel/x86/hack-module.awk
+++ b/kernel/x86/hack-module.awk
@@ -73,6 +73,8 @@ BEGIN { split("INIT_WORK tsc_khz desc_struct ldttss_desc64 
desc_ptr " \
     }
 }
 
+{ sub(/relay_open/, "kvm_relay_open") }
+
 { print }
 
 /kvm_x86_ops->run/ {
-- 
1.5.5.GIT

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to