1
0
forked from pool/virtualbox
virtualbox/fixes_for_kernel_6.4.patch
2023-06-27 19:24:10 +00:00

48 lines
1.8 KiB
Diff

Index: VirtualBox-7.0.8/src/VBox/Additions/linux/sharedfolders/regops.c
===================================================================
--- VirtualBox-7.0.8.orig/src/VBox/Additions/linux/sharedfolders/regops.c
+++ VirtualBox-7.0.8/src/VBox/Additions/linux/sharedfolders/regops.c
@@ -179,7 +179,11 @@ static size_t vbsf_iov_iter_count(struct
{
size_t cbRet = 0;
size_t cLeft = iter->nr_segs;
+#if RTLNX_VER_MIN(6, 4, 0)
+ struct iovec const *iov = iter_iov(iter);
+#else
struct iovec const *iov = iter->iov;
+#endif
while (cLeft-- > 0) {
cbRet += iov->iov_len;
iov++;
@@ -295,8 +299,12 @@ void vbsf_iov_iter_revert(struct vbsf_io
}
while (cbRewind > 0) {
- struct iovec const *pIov = --iter->iov;
- size_t const cbSeg = pIov->iov_len;
+#if RTLNX_VER_MIN(6, 4, 0)
+ struct iovec const *pIov = --iter_iov(iter);
+#else
+ struct iovec const *pIov = --iter->iov;
+#endif
+ size_t const cbSeg = pIov->iov_len;
iter->nr_segs++;
Assert((uintptr_t)pIov >= (uintptr_t)iter->iov_org);
@@ -2399,9 +2407,13 @@ static size_t vbsf_iter_max_span_of_page
# if RTLNX_VER_MIN(3,16,0)
if (iter_is_iovec(iter) || (VBSF_GET_ITER_TYPE(iter) & ITER_KVEC)) {
# endif
+#if RTLNX_VER_MIN(6, 4, 0)
+ const struct iovec *pCurIov = iter_iov(iter);
+#else
const struct iovec *pCurIov = iter->iov;
- size_t cLeft = iter->nr_segs;
- size_t cPagesSpan = 0;
+#endif
+ size_t cLeft = iter->nr_segs;
+ size_t cPagesSpan = 0;
/* iovect and kvec are identical, except for the __user tagging of iov_base. */
AssertCompileMembersSameSizeAndOffset(struct iovec, iov_base, struct kvec, iov_base);