All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jijiang Liu <jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: dev-VfR2kkLFssw@public.gmane.org
Subject: [PATCH]xen:support Dom0 driver for Linux kernel 3.13.0 and later
Date: Tue,  3 Jun 2014 20:59:33 +0800	[thread overview]
Message-ID: <1401800373-6483-1-git-send-email-jijiang.liu@intel.com> (raw)

Since Linux kernel version 3.13.0, the xen_create/destroy_contiguous_region() API has been changed,
and the first parameter is physical address in the API.

Signed-off-by: Jijiang Liu <jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Acked-by: Huawei Xie <huawei.xie-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Tested-by: Heng Ding <hengx.ding-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
 lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c |   24 ++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c b/lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c
index c254300..a91c7ec 100644
--- a/lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c
+++ b/lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c
@@ -64,6 +64,7 @@
 #include <linux/errno.h>
 #include <linux/vmalloc.h>
 #include <linux/mm.h>
+#include <linux/version.h>
  
 #include <xen/xen.h>
 #include <xen/page.h>
@@ -262,6 +263,7 @@ dom0_memory_free(uint32_t rsv_size)
 	for (i = 0; i < dom0_dev.num_bigblock * 2; i += 2) {
 		vstart = rsv_mm_info[i].vir_addr;
 		if (vstart) {
+		#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
 			if (rsv_mm_info[i].exchange_flag)
 				xen_destroy_contiguous_region(vstart,
 						DOM0_CONTIG_NUM_ORDER);
@@ -269,6 +271,17 @@ dom0_memory_free(uint32_t rsv_size)
 				xen_destroy_contiguous_region(vstart +
 						DOM0_MEMBLOCK_SIZE,
 						DOM0_CONTIG_NUM_ORDER);
+		#else
+			if (rsv_mm_info[i].exchange_flag)
+				xen_destroy_contiguous_region(rsv_mm_info[i].pfn
+					* PAGE_SIZE,
+					DOM0_CONTIG_NUM_ORDER);
+			if (rsv_mm_info[i + 1].exchange_flag)
+				xen_destroy_contiguous_region(rsv_mm_info[i].pfn
+					* PAGE_SIZE + DOM0_MEMBLOCK_SIZE,
+					DOM0_CONTIG_NUM_ORDER);
+		#endif
+
 			size = DOM0_MEMBLOCK_SIZE * 2;
 			vaddr = vstart;
 			while (size > 0) {
@@ -381,6 +394,10 @@ dom0_memory_reserve(uint32_t rsv_size)
 	uint64_t pfn, vstart, vaddr;
 	uint32_t i, num_block, size, allocated_size = 0;
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)
+	dma_addr_t dma_handle;
+#endif
+
 	/* 2M as memory block */
 	num_block = rsv_size / SIZE_PER_BLOCK;
 
@@ -452,8 +469,13 @@ dom0_memory_reserve(uint32_t rsv_size)
 		 * This API is used to exchage MFN for getting a block of  
 		 * contiguous physical addresses, its maximum size is 2M.  
 		 */
+	#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
 		if (xen_create_contiguous_region(rsv_mm_info[i].vir_addr,
-			            DOM0_CONTIG_NUM_ORDER, 0) == 0) {
+				DOM0_CONTIG_NUM_ORDER, 0) == 0) {
+	#else
+		if (xen_create_contiguous_region(rsv_mm_info[i].pfn * PAGE_SIZE,
+				DOM0_CONTIG_NUM_ORDER, 0, &dma_handle) == 0) {
+	#endif
 			rsv_mm_info[i].exchange_flag = 1;
 			rsv_mm_info[i].mfn =
 				pfn_to_mfn(rsv_mm_info[i].pfn);
-- 
1.7.7.6

             reply	other threads:[~2014-06-03 12:59 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-03 12:59 Jijiang Liu [this message]
     [not found] ` <1401800373-6483-1-git-send-email-jijiang.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-09 15:55   ` [PATCH]xen:support Dom0 driver for Linux kernel 3.13.0 and later Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1401800373-6483-1-git-send-email-jijiang.liu@intel.com \
    --to=jijiang.liu-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.