Message ID | 20210315163450.254396-7-sgarzare@redhat.com |
---|---|
State | New |
Headers | show |
Series | vdpa: add vdpa simulator for block device | expand |
On Mon, Mar 15, 2021 at 05:51:30PM +0100, Laurent Vivier wrote: >On 15/03/2021 17:34, Stefano Garzarella wrote: >> This new helper returns the total number of bytes covered by >> a vringh_kiov. >> >> Suggested-by: Jason Wang <jasowang@redhat.com> >> Acked-by: Jason Wang <jasowang@redhat.com> >> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> >> --- >> include/linux/vringh.h | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/include/linux/vringh.h b/include/linux/vringh.h >> index 755211ebd195..84db7b8f912f 100644 >> --- a/include/linux/vringh.h >> +++ b/include/linux/vringh.h >> @@ -199,6 +199,17 @@ static inline void vringh_kiov_cleanup(struct vringh_kiov *kiov) >> kiov->iov = NULL; >> } >> >> +static inline size_t vringh_kiov_length(struct vringh_kiov *kiov) >> +{ >> + size_t len = 0; >> + int i; >> + >> + for (i = kiov->i; i < kiov->used; i++) >> + len += kiov->iov[i].iov_len; >> + >> + return len; >> +} > >Do we really need an helper? > >For instance, we can use: > >len = iov_length((struct iovec *)kiov->iov, kiov->used); > >Or do we want to avoid the cast? Yes, that should be fine. If we want, I can remove the helper and use iov_length() directly. I thought vringh wanted to hide iovec from users though. Anyway talking to Jason, as a long term solution we should reconsider vringh and support iov_iter. Thanks, Stefano
diff --git a/include/linux/vringh.h b/include/linux/vringh.h index 755211ebd195..84db7b8f912f 100644 --- a/include/linux/vringh.h +++ b/include/linux/vringh.h @@ -199,6 +199,17 @@ static inline void vringh_kiov_cleanup(struct vringh_kiov *kiov) kiov->iov = NULL; } +static inline size_t vringh_kiov_length(struct vringh_kiov *kiov) +{ + size_t len = 0; + int i; + + for (i = kiov->i; i < kiov->used; i++) + len += kiov->iov[i].iov_len; + + return len; +} + void vringh_kiov_advance(struct vringh_kiov *kiov, size_t len); int vringh_getdesc_kern(struct vringh *vrh,