Re: [PATCH v5 0/6] Add multiple address spaces support to VDUSE

From: Michael S. Tsirkin

Date: Mon Sep 29 2025 - 03:56:37 EST


On Mon, Sep 29, 2025 at 07:41:13AM +0200, Eugenio Perez Martin wrote:
> On Fri, Sep 26, 2025 at 4:37 PM Michael S. Tsirkin <mst@xxxxxxxxxx> wrote:
> >
> > On Fri, Sep 26, 2025 at 12:14:26PM +0200, Eugenio Pérez wrote:
> > > PATCH v5:
> > > * Properly return errno if copy_to_user returns >0 in VDUSE_IOTLB_GET_FD
> > > ioctl (Jason).
> >
> > ???
> >
> > I think copy_to_user returns an unsigned value: the number of bytes copied.
> >
> >
> > static __always_inline unsigned long __must_check
> > copy_from_user(void *to, const void __user *from, unsigned long n)
> > {
> > if (!check_copy_size(to, n, false))
> > return n;
> > #ifdef INLINE_COPY_FROM_USER
> > return _inline_copy_from_user(to, from, n);
> > #else
> > return _copy_from_user(to, from, n);
> > #endif
> > }
> >
> >
> > so, how does the patch work then?
> >
>
> copy_from_user returns the number of bytes that could not be copied.
> For example when the object size in the kernel is less than n bytes
> long, check_copy_size returns false and copy_from_user returns n, the
> amount of size requested to copy.

oh, right. thanks!