|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC 2/6] linux-stubdomain: Compile Linux
On Wed, 17 Apr 2013, Anthony PERARD wrote:
> diff --git
> a/stubdom-linux/0001-xen-Don-t-check-for-xen_initial_domain-in-privcmd_io.patch
>
> b/stubdom-linux/0001-xen-Don-t-check-for-xen_initial_domain-in-privcmd_io.patch
> new file mode 100644
> index 0000000..627b337
> --- /dev/null
> +++
> b/stubdom-linux/0001-xen-Don-t-check-for-xen_initial_domain-in-privcmd_io.patch
> @@ -0,0 +1,39 @@
> +From 94d3502e70882a78ec3abb22379a79afc1292fb0 Mon Sep 17 00:00:00 2001
> +From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> +Date: Fri, 1 Jun 2012 15:46:39 +0100
> +Subject: [PATCH 1/2] xen: Don't check for xen_initial_domain in
> + privcmd_ioctl_mmap*.
> +
> +This prevent a stubdom from working.
> +
> +---
> + drivers/xen/privcmd.c | 6 ------
> + 1 file changed, 6 deletions(-)
> +
> +diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
> +index ccee0f1..a8d71a3 100644
> +--- a/drivers/xen/privcmd.c
> ++++ b/drivers/xen/privcmd.c
> +@@ -196,9 +196,6 @@ static long privcmd_ioctl_mmap(void __user *udata)
> + LIST_HEAD(pagelist);
> + struct mmap_mfn_state state;
> +
> +- if (!xen_initial_domain())
> +- return -EPERM;
> +-
> + if (copy_from_user(&mmapcmd, udata, sizeof(mmapcmd)))
> + return -EFAULT;
> +
> +@@ -286,9 +283,6 @@ static long privcmd_ioctl_mmap_batch(void __user *udata)
> + LIST_HEAD(pagelist);
> + struct mmap_batch_state state;
> +
> +- if (!xen_initial_domain())
> +- return -EPERM;
> +-
> + if (copy_from_user(&m, udata, sizeof(m)))
> + return -EFAULT;
> +
I think you should submit both patches separately for inclusion in the
Linux kernel.
> +Anthony PERARD
> +
> diff --git a/stubdom-linux/0002-fix-remap_area_mfn_pte_fn.patch
> b/stubdom-linux/0002-fix-remap_area_mfn_pte_fn.patch
> new file mode 100644
> index 0000000..0d5c262
> --- /dev/null
> +++ b/stubdom-linux/0002-fix-remap_area_mfn_pte_fn.patch
> @@ -0,0 +1,36 @@
> +From 61cd574f29f41046f1c709cfa9da118156babf83 Mon Sep 17 00:00:00 2001
> +From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> +Date: Fri, 1 Jun 2012 15:47:01 +0100
> +Subject: [PATCH 2/2] fix/remap_area_mfn_pte_fn
I think we need a better commit message
> +---
> + arch/x86/xen/mmu.c | 13 ++++++++++++-
> + 1 file changed, 12 insertions(+), 1 deletion(-)
> +
> +diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
> +index 69f5857..999fc82 100644
> +--- a/arch/x86/xen/mmu.c
> ++++ b/arch/x86/xen/mmu.c
> +@@ -2315,7 +2315,18 @@ static int remap_area_mfn_pte_fn(pte_t *ptep,
> pgtable_t token,
> + unsigned long addr, void *data)
> + {
> + struct remap_data *rmd = data;
> +- pte_t pte = pte_mkspecial(pfn_pte(rmd->mfn++, rmd->prot));
> ++
> ++ /* Use the native_make_pte function because we are sure we don't
> ++ * have to do any pfn->mfn translations but at the same time we
> ++ * could in a stubdom so xen_initial_domain() would return false. */
> ++ pte_t pte =
> pte_mkspecial(native_make_pte(((phys_addr_t)(rmd->mfn++) << PAGE_SHIFT)
> ++ |
> massage_pgprot(rmd->prot)));
This change is OK. The stubdom part of the comment is a bit confusing
and would benefit from a clearer explanation.
Also the indentation is wrong.
> ++ pteval_t val = pte_val_ma(pte);
> ++
> ++ if (pat_enabled && !WARN_ON(val & _PAGE_PAT)) {
> ++ if ((val & (_PAGE_PCD | _PAGE_PWT)) == _PAGE_PWT)
> ++ val = (val & ~(_PAGE_PCD | _PAGE_PWT)) | _PAGE_PAT;
> ++ }
Konrad disabled PAT in upstream kernels, see:
commit 8eaffa67b43e99ae581622c5133e20b0f48bcef1
Author: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Date: Fri Feb 10 09:16:27 2012 -0500
xen/pat: Disable PAT support for now.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |