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>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240411153126.16201-177-axboe@kernel.dk>
Date: Thu, 11 Apr 2024 09:15:16 -0600
From: Jens Axboe <axboe@...nel.dk>
To: linux-kernel@...r.kernel.org
Cc: Jens Axboe <axboe@...nel.dk>
Subject: [PATCH 176/437] soc: fsl: convert to read/write iterators

Signed-off-by: Jens Axboe <axboe@...nel.dk>
---
 drivers/soc/fsl/dpaa2-console.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/drivers/soc/fsl/dpaa2-console.c b/drivers/soc/fsl/dpaa2-console.c
index 6dbc77db7718..c0ababa17763 100644
--- a/drivers/soc/fsl/dpaa2-console.c
+++ b/drivers/soc/fsl/dpaa2-console.c
@@ -189,12 +189,12 @@ static int dpaa2_console_close(struct inode *node, struct file *fp)
 	return 0;
 }
 
-static ssize_t dpaa2_console_read(struct file *fp, char __user *buf,
-				  size_t count, loff_t *f_pos)
+static ssize_t dpaa2_console_read(struct kiocb *iocb, struct iov_iter *to)
 {
-	struct console_data *cd = fp->private_data;
+	struct console_data *cd = iocb->ki_filp->private_data;
 	size_t bytes = dpaa2_console_size(cd);
 	size_t bytes_end = cd->end_addr - cd->cur_ptr;
+	size_t count = iov_iter_count(to);
 	size_t written = 0;
 	void *kbuf;
 	int err;
@@ -214,18 +214,17 @@ static ssize_t dpaa2_console_read(struct file *fp, char __user *buf,
 
 	if (bytes > bytes_end) {
 		memcpy_fromio(kbuf, cd->cur_ptr, bytes_end);
-		if (copy_to_user(buf, kbuf, bytes_end)) {
+		if (!copy_to_iter_full(kbuf, bytes_end, to)) {
 			err = -EFAULT;
 			goto err_free_buf;
 		}
-		buf += bytes_end;
 		cd->cur_ptr = cd->start_addr;
 		bytes -= bytes_end;
 		written += bytes_end;
 	}
 
 	memcpy_fromio(kbuf, cd->cur_ptr, bytes);
-	if (copy_to_user(buf, kbuf, bytes)) {
+	if (!copy_to_iter_full(kbuf, bytes, to)) {
 		err = -EFAULT;
 		goto err_free_buf;
 	}
@@ -245,7 +244,7 @@ static const struct file_operations dpaa2_mc_console_fops = {
 	.owner          = THIS_MODULE,
 	.open           = dpaa2_mc_console_open,
 	.release        = dpaa2_console_close,
-	.read           = dpaa2_console_read,
+	.read_iter      = dpaa2_console_read,
 };
 
 static struct miscdevice dpaa2_mc_console_dev = {
@@ -258,7 +257,7 @@ static const struct file_operations dpaa2_aiop_console_fops = {
 	.owner          = THIS_MODULE,
 	.open           = dpaa2_aiop_console_open,
 	.release        = dpaa2_console_close,
-	.read           = dpaa2_console_read,
+	.read_iter      = dpaa2_console_read,
 };
 
 static struct miscdevice dpaa2_aiop_console_dev = {
-- 
2.43.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ