Commit fea0dde0 authored by Jiri Slaby (SUSE)'s avatar Jiri Slaby (SUSE) Committed by Greg Kroah-Hartman

kfifo: pass offset to setup_sgl_buf() instead of a pointer

As a preparatory for dma addresses filling, we need the data offset
instead of virtual pointer in setup_sgl_buf(). So pass the former
instead the latter.

And pointer to fifo is needed in setup_sgl_buf() now too.
Signed-off-by: default avatarJiri Slaby (SUSE) <jirislaby@kernel.org>
Cc: Stefani Seibold <stefani@seibold.net>
Cc: Andrew Morton <akpm@linux-foundation.org>
Link: https://lore.kernel.org/r/20240405060826.2521-7-jirislaby@kernel.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ed6d22f5
...@@ -305,9 +305,12 @@ int __kfifo_to_user(struct __kfifo *fifo, void __user *to, ...@@ -305,9 +305,12 @@ int __kfifo_to_user(struct __kfifo *fifo, void __user *to,
} }
EXPORT_SYMBOL(__kfifo_to_user); EXPORT_SYMBOL(__kfifo_to_user);
static unsigned int setup_sgl_buf(struct scatterlist *sgl, void *buf, static unsigned int setup_sgl_buf(struct __kfifo *fifo, struct scatterlist *sgl,
int nents, unsigned int len) unsigned int data_offset, int nents,
unsigned int len)
{ {
const void *buf = fifo->data + data_offset;
if (!nents || !len) if (!nents || !len)
return 0; return 0;
...@@ -332,8 +335,8 @@ static unsigned int setup_sgl(struct __kfifo *fifo, struct scatterlist *sgl, ...@@ -332,8 +335,8 @@ static unsigned int setup_sgl(struct __kfifo *fifo, struct scatterlist *sgl,
} }
len_to_end = min(len, size - off); len_to_end = min(len, size - off);
n = setup_sgl_buf(sgl, fifo->data + off, nents, len_to_end); n = setup_sgl_buf(fifo, sgl, off, nents, len_to_end);
n += setup_sgl_buf(sgl + n, fifo->data, nents - n, len - len_to_end); n += setup_sgl_buf(fifo, sgl + n, 0, nents - n, len - len_to_end);
return n; return n;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment