aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/printk
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2014-08-06 19:08:59 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-08-06 21:01:24 -0400
commite97e1267e9faa6480898a1fc34c8e40d74d702f2 (patch)
treef60eafec77791616da6b12fc1ceb2c2039a11640 /kernel/printk
parent23b2899f7f194f06e09b52a1f46f027a21fae17c (diff)
printk: tweak do_syslog() to match comments
In do_syslog() there's a path used by kmsg_poll() and kmsg_read() that only needs to know whether there's any data available to read (and not its size). These callers only check for non-zero return. As a shortcut, do_syslog() returns the difference between what has been logged and what has been "seen." The comments say that the "count of records" should be returned but it's not. Instead it returns (log_next_idx - syslog_idx), which is a difference between buffer offsets--and the result could be negative. The behavior is the same (it'll be zero or not in the same cases), but the count of records is more meaningful and it matches what the comments say. So change the code to return that. Signed-off-by: Alex Elder <elder@linaro.org> Cc: Petr Mladek <pmladek@suse.cz> Cc: Jan Kara <jack@suse.cz> Cc: Joe Perches <joe@perches.com> Cc: John Stultz <john.stultz@linaro.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/printk')
-rw-r--r--kernel/printk/printk.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index f855ec36dff9..ec3bfb0b1f62 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -1351,7 +1351,7 @@ int do_syslog(int type, char __user *buf, int len, bool from_file)
1351 * for pending data, not the size; return the count of 1351 * for pending data, not the size; return the count of
1352 * records, not the length. 1352 * records, not the length.
1353 */ 1353 */
1354 error = log_next_idx - syslog_idx; 1354 error = log_next_seq - syslog_seq;
1355 } else { 1355 } else {
1356 u64 seq = syslog_seq; 1356 u64 seq = syslog_seq;
1357 u32 idx = syslog_idx; 1357 u32 idx = syslog_idx;