lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Tue, 8 Aug 2023 16:02:58 +0800
From:   Ruan Jinjie <ruanjinjie@...wei.com>
To:     <viro@...iv.linux.org.uk>, <linux-kernel@...r.kernel.org>
CC:     <ruanjinjie@...wei.com>
Subject: [PATCH -next] iov_iter: Use helper macro offset_in_page()

Use helper macro offset_in_page() to improve code readability.

No functional modification involved.

Also, it fixes the following warning:

WARNING: Prefer 'unsigned int' to bare use of 'unsigned'
+               unsigned offs = offset_in_page(p->bv_offset + skip);

WARNING: Prefer 'unsigned int' to bare use of 'unsigned'
+               unsigned offset = offset_in_page(i->xarray_start + i->iov_offset);

Signed-off-by: Ruan Jinjie <ruanjinjie@...wei.com>
---
 lib/iov_iter.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/iov_iter.c b/lib/iov_iter.c
index 424737045b97..b76704c36528 100644
--- a/lib/iov_iter.c
+++ b/lib/iov_iter.c
@@ -1089,7 +1089,7 @@ static struct page *first_bvec_segment(const struct iov_iter *i,
 		*size = len;
 	skip += i->bvec->bv_offset;
 	page = i->bvec->bv_page + skip / PAGE_SIZE;
-	*start = skip % PAGE_SIZE;
+	*start = offset_in_page(skip);
 	return page;
 }
 
@@ -1116,7 +1116,7 @@ static ssize_t __iov_iter_get_pages_alloc(struct iov_iter *i,
 			gup_flags |= FOLL_NOFAULT;
 
 		addr = first_iovec_segment(i, &maxsize);
-		*start = addr % PAGE_SIZE;
+		*start = offset_in_page(addr);
 		addr &= PAGE_MASK;
 		n = want_pages_array(pages, maxsize, *start, maxpages);
 		if (!n)
@@ -1280,7 +1280,7 @@ static int bvec_npages(const struct iov_iter *i, int maxpages)
 	int npages = 0;
 
 	for (p = i->bvec; size; skip = 0, p++) {
-		unsigned offs = (p->bv_offset + skip) % PAGE_SIZE;
+		unsigned int offs = offset_in_page(p->bv_offset + skip);
 		size_t len = min(p->bv_len - skip, size);
 
 		size -= len;
@@ -1306,7 +1306,7 @@ int iov_iter_npages(const struct iov_iter *i, int maxpages)
 	if (iov_iter_is_bvec(i))
 		return bvec_npages(i, maxpages);
 	if (iov_iter_is_xarray(i)) {
-		unsigned offset = (i->xarray_start + i->iov_offset) % PAGE_SIZE;
+		unsigned int offset = offset_in_page(i->xarray_start + i->iov_offset);
 		int npages = DIV_ROUND_UP(offset + i->count, PAGE_SIZE);
 		return min(npages, maxpages);
 	}
@@ -1670,7 +1670,7 @@ static ssize_t iov_iter_extract_bvec_pages(struct iov_iter *i,
 
 	skip += i->bvec->bv_offset;
 	page = i->bvec->bv_page + skip / PAGE_SIZE;
-	offset = skip % PAGE_SIZE;
+	offset = offset_in_page(skip);
 	*offset0 = offset;
 
 	maxpages = want_pages_array(pages, maxsize, offset, maxpages);
@@ -1773,7 +1773,7 @@ static ssize_t iov_iter_extract_user_pages(struct iov_iter *i,
 		gup_flags |= FOLL_NOFAULT;
 
 	addr = first_iovec_segment(i, &maxsize);
-	*offset0 = offset = addr % PAGE_SIZE;
+	*offset0 = offset = offset_in_page(addr);
 	addr &= PAGE_MASK;
 	maxpages = want_pages_array(pages, maxsize, offset, maxpages);
 	if (!maxpages)
-- 
2.34.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ