diff options
author | Anton Vorontsov <anton.vorontsov@linaro.org> | 2012-07-31 07:59:42 -0400 |
---|---|---|
committer | Anton Vorontsov <anton.vorontsov@linaro.org> | 2012-07-31 08:16:47 -0400 |
commit | e6db06a53b1dcf4e9da4aba143e2eb4d63418abb (patch) | |
tree | 10adcecb71c95ce4393c39fa7911d091bcadfe09 /mm/vmscan.c | |
parent | ecc2edd56c49fa31a0a9ed15a7bf810ae79d3b85 (diff) | |
parent | c56f5c0342dfee11a1a13d2f5bb7618de5b17590 (diff) |
Merge with upstream to accommodate with thermal changes
This merge is performed to take commit c56f5c0342dfee11a1 ("Thermal: Make
Thermal trip points writeable") out of Linus' tree and then fixup power
supply class. This is needed since thermal stuff added a new argument:
CC drivers/power/power_supply_core.o
drivers/power/power_supply_core.c: In function ‘psy_register_thermal’:
drivers/power/power_supply_core.c:204:6: warning: passing argument 3 of ‘thermal_zone_device_register’ makes integer from pointer without a cast [enabled by default]
include/linux/thermal.h:154:29: note: expected ‘int’ but argument is of type ‘struct power_supply *’
drivers/power/power_supply_core.c:204:6: error: too few arguments to function ‘thermal_zone_device_register’
include/linux/thermal.h:154:29: note: declared here
make[1]: *** [drivers/power/power_supply_core.o] Error 1
make: *** [drivers/power/] Error 2
Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r-- | mm/vmscan.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index eeb3bc9d1d36..66e431060c05 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -2688,7 +2688,10 @@ static void kswapd_try_to_sleep(pg_data_t *pgdat, int order, int classzone_idx) | |||
2688 | * them before going back to sleep. | 2688 | * them before going back to sleep. |
2689 | */ | 2689 | */ |
2690 | set_pgdat_percpu_threshold(pgdat, calculate_normal_threshold); | 2690 | set_pgdat_percpu_threshold(pgdat, calculate_normal_threshold); |
2691 | schedule(); | 2691 | |
2692 | if (!kthread_should_stop()) | ||
2693 | schedule(); | ||
2694 | |||
2692 | set_pgdat_percpu_threshold(pgdat, calculate_pressure_threshold); | 2695 | set_pgdat_percpu_threshold(pgdat, calculate_pressure_threshold); |
2693 | } else { | 2696 | } else { |
2694 | if (remaining) | 2697 | if (remaining) |
@@ -2955,14 +2958,17 @@ int kswapd_run(int nid) | |||
2955 | } | 2958 | } |
2956 | 2959 | ||
2957 | /* | 2960 | /* |
2958 | * Called by memory hotplug when all memory in a node is offlined. | 2961 | * Called by memory hotplug when all memory in a node is offlined. Caller must |
2962 | * hold lock_memory_hotplug(). | ||
2959 | */ | 2963 | */ |
2960 | void kswapd_stop(int nid) | 2964 | void kswapd_stop(int nid) |
2961 | { | 2965 | { |
2962 | struct task_struct *kswapd = NODE_DATA(nid)->kswapd; | 2966 | struct task_struct *kswapd = NODE_DATA(nid)->kswapd; |
2963 | 2967 | ||
2964 | if (kswapd) | 2968 | if (kswapd) { |
2965 | kthread_stop(kswapd); | 2969 | kthread_stop(kswapd); |
2970 | NODE_DATA(nid)->kswapd = NULL; | ||
2971 | } | ||
2966 | } | 2972 | } |
2967 | 2973 | ||
2968 | static int __init kswapd_init(void) | 2974 | static int __init kswapd_init(void) |