Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 112544
b: refs/heads/master
c: 55121b4
h: refs/heads/master
v: v3
  • Loading branch information
Suresh Siddha authored and Ingo Molnar committed Oct 10, 2008
1 parent 5b93f16 commit 64f07cc
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0b8fdcbcd287a1fbe66817491e6149841ae25705
refs/heads/master: 55121b4369ced87863bf04da1f762a37e58aee4d
23 changes: 16 additions & 7 deletions trunk/arch/x86/mm/pageattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -1121,7 +1121,13 @@ static int __set_pages_p(struct page *page, int numpages)
.mask_clr = __pgprot(0),
.flags = 0};

return __change_page_attr_set_clr(&cpa, 1);
/*
* No alias checking needed for setting present flag. otherwise,
* we may need to break large pages for 64-bit kernel text
* mappings (this adds to complexity if we want to do this from
* atomic context especially). Let's keep it simple!
*/
return __change_page_attr_set_clr(&cpa, 0);
}

static int __set_pages_np(struct page *page, int numpages)
Expand All @@ -1133,7 +1139,13 @@ static int __set_pages_np(struct page *page, int numpages)
.mask_clr = __pgprot(_PAGE_PRESENT | _PAGE_RW),
.flags = 0};

return __change_page_attr_set_clr(&cpa, 1);
/*
* No alias checking needed for setting not present flag. otherwise,
* we may need to break large pages for 64-bit kernel text
* mappings (this adds to complexity if we want to do this from
* atomic context especially). Let's keep it simple!
*/
return __change_page_attr_set_clr(&cpa, 0);
}

void kernel_map_pages(struct page *page, int numpages, int enable)
Expand All @@ -1153,11 +1165,8 @@ void kernel_map_pages(struct page *page, int numpages, int enable)

/*
* The return value is ignored as the calls cannot fail.
* Large pages are kept enabled at boot time, and are
* split up quickly with DEBUG_PAGEALLOC. If a splitup
* fails here (due to temporary memory shortage) no damage
* is done because we just keep the largepage intact up
* to the next attempt when it will likely be split up:
* Large pages for identity mappings are not used at boot time
* and hence no memory allocations during large page split.
*/
if (enable)
__set_pages_p(page, numpages);
Expand Down

0 comments on commit 64f07cc

Please sign in to comment.