summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-11-28 04:12:41 -0700
committerLinux Build Service Account <lnxbuild@localhost>2016-11-28 04:12:41 -0700
commitc0eac97e369ce69e09dd2be0c55986347677e094 (patch)
treed611b81f4df9ad3818bc17116ffcb6e8bbe3edfe /kernel
parenta6fff3c86ee7b4fa4e33384634f4ea73b44ffb23 (diff)
parent9aa1df0cf5ffb58b52b55b4fe2ea6531f795e186 (diff)
Promotion of kernel.lnx.4.4-161128.
CRs Change ID Subject -------------------------------------------------------------------------------------------------------------- 998053 Ifdc781aca49dcb535d5fa5005b85dc87604560dc procfs: Update order of Ngid in /proc/PID/status 1093612 I3fb59f96b419bdb91f9a04cc47ab1c23d15dc74b clk: qcom: Add support to convert the clock rate to KHz 1089062 I0118b0d3013166aeec0bb0bc0ef181e48998e758 scsi: ufs: perform full reset at initialization 1091704 I5760fadb66cad6faf02e95a1e1bb975289ef8e9f usb: pd: Fix VDM and misc timing issues 1086894 Iec3f65942dd152b0b7aa32af1a90039fff06cb34 clk: msm: hdmi: correct the precision when calculating H 1083537 I867e28101cfa37f9764d547f3b43871a430de6d7 ARM: dts: msm: Specify the configuration for audio on ms 1092550 I8cd2981f176e08c1ea4f8a9b7ff42887b590d941 ARM: dts: msm: Add USBPD PHY device node for msmfalcon 1092550 I121651a49ef27ba02f1960ed5c95baf93b00d1f5 ARM: dts: msm: Make required changes for msm8998-interpo 992103 If5a4a100108e85e04beb77e5249bd6c452672edf qos: wake up cores based on the qos updated cpu mask 1091704 I66be40091b75726d25c7be4478f1248a6af9ca3c usb: pd: Avoid spurious state machine work on CC change 1072337 I617a3bb5cbb80ac3967ab14f37452c461bb4df77 msm: ion: Modified Secure Display buffer permissions 1092930 I02a1007edfc63ad2c2dd99616cb1a64432b08d13 soc: qcom: Turn off MSM_PERFORMANCE_HOTPLUG_ON by defaul 1093681 I1eb0583010712286659ec9b726f4ae7a9a2a84e6 ARM: dts: msm: add support of pm3falcon PMIC for msmfalc 1093189 Ie986b6eb21845b679f068372e46dfb402f234dcf soc: qcom: rpm: Change driver memory allocation to use G 1091704 I885f3f4c219e102758fd09c8aae9257d093ebb72 usb: pd: Fix sink hard reset timing 1088681 I663588cfd2f9e3972b9adc1a10887ef36cd70c57 sched: Ensure proper synch between isolation, hotplug, a 975249 Iaabe9283ec80954a2e504a55f2b4cdf93ca8ae46 usb: dwc3-msm: Fix restart usb work functionality 1091704 I643a60a28e6498ca16b6f46293b8aa05eff40266 usb: pd: Reset msgid counters properly 1087088 I7060b6f379bc8bed24b59d9df4ca2fb331437363 usb: pd: Support Android dual_role_usb sysfs class 1086894 Ia202e0aee09f506a7bbe4e13702f30dee119ce8e clk: msm: hdmi: add support for live programming of HDMI 1077493 Ifcfd9f75e817561b17ec26a68f901a31c5a63a9a ARM: dts: msm: include RPM regulator for MSM8998 interpo 1089062 Ib9d27fe7bbf6107b1249b3719f63efdbff4b3795 scsi: ufs-qcom: update delay between assert/deassert in Change-Id: I3d218d2f7f0fc8bf3fd475d0d88a27aa9edf8ba2 CRs-Fixed: 992103, 1089062, 998053, 1072337, 1086894, 975249, 1088681, 1093189, 1093612, 1092550, 1083537, 1091704, 1093681, 1087088, 1077493, 1092930
Diffstat (limited to 'kernel')
-rw-r--r--kernel/power/qos.c6
-rw-r--r--kernel/sched/core.c10
-rw-r--r--kernel/sched/core_ctl.c10
3 files changed, 12 insertions, 14 deletions
diff --git a/kernel/power/qos.c b/kernel/power/qos.c
index 69c32c42080f..b822206ac811 100644
--- a/kernel/power/qos.c
+++ b/kernel/power/qos.c
@@ -358,7 +358,11 @@ int pm_qos_update_target(struct pm_qos_constraints *c,
spin_unlock_irqrestore(&pm_qos_lock, flags);
trace_pm_qos_update_target(action, prev_value, curr_value);
- if (prev_value != curr_value) {
+ /*
+ * if cpu mask bits are set, call the notifier call chain
+ * to update the new qos restriction for the cores
+ */
+ if (!cpumask_empty(&cpus)) {
ret = 1;
if (c->notifiers)
blocking_notifier_call_chain(c->notifiers,
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index a5d101e8a5f2..f60117eb60fa 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -5682,7 +5682,7 @@ int sched_isolate_cpu(int cpu)
if (trace_sched_isolate_enabled())
start_time = sched_clock();
- lock_device_hotplug();
+ cpu_maps_update_begin();
cpumask_andnot(&avail_cpus, cpu_online_mask, cpu_isolated_mask);
@@ -5731,7 +5731,7 @@ int sched_isolate_cpu(int cpu)
sched_update_group_capacities(cpu);
out:
- unlock_device_hotplug();
+ cpu_maps_update_done();
trace_sched_isolate(cpu, cpumask_bits(cpu_isolated_mask)[0],
start_time, 1);
return ret_code;
@@ -5752,8 +5752,6 @@ int sched_unisolate_cpu_unlocked(int cpu)
if (trace_sched_isolate_enabled())
start_time = sched_clock();
- lock_device_hotplug_assert();
-
if (!cpu_isolation_vote[cpu]) {
ret_code = -EINVAL;
goto out;
@@ -5792,9 +5790,9 @@ int sched_unisolate_cpu(int cpu)
{
int ret_code;
- lock_device_hotplug();
+ cpu_maps_update_begin();
ret_code = sched_unisolate_cpu_unlocked(cpu);
- unlock_device_hotplug();
+ cpu_maps_update_done();
return ret_code;
}
diff --git a/kernel/sched/core_ctl.c b/kernel/sched/core_ctl.c
index 9b21a09ec4ba..aac12bfc2ae6 100644
--- a/kernel/sched/core_ctl.c
+++ b/kernel/sched/core_ctl.c
@@ -893,14 +893,10 @@ static int __ref cpu_callback(struct notifier_block *nfb,
unsigned int need;
int ret = NOTIFY_OK;
- /* Don't affect suspend resume */
- if (action & CPU_TASKS_FROZEN)
- return NOTIFY_OK;
-
if (unlikely(!cluster || !cluster->inited))
return NOTIFY_OK;
- switch (action) {
+ switch (action & ~CPU_TASKS_FROZEN) {
case CPU_UP_PREPARE:
/* If online state of CPU somehow got out of sync, fix it. */
@@ -1095,7 +1091,7 @@ static int __init core_ctl_init(void)
cpufreq_register_notifier(&cpufreq_pol_nb, CPUFREQ_POLICY_NOTIFIER);
cpufreq_register_notifier(&cpufreq_gov_nb, CPUFREQ_GOVINFO_NOTIFIER);
- lock_device_hotplug();
+ cpu_maps_update_begin();
for_each_online_cpu(cpu) {
struct cpufreq_policy *policy;
int ret;
@@ -1109,7 +1105,7 @@ static int __init core_ctl_init(void)
cpufreq_cpu_put(policy);
}
}
- unlock_device_hotplug();
+ cpu_maps_update_done();
initialized = true;
return 0;
}