diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2016-11-28 04:12:41 -0700 |
|---|---|---|
| committer | Linux Build Service Account <lnxbuild@localhost> | 2016-11-28 04:12:41 -0700 |
| commit | c0eac97e369ce69e09dd2be0c55986347677e094 (patch) | |
| tree | d611b81f4df9ad3818bc17116ffcb6e8bbe3edfe /kernel | |
| parent | a6fff3c86ee7b4fa4e33384634f4ea73b44ffb23 (diff) | |
| parent | 9aa1df0cf5ffb58b52b55b4fe2ea6531f795e186 (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.c | 6 | ||||
| -rw-r--r-- | kernel/sched/core.c | 10 | ||||
| -rw-r--r-- | kernel/sched/core_ctl.c | 10 |
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; } |
