summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/seq_buf.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/seq_buf.c b/lib/seq_buf.c
index 5c94e1012a91f..cb18469e1f490 100644
--- a/lib/seq_buf.c
+++ b/lib/seq_buf.c
@@ -306,10 +306,12 @@ int seq_buf_to_user(struct seq_buf *s, char __user *ubuf, int cnt)
if (!cnt)
return 0;
- if (s->len <= s->readpos)
+ len = seq_buf_used(s);
+
+ if (len <= s->readpos)
return -EBUSY;
- len = seq_buf_used(s) - s->readpos;
+ len -= s->readpos;
if (cnt > len)
cnt = len;
ret = copy_to_user(ubuf, s->buffer + s->readpos, cnt);