diff options
| author | Mark Johnston <markj@FreeBSD.org> | 2023-12-26 01:42:58 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2023-12-26 02:04:01 +0000 |
| commit | 6cdff09c0d70f780a738dbd3d87deb3b13ec8446 (patch) | |
| tree | cab49d7b6e17cca480c40cf5479feac6c7504f6a /sys/dev/xen/gntdev | |
| parent | 68cc77a3b73ffda1e8ac891b9852faca833e11b7 (diff) | |
Diffstat (limited to 'sys/dev/xen/gntdev')
| -rw-r--r-- | sys/dev/xen/gntdev/gntdev.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/dev/xen/gntdev/gntdev.c b/sys/dev/xen/gntdev/gntdev.c index a9b69ba1605e..4530feb1c76d 100644 --- a/sys/dev/xen/gntdev/gntdev.c +++ b/sys/dev/xen/gntdev/gntdev.c @@ -383,6 +383,13 @@ gntdev_alloc_gref(struct ioctl_gntdev_alloc_gref *arg) } } + /* Copy the output values. */ + arg->index = file_offset; + for (i = 0; error == 0 && i < arg->count; i++) { + if (suword32(&arg->gref_ids[i], grefs[i].gref_id) != 0) + error = EFAULT; + } + if (error != 0) { /* * If target domain maps the gref (by guessing the gref-id), @@ -401,11 +408,6 @@ gntdev_alloc_gref(struct ioctl_gntdev_alloc_gref *arg) return (error); } - /* Copy the output values. */ - arg->index = file_offset; - for (i = 0; i < arg->count; i++) - suword32(&arg->gref_ids[i], grefs[i].gref_id); - /* Modify the per user private data. */ mtx_lock(&priv_user->user_data_lock); for (i = 0; i < arg->count; i++) |
