mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-01 18:52:02 +00:00
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: Jiri 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.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
ed6d22f5d8
commit
fea0dde081
11
lib/kfifo.c
11
lib/kfifo.c
@ -305,9 +305,12 @@ int __kfifo_to_user(struct __kfifo *fifo, void __user *to,
|
||||
}
|
||||
EXPORT_SYMBOL(__kfifo_to_user);
|
||||
|
||||
static unsigned int setup_sgl_buf(struct scatterlist *sgl, void *buf,
|
||||
int nents, unsigned int len)
|
||||
static unsigned int setup_sgl_buf(struct __kfifo *fifo, struct scatterlist *sgl,
|
||||
unsigned int data_offset, int nents,
|
||||
unsigned int len)
|
||||
{
|
||||
const void *buf = fifo->data + data_offset;
|
||||
|
||||
if (!nents || !len)
|
||||
return 0;
|
||||
|
||||
@ -332,8 +335,8 @@ static unsigned int setup_sgl(struct __kfifo *fifo, struct scatterlist *sgl,
|
||||
}
|
||||
len_to_end = min(len, size - off);
|
||||
|
||||
n = setup_sgl_buf(sgl, fifo->data + 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, off, nents, len_to_end);
|
||||
n += setup_sgl_buf(fifo, sgl + n, 0, nents - n, len - len_to_end);
|
||||
|
||||
return n;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user