projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[CPUFREQ] state info wrong after resume
[firefly-linux-kernel-4.4.55.git]
/
drivers
/
cpufreq
/
cpufreq_stats.c
diff --git
a/drivers/cpufreq/cpufreq_stats.c
b/drivers/cpufreq/cpufreq_stats.c
index 070421a5480e731116ed58845e5ac424cfaf0aba..ae70d63a8b26eabb2b02d8c2ea28721fcd934b2a 100644
(file)
--- a/
drivers/cpufreq/cpufreq_stats.c
+++ b/
drivers/cpufreq/cpufreq_stats.c
@@
-114,7
+114,7
@@
show_trans_table(struct cpufreq_policy *policy, char *buf)
stat->freq_table[i]);
}
if (len >= PAGE_SIZE)
stat->freq_table[i]);
}
if (len >= PAGE_SIZE)
- return
len
;
+ return
PAGE_SIZE
;
len += snprintf(buf + len, PAGE_SIZE - len, "\n");
len += snprintf(buf + len, PAGE_SIZE - len, "\n");
@@
-131,8
+131,12
@@
show_trans_table(struct cpufreq_policy *policy, char *buf)
len += snprintf(buf + len, PAGE_SIZE - len, "%9u ",
stat->trans_table[i*stat->max_state+j]);
}
len += snprintf(buf + len, PAGE_SIZE - len, "%9u ",
stat->trans_table[i*stat->max_state+j]);
}
+ if (len >= PAGE_SIZE)
+ break;
len += snprintf(buf + len, PAGE_SIZE - len, "\n");
}
len += snprintf(buf + len, PAGE_SIZE - len, "\n");
}
+ if (len >= PAGE_SIZE)
+ return PAGE_SIZE;
return len;
}
CPUFREQ_STATDEVICE_ATTR(trans_table,0444,show_trans_table);
return len;
}
CPUFREQ_STATDEVICE_ATTR(trans_table,0444,show_trans_table);
@@
-284,7
+288,7
@@
cpufreq_stat_notifier_trans (struct notifier_block *nb, unsigned long val,
if (!stat)
return 0;
if (!stat)
return 0;
- old_index =
freq_table_get_index(stat, freq->old)
;
+ old_index =
stat->last_index
;
new_index = freq_table_get_index(stat, freq->new);
cpufreq_stats_update(freq->cpu);
new_index = freq_table_get_index(stat, freq->new);
cpufreq_stats_update(freq->cpu);