2009-03-19 21:55:39

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: [patch 1/3] x86, CPA: Add a flag parameter to cpa set_clr

Change change_page_attr_set_clr() array parameter to a flag. This helps
following patches which adds an interface to change attr to uc/wb over a
set of pages referred by struct page.

Signed-off-by: Venkatesh Pallipadi <[email protected]>

---
arch/x86/mm/pageattr.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

Index: tip/arch/x86/mm/pageattr.c
===================================================================
--- tip.orig/arch/x86/mm/pageattr.c 2009-03-13 11:51:31.000000000 -0700
+++ tip/arch/x86/mm/pageattr.c 2009-03-17 11:03:31.000000000 -0700
@@ -786,7 +786,7 @@ static inline int cache_attr(pgprot_t at

static int change_page_attr_set_clr(unsigned long *addr, int numpages,
pgprot_t mask_set, pgprot_t mask_clr,
- int force_split, int array)
+ int force_split, int in_flag)
{
struct cpa_data cpa;
int ret, cache, checkalias;
@@ -801,7 +801,7 @@ static int change_page_attr_set_clr(unsi
return 0;

/* Ensure we are PAGE_SIZE aligned */
- if (!array) {
+ if (!(in_flag & CPA_ARRAY)) {
if (*addr & ~PAGE_MASK) {
*addr &= PAGE_MASK;
/*
@@ -839,7 +839,7 @@ static int change_page_attr_set_clr(unsi
cpa.curpage = 0;
cpa.force_split = force_split;

- if (array)
+ if (in_flag & CPA_ARRAY)
cpa.flags |= CPA_ARRAY;

/* No alias checking for _NX bit modifications */
@@ -888,14 +888,14 @@ static inline int change_page_attr_set(u
pgprot_t mask, int array)
{
return change_page_attr_set_clr(addr, numpages, mask, __pgprot(0), 0,
- array);
+ (array ? CPA_ARRAY : 0));
}

static inline int change_page_attr_clear(unsigned long *addr, int numpages,
pgprot_t mask, int array)
{
return change_page_attr_set_clr(addr, numpages, __pgprot(0), mask, 0,
- array);
+ (array ? CPA_ARRAY : 0));
}

int _set_memory_uc(unsigned long addr, int numpages)

--


2009-03-20 10:25:22

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: [tip:x86/mm] x86, CPA: Add a flag parameter to cpa set_clr()

Commit-ID: 728c9518873de0bbb92b66daa1943b12e5b9f80f
Gitweb: http://git.kernel.org/tip/728c9518873de0bbb92b66daa1943b12e5b9f80f
Author: [email protected] <[email protected]>
AuthorDate: Thu, 19 Mar 2009 14:51:13 -0700
Committer: Ingo Molnar <[email protected]>
CommitDate: Fri, 20 Mar 2009 10:34:47 +0100

x86, CPA: Add a flag parameter to cpa set_clr()

Change change_page_attr_set_clr() array parameter to a flag. This helps
following patches which adds an interface to change attr to uc/wb over a
set of pages referred by struct page.

Signed-off-by: Venkatesh Pallipadi <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: Venkatesh Pallipadi <[email protected]>
Cc: [email protected]
LKML-Reference: <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>


---
arch/x86/mm/pageattr.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 1280565..69009af 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -787,7 +787,7 @@ static inline int cache_attr(pgprot_t attr)

static int change_page_attr_set_clr(unsigned long *addr, int numpages,
pgprot_t mask_set, pgprot_t mask_clr,
- int force_split, int array)
+ int force_split, int in_flag)
{
struct cpa_data cpa;
int ret, cache, checkalias;
@@ -802,7 +802,7 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages,
return 0;

/* Ensure we are PAGE_SIZE aligned */
- if (!array) {
+ if (!(in_flag & CPA_ARRAY)) {
if (*addr & ~PAGE_MASK) {
*addr &= PAGE_MASK;
/*
@@ -840,7 +840,7 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages,
cpa.curpage = 0;
cpa.force_split = force_split;

- if (array)
+ if (in_flag & CPA_ARRAY)
cpa.flags |= CPA_ARRAY;

/* No alias checking for _NX bit modifications */
@@ -889,14 +889,14 @@ static inline int change_page_attr_set(unsigned long *addr, int numpages,
pgprot_t mask, int array)
{
return change_page_attr_set_clr(addr, numpages, mask, __pgprot(0), 0,
- array);
+ (array ? CPA_ARRAY : 0));
}

static inline int change_page_attr_clear(unsigned long *addr, int numpages,
pgprot_t mask, int array)
{
return change_page_attr_set_clr(addr, numpages, __pgprot(0), mask, 0,
- array);
+ (array ? CPA_ARRAY : 0));
}

int _set_memory_uc(unsigned long addr, int numpages)