diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2022-03-14 19:14:29 -0700 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2022-03-14 19:14:29 -0700 |
commit | ce8356335027d3929fbfae4127451adaf36e1cd4 (patch) | |
tree | 8ac7d71d3b67a6138e811cd4d4e135d934233e47 /drivers/vhost/iotlb.c | |
parent | Input: mt6779-keypad - fix signedness bug (diff) | |
parent | Linux 5.17-rc8 (diff) | |
download | linux-dev-ce8356335027d3929fbfae4127451adaf36e1cd4.tar.xz linux-dev-ce8356335027d3929fbfae4127451adaf36e1cd4.zip |
Merge tag 'v5.17-rc8' into next
Sync up with mainline to again get the latest changes in HID subsystem.
Diffstat (limited to 'drivers/vhost/iotlb.c')
-rw-r--r-- | drivers/vhost/iotlb.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/vhost/iotlb.c b/drivers/vhost/iotlb.c index 670d56c879e5..40b098320b2a 100644 --- a/drivers/vhost/iotlb.c +++ b/drivers/vhost/iotlb.c @@ -57,6 +57,17 @@ int vhost_iotlb_add_range_ctx(struct vhost_iotlb *iotlb, if (last < start) return -EFAULT; + /* If the range being mapped is [0, ULONG_MAX], split it into two entries + * otherwise its size would overflow u64. + */ + if (start == 0 && last == ULONG_MAX) { + u64 mid = last / 2; + + vhost_iotlb_add_range_ctx(iotlb, start, mid, addr, perm, opaque); + addr += mid + 1; + start = mid + 1; + } + if (iotlb->limit && iotlb->nmaps == iotlb->limit && iotlb->flags & VHOST_IOTLB_FLAG_RETIRE) { |