summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2019-12-04 05:36:52 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2019-12-04 05:36:51 -0800
commita94efeebe062bd8818aee9ef70483bbd21f4f558 (patch)
treefaf5d422e172a8f5708aa2e912c83a552596a37e /kernel
parentfbbb7d9af6faf01b3fe05f9a91d1a0b56049fc0a (diff)
parented0754412226e593ffccb7990b18eb4914ac77e7 (diff)
Merge "Merge android-4.4-p.204 (583bdda) into msm-4.4"
Diffstat (limited to 'kernel')
-rw-r--r--kernel/auditsc.c2
-rw-r--r--kernel/printk/printk.c2
-rw-r--r--kernel/sched/fair.c13
3 files changed, 13 insertions, 4 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c
index b7aac4c5c9a1..e76b512082a2 100644
--- a/kernel/auditsc.c
+++ b/kernel/auditsc.c
@@ -1093,7 +1093,7 @@ static void audit_log_execve_info(struct audit_context *context,
}
/* write as much as we can to the audit log */
- if (len_buf > 0) {
+ if (len_buf >= 0) {
/* NOTE: some magic numbers here - basically if we
* can't fit a reasonable amount of data into the
* existing audit buffer, flush it and start with
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 3575b208f876..fd63b4d06139 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -941,7 +941,7 @@ void __init setup_log_buf(int early)
{
unsigned long flags;
char *new_log_buf;
- int free;
+ unsigned int free;
if (log_buf != __log_buf)
return;
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index f01eb276835d..df2e6dd2c665 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -10750,13 +10750,22 @@ out_all_pinned:
sd->nr_balance_failed = 0;
out_one_pinned:
+ ld_moved = 0;
+
+ /*
+ * idle_balance() disregards balance intervals, so we could repeatedly
+ * reach this code, which would lead to balance_interval skyrocketting
+ * in a short amount of time. Skip the balance_interval increase logic
+ * to avoid that.
+ */
+ if (env.idle == CPU_NEWLY_IDLE)
+ goto out;
+
/* tune up the balancing interval */
if (((env.flags & LBF_ALL_PINNED) &&
sd->balance_interval < MAX_PINNED_INTERVAL) ||
(sd->balance_interval < sd->max_interval))
sd->balance_interval *= 2;
-
- ld_moved = 0;
out:
trace_sched_load_balance(this_cpu, idle, *continue_balancing,
group ? group->cpumask[0] : 0,