projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ASoC: AD1836: drop unnecessary spi register check
[cascardo/linux.git]
/
mm
/
memory_hotplug.c
diff --git
a/mm/memory_hotplug.c
b/mm/memory_hotplug.c
index
9ca1d60
..
9f64637
100644
(file)
--- a/
mm/memory_hotplug.c
+++ b/
mm/memory_hotplug.c
@@
-374,10
+374,6
@@
void online_page(struct page *page)
totalhigh_pages++;
#endif
totalhigh_pages++;
#endif
-#ifdef CONFIG_FLATMEM
- max_mapnr = max(pfn, max_mapnr);
-#endif
-
ClearPageReserved(page);
init_page_count(page);
__free_page(page);
ClearPageReserved(page);
init_page_count(page);
__free_page(page);
@@
-400,7
+396,7
@@
static int online_pages_range(unsigned long start_pfn, unsigned long nr_pages,
}
}
-int online_pages(unsigned long pfn, unsigned long nr_pages)
+int
__ref
online_pages(unsigned long pfn, unsigned long nr_pages)
{
unsigned long onlined_pages = 0;
struct zone *zone;
{
unsigned long onlined_pages = 0;
struct zone *zone;
@@
-459,8
+455,9
@@
int online_pages(unsigned long pfn, unsigned long nr_pages)
zone_pcp_update(zone);
mutex_unlock(&zonelists_mutex);
zone_pcp_update(zone);
mutex_unlock(&zonelists_mutex);
- setup_per_zone_wmarks();
- calculate_zone_inactive_ratio(zone);
+
+ init_per_zone_wmark_min();
+
if (onlined_pages) {
kswapd_run(zone_to_nid(zone));
node_set_state(zone_to_nid(zone), N_HIGH_MEMORY);
if (onlined_pages) {
kswapd_run(zone_to_nid(zone));
node_set_state(zone_to_nid(zone), N_HIGH_MEMORY);
@@
-705,7
+702,7
@@
do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
if (!pfn_valid(pfn))
continue;
page = pfn_to_page(pfn);
if (!pfn_valid(pfn))
continue;
page = pfn_to_page(pfn);
- if (!
page_count
(page))
+ if (!
get_page_unless_zero
(page))
continue;
/*
* We can skip free pages. And we can only deal with pages on
continue;
/*
* We can skip free pages. And we can only deal with pages on
@@
-713,6
+710,7
@@
do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
*/
ret = isolate_lru_page(page);
if (!ret) { /* Success */
*/
ret = isolate_lru_page(page);
if (!ret) { /* Success */
+ put_page(page);
list_add_tail(&page->lru, &source);
move_pages--;
inc_zone_page_state(page, NR_ISOLATED_ANON +
list_add_tail(&page->lru, &source);
move_pages--;
inc_zone_page_state(page, NR_ISOLATED_ANON +
@@
-724,6
+722,7
@@
do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
pfn);
dump_page(page);
#endif
pfn);
dump_page(page);
#endif
+ put_page(page);
/* Because we don't have big zone->lock. we should
check this again here. */
if (page_count(page)) {
/* Because we don't have big zone->lock. we should
check this again here. */
if (page_count(page)) {
@@
-795,7
+794,7
@@
check_pages_isolated(unsigned long start_pfn, unsigned long end_pfn)
return offlined;
}
return offlined;
}
-static int offline_pages(unsigned long start_pfn,
+static int
__ref
offline_pages(unsigned long start_pfn,
unsigned long end_pfn, unsigned long timeout)
{
unsigned long pfn, nr_pages, expire;
unsigned long end_pfn, unsigned long timeout)
{
unsigned long pfn, nr_pages, expire;
@@
-893,8
+892,8
@@
repeat:
zone->zone_pgdat->node_present_pages -= offlined_pages;
totalram_pages -= offlined_pages;
zone->zone_pgdat->node_present_pages -= offlined_pages;
totalram_pages -= offlined_pages;
-
setup_per_zone_wmarks
();
- calculate_zone_inactive_ratio(zone);
+
init_per_zone_wmark_min
();
+
if (!node_present_pages(node)) {
node_clear_state(node, N_HIGH_MEMORY);
kswapd_stop(node);
if (!node_present_pages(node)) {
node_clear_state(node, N_HIGH_MEMORY);
kswapd_stop(node);