From: "Dr. David Alan Gilbert" <linux@treblig.org>
The functions:
vringh_abandon_kern()
vringh_abandon_user()
vringh_iov_pull_kern() and
vringh_iov_push_kern()
were all added in 2013 by
commit f87d0fbb5798 ("vringh: host-side implementation of virtio rings.")
but have remained unused.
Remove them.
Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
---
drivers/vhost/vringh.c | 61 ------------------------------------------
include/linux/vringh.h | 7 -----
2 files changed, 68 deletions(-)
diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
index 67a028d6fb5f..c99070da39a6 100644
--- a/drivers/vhost/vringh.c
+++ b/drivers/vhost/vringh.c
@@ -779,22 +779,6 @@ ssize_t vringh_iov_push_user(struct vringh_iov *wiov,
}
EXPORT_SYMBOL(vringh_iov_push_user);
-/**
- * vringh_abandon_user - we've decided not to handle the descriptor(s).
- * @vrh: the vring.
- * @num: the number of descriptors to put back (ie. num
- * vringh_get_user() to undo).
- *
- * The next vringh_get_user() will return the old descriptor(s) again.
- */
-void vringh_abandon_user(struct vringh *vrh, unsigned int num)
-{
- /* We only update vring_avail_event(vr) when we want to be notified,
- * so we haven't changed that yet. */
- vrh->last_avail_idx -= num;
-}
-EXPORT_SYMBOL(vringh_abandon_user);
-
/**
* vringh_complete_user - we've finished with descriptor, publish it.
* @vrh: the vring.
@@ -998,51 +982,6 @@ int vringh_getdesc_kern(struct vringh *vrh,
}
EXPORT_SYMBOL(vringh_getdesc_kern);
-/**
- * vringh_iov_pull_kern - copy bytes from vring_iov.
- * @riov: the riov as passed to vringh_getdesc_kern() (updated as we consume)
- * @dst: the place to copy.
- * @len: the maximum length to copy.
- *
- * Returns the bytes copied <= len or a negative errno.
- */
-ssize_t vringh_iov_pull_kern(struct vringh_kiov *riov, void *dst, size_t len)
-{
- return vringh_iov_xfer(NULL, riov, dst, len, xfer_kern);
-}
-EXPORT_SYMBOL(vringh_iov_pull_kern);
-
-/**
- * vringh_iov_push_kern - copy bytes into vring_iov.
- * @wiov: the wiov as passed to vringh_getdesc_kern() (updated as we consume)
- * @src: the place to copy from.
- * @len: the maximum length to copy.
- *
- * Returns the bytes copied <= len or a negative errno.
- */
-ssize_t vringh_iov_push_kern(struct vringh_kiov *wiov,
- const void *src, size_t len)
-{
- return vringh_iov_xfer(NULL, wiov, (void *)src, len, kern_xfer);
-}
-EXPORT_SYMBOL(vringh_iov_push_kern);
-
-/**
- * vringh_abandon_kern - we've decided not to handle the descriptor(s).
- * @vrh: the vring.
- * @num: the number of descriptors to put back (ie. num
- * vringh_get_kern() to undo).
- *
- * The next vringh_get_kern() will return the old descriptor(s) again.
- */
-void vringh_abandon_kern(struct vringh *vrh, unsigned int num)
-{
- /* We only update vring_avail_event(vr) when we want to be notified,
- * so we haven't changed that yet. */
- vrh->last_avail_idx -= num;
-}
-EXPORT_SYMBOL(vringh_abandon_kern);
-
/**
* vringh_complete_kern - we've finished with descriptor, publish it.
* @vrh: the vring.
diff --git a/include/linux/vringh.h b/include/linux/vringh.h
index af8bd2695a7b..49e7cbc9697a 100644
--- a/include/linux/vringh.h
+++ b/include/linux/vringh.h
@@ -175,9 +175,6 @@ int vringh_complete_multi_user(struct vringh *vrh,
const struct vring_used_elem used[],
unsigned num_used);
-/* Pretend we've never seen descriptor (for easy error handling). */
-void vringh_abandon_user(struct vringh *vrh, unsigned int num);
-
/* Do we need to fire the eventfd to notify the other side? */
int vringh_need_notify_user(struct vringh *vrh);
@@ -235,10 +232,6 @@ int vringh_getdesc_kern(struct vringh *vrh,
u16 *head,
gfp_t gfp);
-ssize_t vringh_iov_pull_kern(struct vringh_kiov *riov, void *dst, size_t len);
-ssize_t vringh_iov_push_kern(struct vringh_kiov *wiov,
- const void *src, size_t len);
-void vringh_abandon_kern(struct vringh *vrh, unsigned int num);
int vringh_complete_kern(struct vringh *vrh, u16 head, u32 len);
bool vringh_notify_enable_kern(struct vringh *vrh);
--
2.49.0
On Sat, Jun 14, 2025 at 12:07:31AM +0100, linux@treblig.org wrote:
> From: "Dr. David Alan Gilbert" <linux@treblig.org>
>
> The functions:
> vringh_abandon_kern()
> vringh_abandon_user()
> vringh_iov_pull_kern() and
> vringh_iov_push_kern()
> were all added in 2013 by
> commit f87d0fbb5798 ("vringh: host-side implementation of virtio rings.")
> but have remained unused.
>
> Remove them.
>
> Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
Hi David,
With this patch (set) applied vlang flags the following.
So I guess that xfer_kern can be removed too.
.../vringh.c:887:19: warning: unused function 'xfer_kern' [-Wunused-function]
887 | static inline int xfer_kern(const struct vringh *vrh, void *src,
| ^~~~~~~~~
.../vringh.c:894:19: warning: unused function 'kern_xfer' [-Wunused-function]
894 | static inline int kern_xfer(const struct vringh *vrh, void *dst,
| ^~~~~~~~~
Otherwise this looks good to me.
* Simon Horman (horms@kernel.org) wrote:
> On Sat, Jun 14, 2025 at 12:07:31AM +0100, linux@treblig.org wrote:
> > From: "Dr. David Alan Gilbert" <linux@treblig.org>
> >
> > The functions:
> > vringh_abandon_kern()
> > vringh_abandon_user()
> > vringh_iov_pull_kern() and
> > vringh_iov_push_kern()
> > were all added in 2013 by
> > commit f87d0fbb5798 ("vringh: host-side implementation of virtio rings.")
> > but have remained unused.
> >
> > Remove them.
> >
> > Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
>
> Hi David,
>
> With this patch (set) applied vlang flags the following.
> So I guess that xfer_kern can be removed too.
>
> .../vringh.c:887:19: warning: unused function 'xfer_kern' [-Wunused-function]
> 887 | static inline int xfer_kern(const struct vringh *vrh, void *src,
> | ^~~~~~~~~
> .../vringh.c:894:19: warning: unused function 'kern_xfer' [-Wunused-function]
> 894 | static inline int kern_xfer(const struct vringh *vrh, void *dst,
> | ^~~~~~~~~
>
> Otherwise this looks good to me.
V2 sent, see thread starting 20250617001838.114457-1-linux@treblig.org
I checked, gcc doesn't warn me on these!
Dave
--
-----Open up your eyes, open up your mind, open up your code -------
/ Dr. David Alan Gilbert | Running GNU/Linux | Happy \
\ dave @ treblig.org | | In Hex /
\ _________________________|_____ http://www.treblig.org |_______/
* Simon Horman (horms@kernel.org) wrote:
> On Sat, Jun 14, 2025 at 12:07:31AM +0100, linux@treblig.org wrote:
> > From: "Dr. David Alan Gilbert" <linux@treblig.org>
> >
> > The functions:
> > vringh_abandon_kern()
> > vringh_abandon_user()
> > vringh_iov_pull_kern() and
> > vringh_iov_push_kern()
> > were all added in 2013 by
> > commit f87d0fbb5798 ("vringh: host-side implementation of virtio rings.")
> > but have remained unused.
> >
> > Remove them.
> >
> > Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
>
> Hi David,
>
> With this patch (set) applied vlang flags the following.
> So I guess that xfer_kern can be removed too.
>
> .../vringh.c:887:19: warning: unused function 'xfer_kern' [-Wunused-function]
> 887 | static inline int xfer_kern(const struct vringh *vrh, void *src,
> | ^~~~~~~~~
> .../vringh.c:894:19: warning: unused function 'kern_xfer' [-Wunused-function]
> 894 | static inline int kern_xfer(const struct vringh *vrh, void *dst,
> | ^~~~~~~~~
Oops, thanks - I should have spotted that; I'll check on it and repost.
> Otherwise this looks good to me.
Thanks for the reviews,
Dave
--
-----Open up your eyes, open up your mind, open up your code -------
/ Dr. David Alan Gilbert | Running GNU/Linux | Happy \
\ dave @ treblig.org | | In Hex /
\ _________________________|_____ http://www.treblig.org |_______/
© 2016 - 2026 Red Hat, Inc.