diff options
Diffstat (limited to 'kernel/kfifo.c')
-rw-r--r-- | kernel/kfifo.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/kernel/kfifo.c b/kernel/kfifo.c index 4502604ecadf..01a0700e873f 100644 --- a/kernel/kfifo.c +++ b/kernel/kfifo.c | |||
@@ -365,8 +365,6 @@ static unsigned int setup_sgl(struct __kfifo *fifo, struct scatterlist *sgl, | |||
365 | n = setup_sgl_buf(sgl, fifo->data + off, nents, l); | 365 | n = setup_sgl_buf(sgl, fifo->data + off, nents, l); |
366 | n += setup_sgl_buf(sgl + n, fifo->data, nents - n, len - l); | 366 | n += setup_sgl_buf(sgl + n, fifo->data, nents - n, len - l); |
367 | 367 | ||
368 | if (n) | ||
369 | sg_mark_end(sgl + n - 1); | ||
370 | return n; | 368 | return n; |
371 | } | 369 | } |
372 | 370 | ||
@@ -503,6 +501,15 @@ unsigned int __kfifo_out_r(struct __kfifo *fifo, void *buf, | |||
503 | } | 501 | } |
504 | EXPORT_SYMBOL(__kfifo_out_r); | 502 | EXPORT_SYMBOL(__kfifo_out_r); |
505 | 503 | ||
504 | void __kfifo_skip_r(struct __kfifo *fifo, size_t recsize) | ||
505 | { | ||
506 | unsigned int n; | ||
507 | |||
508 | n = __kfifo_peek_n(fifo, recsize); | ||
509 | fifo->out += n + recsize; | ||
510 | } | ||
511 | EXPORT_SYMBOL(__kfifo_skip_r); | ||
512 | |||
506 | int __kfifo_from_user_r(struct __kfifo *fifo, const void __user *from, | 513 | int __kfifo_from_user_r(struct __kfifo *fifo, const void __user *from, |
507 | unsigned long len, unsigned int *copied, size_t recsize) | 514 | unsigned long len, unsigned int *copied, size_t recsize) |
508 | { | 515 | { |