linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: linux-kernel@vger.kernel.org
Cc: Jens Axboe <axboe@kernel.dk>
Subject: [PATCH 139/437] drm: amd: convert to read/write iterators
Date: Thu, 11 Apr 2024 09:14:39 -0600	[thread overview]
Message-ID: <20240411153126.16201-140-axboe@kernel.dk> (raw)
In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk>

Signed-off-by: Jens Axboe <axboe@kernel.dk>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c       |   4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c   |  71 +++++++----
 .../drm/amd/amdgpu/amdgpu_fw_attestation.c    |  23 ++--
 drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c       |   4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c    |  18 +--
 drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c       |  14 +--
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c       |  34 +++---
 .../gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c    |  22 ++--
 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c      |   6 +-
 .../gpu/drm/amd/amdgpu/amdgpu_securedisplay.c |  14 +--
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c       |  56 ++++-----
 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c       |   3 +-
 drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c      |  13 +-
 drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c   |  19 ++-
 .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 111 ++++++++++--------
 drivers/gpu/drm/amd/pm/amdgpu_pm.c            |  11 +-
 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c     |  17 +--
 17 files changed, 231 insertions(+), 209 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
index 493982f94649..8fd471e72ae9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
@@ -840,7 +840,7 @@ static int aca_dump_ce_open(struct inode *inode, struct file *file)
 static const struct file_operations aca_ce_dump_debug_fops = {
 	.owner = THIS_MODULE,
 	.open = aca_dump_ce_open,
-	.read = seq_read,
+	.read_iter = seq_read_iter,
 	.llseek = seq_lseek,
 	.release = single_release,
 };
@@ -858,7 +858,7 @@ static int aca_dump_ue_open(struct inode *inode, struct file *file)
 static const struct file_operations aca_ue_dump_debug_fops = {
 	.owner = THIS_MODULE,
 	.open = aca_dump_ue_open,
-	.read = seq_read,
+	.read_iter = seq_read_iter,
 	.llseek = seq_lseek,
 	.release = single_release,
 };
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
index f5d0fa207a88..f816d92430ff 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
@@ -194,6 +194,7 @@ static ssize_t amdgpu_debugfs_regs_read(struct file *f, char __user *buf,
 {
 	return amdgpu_debugfs_process_reg_op(true, f, buf, size, pos);
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_regs_read);
 
 /*
  * amdgpu_debugfs_regs_write - Callback for writing MMIO registers
@@ -203,6 +204,7 @@ static ssize_t amdgpu_debugfs_regs_write(struct file *f, const char __user *buf,
 {
 	return amdgpu_debugfs_process_reg_op(false, f, (char __user *)buf, size, pos);
 }
+FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_regs_write);
 
 static int amdgpu_debugfs_regs2_open(struct inode *inode, struct file *file)
 {
@@ -365,11 +367,13 @@ static ssize_t amdgpu_debugfs_regs2_read(struct file *f, char __user *buf, size_
 {
 	return amdgpu_debugfs_regs2_op(f, buf, *pos, size, 0);
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_regs2_read);
 
 static ssize_t amdgpu_debugfs_regs2_write(struct file *f, const char __user *buf, size_t size, loff_t *pos)
 {
 	return amdgpu_debugfs_regs2_op(f, (char __user *)buf, *pos, size, 1);
 }
+FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_regs2_write);
 
 static int amdgpu_debugfs_gprwave_open(struct inode *inode, struct file *file)
 {
@@ -475,6 +479,7 @@ static ssize_t amdgpu_debugfs_gprwave_read(struct file *f, char __user *buf, siz
 	kfree(data);
 	return result;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_gprwave_read);
 
 static long amdgpu_debugfs_gprwave_ioctl(struct file *f, unsigned int cmd, unsigned long data)
 {
@@ -562,6 +567,7 @@ static ssize_t amdgpu_debugfs_regs_pcie_read(struct file *f, char __user *buf,
 	amdgpu_virt_disable_access_debugfs(adev);
 	return r;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_regs_pcie_read);
 
 /**
  * amdgpu_debugfs_regs_pcie_write - Write to a PCIE register
@@ -622,6 +628,7 @@ static ssize_t amdgpu_debugfs_regs_pcie_write(struct file *f, const char __user
 	amdgpu_virt_disable_access_debugfs(adev);
 	return r;
 }
+FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_regs_pcie_write);
 
 /**
  * amdgpu_debugfs_regs_didt_read - Read from a DIDT register
@@ -681,6 +688,7 @@ static ssize_t amdgpu_debugfs_regs_didt_read(struct file *f, char __user *buf,
 	amdgpu_virt_disable_access_debugfs(adev);
 	return r;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_regs_didt_read);
 
 /**
  * amdgpu_debugfs_regs_didt_write - Write to a DIDT register
@@ -741,6 +749,7 @@ static ssize_t amdgpu_debugfs_regs_didt_write(struct file *f, const char __user
 	amdgpu_virt_disable_access_debugfs(adev);
 	return r;
 }
+FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_regs_didt_write);
 
 /**
  * amdgpu_debugfs_regs_smc_read - Read from a SMC register
@@ -800,6 +809,7 @@ static ssize_t amdgpu_debugfs_regs_smc_read(struct file *f, char __user *buf,
 	amdgpu_virt_disable_access_debugfs(adev);
 	return r;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_regs_smc_read);
 
 /**
  * amdgpu_debugfs_regs_smc_write - Write to a SMC register
@@ -860,6 +870,7 @@ static ssize_t amdgpu_debugfs_regs_smc_write(struct file *f, const char __user *
 	amdgpu_virt_disable_access_debugfs(adev);
 	return r;
 }
+FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_regs_smc_write);
 
 /**
  * amdgpu_debugfs_gca_config_read - Read from gfx config data
@@ -957,6 +968,7 @@ static ssize_t amdgpu_debugfs_gca_config_read(struct file *f, char __user *buf,
 	kfree(config);
 	return result;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_gca_config_read);
 
 /**
  * amdgpu_debugfs_sensor_read - Read from the powerplay sensors
@@ -1030,6 +1042,7 @@ static ssize_t amdgpu_debugfs_sensor_read(struct file *f, char __user *buf,
 	amdgpu_virt_disable_access_debugfs(adev);
 	return !r ? outsize : r;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_sensor_read);
 
 /** amdgpu_debugfs_wave_read - Read WAVE STATUS data
  *
@@ -1121,6 +1134,7 @@ static ssize_t amdgpu_debugfs_wave_read(struct file *f, char __user *buf,
 	amdgpu_virt_disable_access_debugfs(adev);
 	return result;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_wave_read);
 
 /** amdgpu_debugfs_gpr_read - Read wave gprs
  *
@@ -1219,6 +1233,7 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf,
 	kfree(data);
 	return r;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_gpr_read);
 
 /**
  * amdgpu_debugfs_gfxoff_residency_read - Read GFXOFF residency
@@ -1271,6 +1286,7 @@ static ssize_t amdgpu_debugfs_gfxoff_residency_read(struct file *f, char __user
 
 	return r;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_gfxoff_residency_read);
 
 /**
  * amdgpu_debugfs_gfxoff_residency_write - Log GFXOFF Residency
@@ -1320,7 +1336,7 @@ static ssize_t amdgpu_debugfs_gfxoff_residency_write(struct file *f, const char
 
 	return r;
 }
-
+FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_gfxoff_residency_write);
 
 /**
  * amdgpu_debugfs_gfxoff_count_read - Read GFXOFF entry count
@@ -1370,6 +1386,7 @@ static ssize_t amdgpu_debugfs_gfxoff_count_read(struct file *f, char __user *buf
 
 	return r;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_gfxoff_count_read);
 
 /**
  * amdgpu_debugfs_gfxoff_write - Enable/disable GFXOFF
@@ -1419,7 +1436,7 @@ static ssize_t amdgpu_debugfs_gfxoff_write(struct file *f, const char __user *bu
 
 	return r;
 }
-
+FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_gfxoff_write);
 
 /**
  * amdgpu_debugfs_gfxoff_read - read gfxoff status
@@ -1465,6 +1482,7 @@ static ssize_t amdgpu_debugfs_gfxoff_read(struct file *f, char __user *buf,
 
 	return r;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_gfxoff_read);
 
 static ssize_t amdgpu_debugfs_gfxoff_status_read(struct file *f, char __user *buf,
 						 size_t size, loff_t *pos)
@@ -1506,12 +1524,13 @@ static ssize_t amdgpu_debugfs_gfxoff_status_read(struct file *f, char __user *bu
 
 	return r;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_gfxoff_status_read);
 
 static const struct file_operations amdgpu_debugfs_regs2_fops = {
 	.owner = THIS_MODULE,
 	.unlocked_ioctl = amdgpu_debugfs_regs2_ioctl,
-	.read = amdgpu_debugfs_regs2_read,
-	.write = amdgpu_debugfs_regs2_write,
+	.read_iter = amdgpu_debugfs_regs2_read_iter,
+	.write_iter = amdgpu_debugfs_regs2_write_iter,
 	.open = amdgpu_debugfs_regs2_open,
 	.release = amdgpu_debugfs_regs2_release,
 	.llseek = default_llseek
@@ -1520,7 +1539,7 @@ static const struct file_operations amdgpu_debugfs_regs2_fops = {
 static const struct file_operations amdgpu_debugfs_gprwave_fops = {
 	.owner = THIS_MODULE,
 	.unlocked_ioctl = amdgpu_debugfs_gprwave_ioctl,
-	.read = amdgpu_debugfs_gprwave_read,
+	.read_iter = amdgpu_debugfs_gprwave_read_iter,
 	.open = amdgpu_debugfs_gprwave_open,
 	.release = amdgpu_debugfs_gprwave_release,
 	.llseek = default_llseek
@@ -1528,75 +1547,75 @@ static const struct file_operations amdgpu_debugfs_gprwave_fops = {
 
 static const struct file_operations amdgpu_debugfs_regs_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_regs_read,
-	.write = amdgpu_debugfs_regs_write,
+	.read_iter = amdgpu_debugfs_regs_read_iter,
+	.write_iter = amdgpu_debugfs_regs_write_iter,
 	.llseek = default_llseek
 };
 static const struct file_operations amdgpu_debugfs_regs_didt_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_regs_didt_read,
-	.write = amdgpu_debugfs_regs_didt_write,
+	.read_iter = amdgpu_debugfs_regs_didt_read_iter,
+	.write_iter = amdgpu_debugfs_regs_didt_write_iter,
 	.llseek = default_llseek
 };
 static const struct file_operations amdgpu_debugfs_regs_pcie_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_regs_pcie_read,
-	.write = amdgpu_debugfs_regs_pcie_write,
+	.read_iter = amdgpu_debugfs_regs_pcie_read_iter,
+	.write_iter = amdgpu_debugfs_regs_pcie_write_iter,
 	.llseek = default_llseek
 };
 static const struct file_operations amdgpu_debugfs_regs_smc_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_regs_smc_read,
-	.write = amdgpu_debugfs_regs_smc_write,
+	.read_iter = amdgpu_debugfs_regs_smc_read_iter,
+	.write_iter = amdgpu_debugfs_regs_smc_write_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations amdgpu_debugfs_gca_config_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_gca_config_read,
+	.read_iter = amdgpu_debugfs_gca_config_read_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations amdgpu_debugfs_sensors_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_sensor_read,
+	.read_iter = amdgpu_debugfs_sensor_read_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations amdgpu_debugfs_wave_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_wave_read,
+	.read_iter = amdgpu_debugfs_wave_read_iter,
 	.llseek = default_llseek
 };
 static const struct file_operations amdgpu_debugfs_gpr_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_gpr_read,
+	.read_iter = amdgpu_debugfs_gpr_read_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations amdgpu_debugfs_gfxoff_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_gfxoff_read,
-	.write = amdgpu_debugfs_gfxoff_write,
+	.read_iter = amdgpu_debugfs_gfxoff_read_iter,
+	.write_iter = amdgpu_debugfs_gfxoff_write_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations amdgpu_debugfs_gfxoff_status_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_gfxoff_status_read,
+	.read_iter = amdgpu_debugfs_gfxoff_status_read_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations amdgpu_debugfs_gfxoff_count_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_gfxoff_count_read,
+	.read_iter = amdgpu_debugfs_gfxoff_count_read_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations amdgpu_debugfs_gfxoff_residency_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_gfxoff_residency_read,
-	.write = amdgpu_debugfs_gfxoff_residency_write,
+	.read_iter = amdgpu_debugfs_gfxoff_residency_read_iter,
+	.write_iter = amdgpu_debugfs_gfxoff_residency_write_iter,
 	.llseek = default_llseek
 };
 
@@ -2058,6 +2077,7 @@ static ssize_t amdgpu_reset_dump_register_list_read(struct file *f,
 
 	return len;
 }
+FOPS_READ_ITER_HELPER(amdgpu_reset_dump_register_list_read);
 
 static ssize_t amdgpu_reset_dump_register_list_write(struct file *f,
 			const char __user *buf, size_t size, loff_t *pos)
@@ -2111,11 +2131,12 @@ static ssize_t amdgpu_reset_dump_register_list_write(struct file *f,
 	kfree(new);
 	return ret;
 }
+FOPS_WRITE_ITER_HELPER(amdgpu_reset_dump_register_list_write);
 
 static const struct file_operations amdgpu_reset_dump_register_list = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_reset_dump_register_list_read,
-	.write = amdgpu_reset_dump_register_list_write,
+	.read_iter = amdgpu_reset_dump_register_list_read_iter,
+	.write_iter = amdgpu_reset_dump_register_list_write_iter,
 	.llseek = default_llseek
 };
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fw_attestation.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fw_attestation.c
index 2d4b67175b55..a5edb6de1c10 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fw_attestation.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fw_attestation.c
@@ -50,23 +50,22 @@ struct FW_ATT_RECORD {
 	uint32_t AttFwTaId;              /* Ta ID (only in TA Attestation Table) */
 };
 
-static ssize_t amdgpu_fw_attestation_debugfs_read(struct file *f,
-						  char __user *buf,
-						  size_t size,
-						  loff_t *pos)
+static ssize_t amdgpu_fw_attestation_debugfs_read(struct kiocb *iocb,
+						  struct iov_iter *to)
 {
-	struct amdgpu_device *adev = (struct amdgpu_device *)file_inode(f)->i_private;
+	struct amdgpu_device *adev = file_inode(iocb->ki_filp)->i_private;
 	uint64_t records_addr = 0;
 	uint64_t vram_pos = 0;
 	struct FW_ATT_DB_HEADER fw_att_hdr = {0};
 	struct FW_ATT_RECORD fw_att_record = {0};
+	size_t size = iov_iter_count(to);
 
 	if (size < sizeof(struct FW_ATT_RECORD)) {
 		DRM_WARN("FW attestation input buffer not enough memory");
 		return -EINVAL;
 	}
 
-	if ((*pos + sizeof(struct FW_ATT_DB_HEADER)) >= FW_ATTESTATION_MAX_SIZE) {
+	if ((iocb->ki_pos + sizeof(struct FW_ATT_DB_HEADER)) >= FW_ATTESTATION_MAX_SIZE) {
 		DRM_WARN("FW attestation out of bounds");
 		return 0;
 	}
@@ -78,7 +77,7 @@ static ssize_t amdgpu_fw_attestation_debugfs_read(struct file *f,
 
 	vram_pos =  records_addr - adev->gmc.vram_start;
 
-	if (*pos == 0) {
+	if (iocb->ki_pos == 0) {
 		amdgpu_device_vram_access(adev,
 					  vram_pos,
 					  (uint32_t *)&fw_att_hdr,
@@ -94,7 +93,7 @@ static ssize_t amdgpu_fw_attestation_debugfs_read(struct file *f,
 	}
 
 	amdgpu_device_vram_access(adev,
-				  vram_pos + sizeof(struct FW_ATT_DB_HEADER) + *pos,
+				  vram_pos + sizeof(struct FW_ATT_DB_HEADER) + iocb->ki_pos,
 				  (uint32_t *)&fw_att_record,
 				  sizeof(struct FW_ATT_RECORD),
 				  false);
@@ -102,18 +101,16 @@ static ssize_t amdgpu_fw_attestation_debugfs_read(struct file *f,
 	if (fw_att_record.RecordValid != FW_ATTESTATION_RECORD_VALID)
 		return 0;
 
-	if (copy_to_user(buf, (void *)&fw_att_record, sizeof(struct FW_ATT_RECORD)))
+	if (!copy_to_iter_full((void *)&fw_att_record, sizeof(struct FW_ATT_RECORD), to))
 		return -EINVAL;
 
-	*pos += sizeof(struct FW_ATT_RECORD);
-
+	iocb->ki_pos += sizeof(struct FW_ATT_RECORD);
 	return sizeof(struct FW_ATT_RECORD);
 }
 
 static const struct file_operations amdgpu_fw_attestation_debugfs_ops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_fw_attestation_debugfs_read,
-	.write = NULL,
+	.read_iter = amdgpu_fw_attestation_debugfs_read,
 	.llseek = default_llseek
 };
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c
index 24ad4b97177b..c6a971a260df 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c
@@ -480,7 +480,7 @@ static int mca_dump_ce_open(struct inode *inode, struct file *file)
 static const struct file_operations mca_ce_dump_debug_fops = {
 	.owner = THIS_MODULE,
 	.open = mca_dump_ce_open,
-	.read = seq_read,
+	.read_iter = seq_read_iter,
 	.llseek = seq_lseek,
 	.release = single_release,
 };
@@ -498,7 +498,7 @@ static int mca_dump_ue_open(struct inode *inode, struct file *file)
 static const struct file_operations mca_ue_dump_debug_fops = {
 	.owner = THIS_MODULE,
 	.open = mca_dump_ue_open,
-	.read = seq_read,
+	.read_iter = seq_read_iter,
 	.llseek = seq_lseek,
 	.release = single_release,
 };
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c
index ca5c86e5f7cd..f96fde084fc6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c
@@ -26,12 +26,9 @@
 
 #if defined(CONFIG_DEBUG_FS)
 
-static ssize_t ta_if_load_debugfs_write(struct file *fp, const char *buf,
-					    size_t len, loff_t *off);
-static ssize_t ta_if_unload_debugfs_write(struct file *fp, const char *buf,
-					    size_t len, loff_t *off);
-static ssize_t ta_if_invoke_debugfs_write(struct file *fp, const char *buf,
-					    size_t len, loff_t *off);
+static ssize_t ta_if_load_debugfs_write_iter(struct kiocb *, struct iov_iter *);
+static ssize_t ta_if_unload_debugfs_write_iter(struct kiocb *, struct iov_iter *);
+static ssize_t ta_if_invoke_debugfs_write_iter(struct kiocb *, struct iov_iter *);
 
 static uint32_t get_bin_version(const uint8_t *bin)
 {
@@ -84,19 +81,19 @@ static void set_ta_context_funcs(struct psp_context *psp,
 }
 
 static const struct file_operations ta_load_debugfs_fops = {
-	.write  = ta_if_load_debugfs_write,
+	.write_iter  = ta_if_load_debugfs_write_iter,
 	.llseek = default_llseek,
 	.owner  = THIS_MODULE
 };
 
 static const struct file_operations ta_unload_debugfs_fops = {
-	.write  = ta_if_unload_debugfs_write,
+	.write_iter  = ta_if_unload_debugfs_write_iter,
 	.llseek = default_llseek,
 	.owner  = THIS_MODULE
 };
 
 static const struct file_operations ta_invoke_debugfs_fops = {
-	.write  = ta_if_invoke_debugfs_write,
+	.write_iter  = ta_if_invoke_debugfs_write_iter,
 	.llseek = default_llseek,
 	.owner  = THIS_MODULE
 };
@@ -240,6 +237,7 @@ static ssize_t ta_if_load_debugfs_write(struct file *fp, const char *buf, size_t
 
 	return ret;
 }
+FOPS_WRITE_ITER_HELPER(ta_if_load_debugfs_write);
 
 static ssize_t ta_if_unload_debugfs_write(struct file *fp, const char *buf, size_t len, loff_t *off)
 {
@@ -286,6 +284,7 @@ static ssize_t ta_if_unload_debugfs_write(struct file *fp, const char *buf, size
 
 	return ret;
 }
+FOPS_WRITE_ITER_HELPER(ta_if_unload_debugfs_write);
 
 static ssize_t ta_if_invoke_debugfs_write(struct file *fp, const char *buf, size_t len, loff_t *off)
 {
@@ -370,6 +369,7 @@ static ssize_t ta_if_invoke_debugfs_write(struct file *fp, const char *buf, size
 
 	return ret;
 }
+FOPS_WRITE_ITER_HELPER(ta_if_invoke_debugfs_write);
 
 void amdgpu_ta_if_debugfs_init(struct amdgpu_device *adev)
 {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c
index 123bcf5c2bb1..b946c94972b2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c
@@ -40,21 +40,22 @@
  * from header file ta_rap_if.h
  *
  */
-static ssize_t amdgpu_rap_debugfs_write(struct file *f, const char __user *buf,
-		size_t size, loff_t *pos)
+static ssize_t amdgpu_rap_debugfs_write(struct kiocb *iocb,
+					struct iov_iter *from)
 {
-	struct amdgpu_device *adev = (struct amdgpu_device *)file_inode(f)->i_private;
+	struct amdgpu_device *adev = file_inode(iocb->ki_filp)->i_private;
 	struct ta_rap_shared_memory *rap_shared_mem;
 	struct ta_rap_cmd_output_data *rap_cmd_output;
 	struct drm_device *dev = adev_to_drm(adev);
+	size_t size = iov_iter_count(from);
 	uint32_t op;
 	enum ta_rap_status status;
 	int ret;
 
-	if (*pos || size != 2)
+	if (iocb->ki_pos || size != 2)
 		return -EINVAL;
 
-	ret = kstrtouint_from_user(buf, size, *pos, &op);
+	ret = kstrtouint_from_iter(from, size, iocb->ki_pos, &op);
 	if (ret)
 		return ret;
 
@@ -109,8 +110,7 @@ static ssize_t amdgpu_rap_debugfs_write(struct file *f, const char __user *buf,
 
 static const struct file_operations amdgpu_rap_debugfs_ops = {
 	.owner = THIS_MODULE,
-	.read = NULL,
-	.write = amdgpu_rap_debugfs_write,
+	.write_iter = amdgpu_rap_debugfs_write,
 	.llseek = default_llseek
 };
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index 8ebab6f22e5a..f8daf833f0c4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -201,13 +201,13 @@ static int amdgpu_reserve_page_direct(struct amdgpu_device *adev, uint64_t addre
 	return 0;
 }
 
-static ssize_t amdgpu_ras_debugfs_read(struct file *f, char __user *buf,
-					size_t size, loff_t *pos)
+static ssize_t amdgpu_ras_debugfs_read(struct kiocb *iocb, struct iov_iter *to)
 {
-	struct ras_manager *obj = (struct ras_manager *)file_inode(f)->i_private;
+	struct ras_manager *obj = file_inode(iocb->ki_filp)->i_private;
 	struct ras_query_if info = {
 		.head = obj->head,
 	};
+	size_t size = iov_iter_count(to);
 	ssize_t s;
 	char val[128];
 
@@ -224,25 +224,23 @@ static ssize_t amdgpu_ras_debugfs_read(struct file *f, char __user *buf,
 	s = snprintf(val, sizeof(val), "%s: %lu\n%s: %lu\n",
 			"ue", info.ue_count,
 			"ce", info.ce_count);
-	if (*pos >= s)
+	if (iocb->ki_pos >= s)
 		return 0;
 
-	s -= *pos;
+	s -= iocb->ki_pos;
 	s = min_t(u64, s, size);
 
 
-	if (copy_to_user(buf, &val[*pos], s))
+	if (!copy_to_iter_full(&val[iocb->ki_pos], s, to))
 		return -EINVAL;
 
-	*pos += s;
-
+	iocb->ki_pos += s;
 	return s;
 }
 
 static const struct file_operations amdgpu_ras_debugfs_ops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_ras_debugfs_read,
-	.write = NULL,
+	.read_iter = amdgpu_ras_debugfs_read,
 	.llseek = default_llseek
 };
 
@@ -541,6 +539,7 @@ static ssize_t amdgpu_ras_debugfs_ctrl_write(struct file *f,
 
 	return size;
 }
+FOPS_WRITE_ITER_HELPER(amdgpu_ras_debugfs_ctrl_write);
 
 /**
  * DOC: AMDGPU RAS debugfs EEPROM table reset interface
@@ -558,12 +557,11 @@ static ssize_t amdgpu_ras_debugfs_ctrl_write(struct file *f,
  * will reset EEPROM table to 0 entries.
  *
  */
-static ssize_t amdgpu_ras_debugfs_eeprom_write(struct file *f,
-					       const char __user *buf,
-					       size_t size, loff_t *pos)
+static ssize_t amdgpu_ras_debugfs_eeprom_write(struct kiocb *iocb,
+					       struct iov_iter *from)
 {
-	struct amdgpu_device *adev =
-		(struct amdgpu_device *)file_inode(f)->i_private;
+	struct amdgpu_device *adev = file_inode(iocb->ki_filp)->i_private;
+	size_t size = iov_iter_count(from);
 	int ret;
 
 	ret = amdgpu_ras_eeprom_reset_table(
@@ -581,15 +579,13 @@ static ssize_t amdgpu_ras_debugfs_eeprom_write(struct file *f,
 
 static const struct file_operations amdgpu_ras_debugfs_ctrl_ops = {
 	.owner = THIS_MODULE,
-	.read = NULL,
-	.write = amdgpu_ras_debugfs_ctrl_write,
+	.write_iter = amdgpu_ras_debugfs_ctrl_write_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations amdgpu_ras_debugfs_eeprom_ops = {
 	.owner = THIS_MODULE,
-	.read = NULL,
-	.write = amdgpu_ras_debugfs_eeprom_write,
+	.write_iter = amdgpu_ras_debugfs_eeprom_write,
 	.llseek = default_llseek
 };
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
index b12808c0c331..4d62691e3804 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
@@ -1001,12 +1001,12 @@ uint32_t amdgpu_ras_eeprom_max_record_count(struct amdgpu_ras_eeprom_control *co
 }
 
 static ssize_t
-amdgpu_ras_debugfs_eeprom_size_read(struct file *f, char __user *buf,
-				    size_t size, loff_t *pos)
+amdgpu_ras_debugfs_eeprom_size_read(struct kiocb *iocb, struct iov_iter *to)
 {
-	struct amdgpu_device *adev = (struct amdgpu_device *)file_inode(f)->i_private;
+	struct amdgpu_device *adev = file_inode(iocb->ki_filp)->i_private;
 	struct amdgpu_ras *ras = amdgpu_ras_get_context(adev);
 	struct amdgpu_ras_eeprom_control *control = ras ? &ras->eeprom_control : NULL;
+	size_t size = iov_iter_count(to);
 	u8 data[50];
 	int res;
 
@@ -1020,24 +1020,22 @@ amdgpu_ras_debugfs_eeprom_size_read(struct file *f, char __user *buf,
 			       RAS_TBL_SIZE_BYTES, control->ras_max_record_count);
 	}
 
-	if (*pos >= res)
+	if (iocb->ki_pos >= res)
 		return 0;
 
-	res -= *pos;
+	res -= iocb->ki_pos;
 	res = min_t(size_t, res, size);
 
-	if (copy_to_user(buf, &data[*pos], res))
+	if (!copy_to_iter_full(&data[iocb->ki_pos], res, to))
 		return -EFAULT;
 
-	*pos += res;
-
+	iocb->ki_pos += res;
 	return res;
 }
 
 const struct file_operations amdgpu_ras_debugfs_eeprom_size_ops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_ras_debugfs_eeprom_size_read,
-	.write = NULL,
+	.read_iter = amdgpu_ras_debugfs_eeprom_size_read,
 	.llseek = default_llseek,
 };
 
@@ -1215,11 +1213,11 @@ amdgpu_ras_debugfs_eeprom_table_read(struct file *f, char __user *buf,
 		return amdgpu_ras_debugfs_table_read(f, buf, size, pos);
 	}
 }
+FOPS_READ_ITER_HELPER(amdgpu_ras_debugfs_eeprom_table_read);
 
 const struct file_operations amdgpu_ras_debugfs_eeprom_table_ops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_ras_debugfs_eeprom_table_read,
-	.write = NULL,
+	.read_iter = amdgpu_ras_debugfs_eeprom_table_read_iter,
 	.llseek = default_llseek,
 };
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
index 06f0a6534a94..a03bc2765b88 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
@@ -512,10 +512,11 @@ static ssize_t amdgpu_debugfs_ring_read(struct file *f, char __user *buf,
 
 	return result;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_ring_read);
 
 static const struct file_operations amdgpu_debugfs_ring_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_ring_read,
+	.read_iter = amdgpu_debugfs_ring_read_iter,
 	.llseek = default_llseek
 };
 
@@ -577,10 +578,11 @@ static ssize_t amdgpu_debugfs_mqd_read(struct file *f, char __user *buf,
 	kfree(kbuf);
 	return r;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_mqd_read);
 
 static const struct file_operations amdgpu_debugfs_mqd_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_mqd_read,
+	.read_iter = amdgpu_debugfs_mqd_read_iter,
 	.llseek = default_llseek
 };
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c
index 8ed0e073656f..f7bfa470979f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c
@@ -88,23 +88,24 @@ void psp_prep_securedisplay_cmd_buf(struct psp_context *psp, struct ta_securedis
 
 #if defined(CONFIG_DEBUG_FS)
 
-static ssize_t amdgpu_securedisplay_debugfs_write(struct file *f, const char __user *buf,
-		size_t size, loff_t *pos)
+static ssize_t amdgpu_securedisplay_debugfs_write(struct kiocb *iocb,
+						  struct iov_iter *from)
 {
-	struct amdgpu_device *adev = (struct amdgpu_device *)file_inode(f)->i_private;
+	struct amdgpu_device *adev = file_inode(iocb->ki_filp)->i_private;
 	struct psp_context *psp = &adev->psp;
 	struct ta_securedisplay_cmd *securedisplay_cmd;
 	struct drm_device *dev = adev_to_drm(adev);
+	size_t size = iov_iter_count(from);
 	uint32_t phy_id;
 	uint32_t op;
 	char str[64];
 	int ret;
 
-	if (*pos || size > sizeof(str) - 1)
+	if (iocb->ki_pos || size > sizeof(str) - 1)
 		return -EINVAL;
 
 	memset(str,  0, sizeof(str));
-	ret = copy_from_user(str, buf, size);
+	ret = !copy_from_iter_full(str, size, from);
 	if (ret)
 		return -EFAULT;
 
@@ -163,8 +164,7 @@ static ssize_t amdgpu_securedisplay_debugfs_write(struct file *f, const char __u
 
 static const struct file_operations amdgpu_securedisplay_debugfs_ops = {
 	.owner = THIS_MODULE,
-	.read = NULL,
-	.write = amdgpu_securedisplay_debugfs_write,
+	.write_iter = amdgpu_securedisplay_debugfs_write,
 	.llseek = default_llseek
 };
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index fc418e670fda..dd5a73291d85 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -2311,30 +2311,29 @@ DEFINE_SHOW_ATTRIBUTE(amdgpu_ttm_page_pool);
  *
  * Accesses VRAM via MMIO for debugging purposes.
  */
-static ssize_t amdgpu_ttm_vram_read(struct file *f, char __user *buf,
-				    size_t size, loff_t *pos)
+static ssize_t amdgpu_ttm_vram_read(struct kiocb *iocb, struct iov_iter *to)
 {
-	struct amdgpu_device *adev = file_inode(f)->i_private;
+	struct amdgpu_device *adev = file_inode(iocb->ki_filp)->i_private;
+	size_t size = iov_iter_count(to);
 	ssize_t result = 0;
 
-	if (size & 0x3 || *pos & 0x3)
+	if (size & 0x3 || iocb->ki_pos & 0x3)
 		return -EINVAL;
 
-	if (*pos >= adev->gmc.mc_vram_size)
+	if (iocb->ki_pos >= adev->gmc.mc_vram_size)
 		return -ENXIO;
 
-	size = min(size, (size_t)(adev->gmc.mc_vram_size - *pos));
+	size = min(size, (size_t)(adev->gmc.mc_vram_size - iocb->ki_pos));
 	while (size) {
 		size_t bytes = min(size, AMDGPU_TTM_VRAM_MAX_DW_READ * 4);
 		uint32_t value[AMDGPU_TTM_VRAM_MAX_DW_READ];
 
-		amdgpu_device_vram_access(adev, *pos, value, bytes, false);
-		if (copy_to_user(buf, value, bytes))
+		amdgpu_device_vram_access(adev, iocb->ki_pos, value, bytes, false);
+		if (!copy_to_iter_full(value, bytes, to))
 			return -EFAULT;
 
 		result += bytes;
-		buf += bytes;
-		*pos += bytes;
+		iocb->ki_pos += bytes;
 		size -= bytes;
 	}
 
@@ -2379,11 +2378,12 @@ static ssize_t amdgpu_ttm_vram_write(struct file *f, const char __user *buf,
 
 	return result;
 }
+FOPS_WRITE_ITER_HELPER(amdgpu_ttm_vram_write);
 
 static const struct file_operations amdgpu_ttm_vram_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_ttm_vram_read,
-	.write = amdgpu_ttm_vram_write,
+	.read_iter = amdgpu_ttm_vram_read,
+	.write_iter = amdgpu_ttm_vram_write_iter,
 	.llseek = default_llseek,
 };
 
@@ -2394,10 +2394,10 @@ static const struct file_operations amdgpu_ttm_vram_fops = {
  * GPU and the known addresses are not physical addresses but instead
  * bus addresses (e.g., what you'd put in an IB or ring buffer).
  */
-static ssize_t amdgpu_iomem_read(struct file *f, char __user *buf,
-				 size_t size, loff_t *pos)
+static ssize_t amdgpu_iomem_read(struct kiocb *iocb, struct iov_iter *to)
 {
-	struct amdgpu_device *adev = file_inode(f)->i_private;
+	struct amdgpu_device *adev = file_inode(iocb->ki_filp)->i_private;
+	size_t size = iov_iter_count(to);
 	struct iommu_domain *dom;
 	ssize_t result = 0;
 	int r;
@@ -2406,8 +2406,8 @@ static ssize_t amdgpu_iomem_read(struct file *f, char __user *buf,
 	dom = iommu_get_domain_for_dev(adev->dev);
 
 	while (size) {
-		phys_addr_t addr = *pos & PAGE_MASK;
-		loff_t off = *pos & ~PAGE_MASK;
+		phys_addr_t addr = iocb->ki_pos & PAGE_MASK;
+		loff_t off = iocb->ki_pos & ~PAGE_MASK;
 		size_t bytes = PAGE_SIZE - off;
 		unsigned long pfn;
 		struct page *p;
@@ -2430,13 +2430,13 @@ static ssize_t amdgpu_iomem_read(struct file *f, char __user *buf,
 			return -EPERM;
 
 		ptr = kmap_local_page(p);
-		r = copy_to_user(buf, ptr + off, bytes);
+		r = !copy_to_iter_full(ptr + off, bytes, to);
 		kunmap_local(ptr);
 		if (r)
 			return -EFAULT;
 
 		size -= bytes;
-		*pos += bytes;
+		iocb->ki_pos += bytes;
 		result += bytes;
 	}
 
@@ -2450,10 +2450,10 @@ static ssize_t amdgpu_iomem_read(struct file *f, char __user *buf,
  * GPU and the known addresses are not physical addresses but instead
  * bus addresses (e.g., what you'd put in an IB or ring buffer).
  */
-static ssize_t amdgpu_iomem_write(struct file *f, const char __user *buf,
-				 size_t size, loff_t *pos)
+static ssize_t amdgpu_iomem_write(struct kiocb *iocb, struct iov_iter *from)
 {
-	struct amdgpu_device *adev = file_inode(f)->i_private;
+	struct amdgpu_device *adev = file_inode(iocb->ki_filp)->i_private;
+	size_t size = iov_iter_count(from);
 	struct iommu_domain *dom;
 	ssize_t result = 0;
 	int r;
@@ -2461,8 +2461,8 @@ static ssize_t amdgpu_iomem_write(struct file *f, const char __user *buf,
 	dom = iommu_get_domain_for_dev(adev->dev);
 
 	while (size) {
-		phys_addr_t addr = *pos & PAGE_MASK;
-		loff_t off = *pos & ~PAGE_MASK;
+		phys_addr_t addr = iocb->ki_pos & PAGE_MASK;
+		loff_t off = iocb->ki_pos & ~PAGE_MASK;
 		size_t bytes = PAGE_SIZE - off;
 		unsigned long pfn;
 		struct page *p;
@@ -2481,13 +2481,13 @@ static ssize_t amdgpu_iomem_write(struct file *f, const char __user *buf,
 			return -EPERM;
 
 		ptr = kmap_local_page(p);
-		r = copy_from_user(ptr + off, buf, bytes);
+		r = !copy_from_iter_full(ptr + off, bytes, from);
 		kunmap_local(ptr);
 		if (r)
 			return -EFAULT;
 
 		size -= bytes;
-		*pos += bytes;
+		iocb->ki_pos += bytes;
 		result += bytes;
 	}
 
@@ -2496,8 +2496,8 @@ static ssize_t amdgpu_iomem_write(struct file *f, const char __user *buf,
 
 static const struct file_operations amdgpu_ttm_iomem_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_iomem_read,
-	.write = amdgpu_iomem_write,
+	.read_iter = amdgpu_iomem_read,
+	.write_iter = amdgpu_iomem_write,
 	.llseek = default_llseek
 };
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
index 9c514a606a2f..e2596f9fe6f0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
@@ -1142,10 +1142,11 @@ static ssize_t amdgpu_debugfs_vcn_fwlog_read(struct file *f, char __user *buf,
 	*pos += read_bytes;
 	return read_bytes;
 }
+FOPS_READ_ITER_HELPER(amdgpu_debugfs_vcn_fwlog_read);
 
 static const struct file_operations amdgpu_debugfs_vcnfwlog_fops = {
 	.owner = THIS_MODULE,
-	.read = amdgpu_debugfs_vcn_fwlog_read,
+	.read_iter = amdgpu_debugfs_vcn_fwlog_read_iter,
 	.llseek = default_llseek
 };
 #endif
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c b/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c
index 4a5a0a4e00f2..1f03e7915b99 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c
@@ -40,9 +40,10 @@ static int kfd_debugfs_hang_hws_read(struct seq_file *m, void *data)
 	return 0;
 }
 
-static ssize_t kfd_debugfs_hang_hws_write(struct file *file,
-	const char __user *user_buf, size_t size, loff_t *ppos)
+static ssize_t kfd_debugfs_hang_hws_write(struct kiocb *iocb,
+					  struct iov_iter *from)
 {
+	size_t size = iov_iter_count(from);
 	struct kfd_node *dev;
 	char tmp[16];
 	uint32_t gpu_id;
@@ -53,7 +54,7 @@ static ssize_t kfd_debugfs_hang_hws_write(struct file *file,
 		pr_err("Invalid input for gpu id.\n");
 		goto out;
 	}
-	if (copy_from_user(tmp, user_buf, size)) {
+	if (!copy_from_iter_full(tmp, size, from)) {
 		ret = -EFAULT;
 		goto out;
 	}
@@ -75,7 +76,7 @@ static ssize_t kfd_debugfs_hang_hws_write(struct file *file,
 static const struct file_operations kfd_debugfs_fops = {
 	.owner = THIS_MODULE,
 	.open = kfd_debugfs_open,
-	.read = seq_read,
+	.read_iter = seq_read_iter,
 	.llseek = seq_lseek,
 	.release = single_release,
 };
@@ -83,8 +84,8 @@ static const struct file_operations kfd_debugfs_fops = {
 static const struct file_operations kfd_debugfs_hang_hws_fops = {
 	.owner = THIS_MODULE,
 	.open = kfd_debugfs_open,
-	.read = seq_read,
-	.write = kfd_debugfs_hang_hws_write,
+	.read_iter = seq_read_iter,
+	.write_iter = kfd_debugfs_hang_hws_write,
 	.llseek = seq_lseek,
 	.release = single_release,
 };
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
index 06ac835190f9..04eba7e9dfae 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
@@ -46,9 +46,8 @@ struct kfd_smi_client {
 #define MAX_KFIFO_SIZE	1024
 
 static __poll_t kfd_smi_ev_poll(struct file *, struct poll_table_struct *);
-static ssize_t kfd_smi_ev_read(struct file *, char __user *, size_t, loff_t *);
-static ssize_t kfd_smi_ev_write(struct file *, const char __user *, size_t,
-				loff_t *);
+static ssize_t kfd_smi_ev_read_iter(struct kiocb *, struct iov_iter *);
+static ssize_t kfd_smi_ev_write(struct kiocb *, struct iov_iter *);
 static int kfd_smi_ev_release(struct inode *, struct file *);
 
 static const char kfd_smi_name[] = "kfd_smi_ev";
@@ -56,8 +55,8 @@ static const char kfd_smi_name[] = "kfd_smi_ev";
 static const struct file_operations kfd_smi_ev_fops = {
 	.owner = THIS_MODULE,
 	.poll = kfd_smi_ev_poll,
-	.read = kfd_smi_ev_read,
-	.write = kfd_smi_ev_write,
+	.read_iter = kfd_smi_ev_read_iter,
+	.write_iter = kfd_smi_ev_write,
 	.release = kfd_smi_ev_release
 };
 
@@ -121,16 +120,14 @@ static ssize_t kfd_smi_ev_read(struct file *filep, char __user *user,
 	kfree(buf);
 	return ret;
 }
+FOPS_READ_ITER_HELPER(kfd_smi_ev_read);
 
-static ssize_t kfd_smi_ev_write(struct file *filep, const char __user *user,
-				size_t size, loff_t *offset)
+static ssize_t kfd_smi_ev_write(struct kiocb *iocb, struct iov_iter *from)
 {
-	struct kfd_smi_client *client = filep->private_data;
+	struct kfd_smi_client *client = iocb->ki_filp->private_data;
 	uint64_t events;
 
-	if (!access_ok(user, size) || size < sizeof(events))
-		return -EFAULT;
-	if (copy_from_user(&events, user, sizeof(events)))
+	if (!copy_from_iter_full(&events, sizeof(events), from))
 		return -EFAULT;
 
 	WRITE_ONCE(client->events, events);
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
index eee4945653e2..ee1bd4372074 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
@@ -249,6 +249,7 @@ static ssize_t dp_link_settings_read(struct file *f, char __user *buf,
 	kfree(rd_buf);
 	return result;
 }
+FOPS_READ_ITER_HELPER(dp_link_settings_read);
 
 static ssize_t dp_link_settings_write(struct file *f, const char __user *buf,
 				 size_t size, loff_t *pos)
@@ -336,6 +337,7 @@ static ssize_t dp_link_settings_write(struct file *f, const char __user *buf,
 	kfree(wr_buf);
 	return size;
 }
+FOPS_WRITE_ITER_HELPER(dp_link_settings_write);
 
 static bool dp_mst_is_end_device(struct amdgpu_dm_connector *aconnector)
 {
@@ -483,6 +485,7 @@ static ssize_t dp_mst_link_setting(struct file *f, const char __user *buf,
 	kfree(wr_buf);
 	return size;
 }
+FOPS_WRITE_ITER_HELPER(dp_mst_link_setting);
 
 /* function: get current DP PHY settings: voltage swing, pre-emphasis,
  * post-cursor2 (defined by VESA DP specification)
@@ -566,6 +569,7 @@ static ssize_t dp_phy_settings_read(struct file *f, char __user *buf,
 	kfree(rd_buf);
 	return result;
 }
+FOPS_READ_ITER_HELPER(dp_phy_settings_read);
 
 static int dp_lttpr_status_show(struct seq_file *m, void *unused)
 {
@@ -686,6 +690,7 @@ static ssize_t dp_phy_settings_write(struct file *f, const char __user *buf,
 	kfree(wr_buf);
 	return size;
 }
+FOPS_WRITE_ITER_HELPER(dp_phy_settings_write);
 
 /* function description
  *
@@ -892,6 +897,7 @@ static ssize_t dp_phy_test_pattern_debugfs_write(struct file *f, const char __us
 
 	return size;
 }
+FOPS_WRITE_ITER_HELPER(dp_phy_test_pattern_debugfs_write);
 
 /*
  * Returns the DMCUB tracebuffer contents.
@@ -1149,6 +1155,7 @@ static ssize_t dp_dsc_passthrough_set(struct file *f, const char __user *buf,
 	kfree(wr_buf);
 	return 0;
 }
+FOPS_WRITE_ITER_HELPER(dp_dsc_passthrough_set);
 
 /*
  * Returns the HDCP capability of the Display (1.4 for now).
@@ -1270,6 +1277,7 @@ static ssize_t dp_sdp_message_debugfs_write(struct file *f, const char __user *b
 
 	return write_size;
 }
+FOPS_WRITE_ITER_HELPER(dp_sdp_message_debugfs_write);
 
 /* function: Read link's DSC & FEC capabilities
  *
@@ -1456,6 +1464,7 @@ static ssize_t trigger_hotplug(struct file *f, const char __user *buf,
 
 	return size;
 }
+FOPS_WRITE_ITER_HELPER(trigger_hotplug);
 
 /* function: read DSC status on the connector
  *
@@ -1527,6 +1536,7 @@ static ssize_t dp_dsc_clock_en_read(struct file *f, char __user *buf,
 	kfree(rd_buf);
 	return result;
 }
+FOPS_READ_ITER_HELPER(dp_dsc_clock_en_read);
 
 /* function: write force DSC on the connector
  *
@@ -1641,6 +1651,7 @@ static ssize_t dp_dsc_clock_en_write(struct file *f, const char __user *buf,
 	kfree(wr_buf);
 	return size;
 }
+FOPS_WRITE_ITER_HELPER(dp_dsc_clock_en_write);
 
 /* function: read DSC slice width parameter on the connector
  *
@@ -1713,6 +1724,7 @@ static ssize_t dp_dsc_slice_width_read(struct file *f, char __user *buf,
 	kfree(rd_buf);
 	return result;
 }
+FOPS_READ_ITER_HELPER(dp_dsc_slice_width_read);
 
 /* function: write DSC slice width parameter
  *
@@ -1825,6 +1837,7 @@ static ssize_t dp_dsc_slice_width_write(struct file *f, const char __user *buf,
 	kfree(wr_buf);
 	return size;
 }
+FOPS_WRITE_ITER_HELPER(dp_dsc_slice_width_write);
 
 /* function: read DSC slice height parameter on the connector
  *
@@ -1897,6 +1910,7 @@ static ssize_t dp_dsc_slice_height_read(struct file *f, char __user *buf,
 	kfree(rd_buf);
 	return result;
 }
+FOPS_READ_ITER_HELPER(dp_dsc_slice_height_read);
 
 /* function: write DSC slice height parameter
  *
@@ -2009,6 +2023,7 @@ static ssize_t dp_dsc_slice_height_write(struct file *f, const char __user *buf,
 	kfree(wr_buf);
 	return size;
 }
+FOPS_WRITE_ITER_HELPER(dp_dsc_slice_height_write);
 
 /* function: read DSC target rate on the connector in bits per pixel
  *
@@ -2077,6 +2092,7 @@ static ssize_t dp_dsc_bits_per_pixel_read(struct file *f, char __user *buf,
 	kfree(rd_buf);
 	return result;
 }
+FOPS_READ_ITER_HELPER(dp_dsc_bits_per_pixel_read);
 
 /* function: write DSC target rate in bits per pixel
  *
@@ -2181,6 +2197,7 @@ static ssize_t dp_dsc_bits_per_pixel_write(struct file *f, const char __user *bu
 	kfree(wr_buf);
 	return size;
 }
+FOPS_WRITE_ITER_HELPER(dp_dsc_bits_per_pixel_write);
 
 /* function: read DSC picture width parameter on the connector
  *
@@ -2252,6 +2269,7 @@ static ssize_t dp_dsc_pic_width_read(struct file *f, char __user *buf,
 	kfree(rd_buf);
 	return result;
 }
+FOPS_READ_ITER_HELPER(dp_dsc_pic_width_read);
 
 static ssize_t dp_dsc_pic_height_read(struct file *f, char __user *buf,
 				    size_t size, loff_t *pos)
@@ -2308,6 +2326,7 @@ static ssize_t dp_dsc_pic_height_read(struct file *f, char __user *buf,
 	kfree(rd_buf);
 	return result;
 }
+FOPS_READ_ITER_HELPER(dp_dsc_pic_height_read);
 
 /* function: read DSC chunk size parameter on the connector
  *
@@ -2379,6 +2398,7 @@ static ssize_t dp_dsc_chunk_size_read(struct file *f, char __user *buf,
 	kfree(rd_buf);
 	return result;
 }
+FOPS_READ_ITER_HELPER(dp_dsc_chunk_size_read);
 
 /* function: read DSC slice bpg offset on the connector
  *
@@ -2450,7 +2470,7 @@ static ssize_t dp_dsc_slice_bpg_offset_read(struct file *f, char __user *buf,
 	kfree(rd_buf);
 	return result;
 }
-
+FOPS_READ_ITER_HELPER(dp_dsc_slice_bpg_offset_read);
 
 /*
  * function description: Read max_requested_bpc property from the connector
@@ -2511,7 +2531,7 @@ static ssize_t dp_max_bpc_read(struct file *f, char __user *buf,
 	kfree(rd_buf);
 	return result;
 }
-
+FOPS_READ_ITER_HELPER(dp_max_bpc_read);
 
 /*
  * function description: Set max_requested_bpc property on the connector
@@ -2593,6 +2613,7 @@ static ssize_t dp_max_bpc_write(struct file *f, const char __user *buf,
 	kfree(wr_buf);
 	return size;
 }
+FOPS_WRITE_ITER_HELPER(dp_max_bpc_write);
 
 /*
  * Backlight at this moment.  Read only.
@@ -2751,104 +2772,104 @@ DEFINE_SHOW_ATTRIBUTE(is_dpia_link);
 
 static const struct file_operations dp_dsc_clock_en_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.read = dp_dsc_clock_en_read,
-	.write = dp_dsc_clock_en_write,
+	.read_iter = dp_dsc_clock_en_read_iter,
+	.write_iter = dp_dsc_clock_en_write_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_dsc_slice_width_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.read = dp_dsc_slice_width_read,
-	.write = dp_dsc_slice_width_write,
+	.read_iter = dp_dsc_slice_width_read_iter,
+	.write_iter = dp_dsc_slice_width_write_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_dsc_slice_height_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.read = dp_dsc_slice_height_read,
-	.write = dp_dsc_slice_height_write,
+	.read_iter = dp_dsc_slice_height_read_iter,
+	.write_iter = dp_dsc_slice_height_write_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_dsc_bits_per_pixel_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.read = dp_dsc_bits_per_pixel_read,
-	.write = dp_dsc_bits_per_pixel_write,
+	.read_iter = dp_dsc_bits_per_pixel_read_iter,
+	.write_iter = dp_dsc_bits_per_pixel_write_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_dsc_pic_width_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.read = dp_dsc_pic_width_read,
+	.read_iter = dp_dsc_pic_width_read_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_dsc_pic_height_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.read = dp_dsc_pic_height_read,
+	.read_iter = dp_dsc_pic_height_read_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_dsc_chunk_size_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.read = dp_dsc_chunk_size_read,
+	.read_iter = dp_dsc_chunk_size_read_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_dsc_slice_bpg_offset_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.read = dp_dsc_slice_bpg_offset_read,
+	.read_iter = dp_dsc_slice_bpg_offset_read_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations trigger_hotplug_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.write = trigger_hotplug,
+	.write_iter = trigger_hotplug_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_link_settings_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.read = dp_link_settings_read,
-	.write = dp_link_settings_write,
+	.read_iter = dp_link_settings_read_iter,
+	.write_iter = dp_link_settings_write_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_phy_settings_debugfs_fop = {
 	.owner = THIS_MODULE,
-	.read = dp_phy_settings_read,
-	.write = dp_phy_settings_write,
+	.read_iter = dp_phy_settings_read_iter,
+	.write_iter = dp_phy_settings_write_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_phy_test_pattern_fops = {
 	.owner = THIS_MODULE,
-	.write = dp_phy_test_pattern_debugfs_write,
+	.write_iter = dp_phy_test_pattern_debugfs_write_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations sdp_message_fops = {
 	.owner = THIS_MODULE,
-	.write = dp_sdp_message_debugfs_write,
+	.write_iter = dp_sdp_message_debugfs_write_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_max_bpc_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.read = dp_max_bpc_read,
-	.write = dp_max_bpc_write,
+	.read_iter = dp_max_bpc_read_iter,
+	.write_iter = dp_max_bpc_write_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_dsc_disable_passthrough_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.write = dp_dsc_passthrough_set,
+	.write_iter = dp_dsc_passthrough_set_iter,
 	.llseek = default_llseek
 };
 
 static const struct file_operations dp_mst_link_settings_debugfs_fops = {
 	.owner = THIS_MODULE,
-	.write = dp_mst_link_setting,
+	.write_iter = dp_mst_link_setting_iter,
 	.llseek = default_llseek
 };
 
@@ -3275,6 +3296,7 @@ static ssize_t edp_ilr_write(struct file *f, const char __user *buf,
 	kfree(wr_buf);
 	return size;
 }
+FOPS_WRITE_ITER_HELPER(edp_ilr_write);
 
 static int edp_ilr_open(struct inode *inode, struct file *file)
 {
@@ -3284,10 +3306,10 @@ static int edp_ilr_open(struct inode *inode, struct file *file)
 static const struct file_operations edp_ilr_debugfs_fops = {
 	.owner = THIS_MODULE,
 	.open = edp_ilr_open,
-	.read = seq_read,
+	.read_iter = seq_read_iter,
 	.llseek = seq_lseek,
 	.release = single_release,
-	.write = edp_ilr_write
+	.write_iter = edp_ilr_write_iter
 };
 
 void connector_debugfs_init(struct amdgpu_dm_connector *connector)
@@ -3552,18 +3574,15 @@ void crtc_debugfs_init(struct drm_crtc *crtc)
  * Writes DTN log state to the user supplied buffer.
  * Example usage: cat /sys/kernel/debug/dri/0/amdgpu_dm_dtn_log
  */
-static ssize_t dtn_log_read(
-	struct file *f,
-	char __user *buf,
-	size_t size,
-	loff_t *pos)
+static ssize_t dtn_log_read(struct kiocb *iocb, struct iov_iter *to)
 {
-	struct amdgpu_device *adev = file_inode(f)->i_private;
+	struct amdgpu_device *adev = file_inode(iocb->ki_filp)->i_private;
 	struct dc *dc = adev->dm.dc;
 	struct dc_log_buffer_ctx log_ctx = { 0 };
+	size_t size = iov_iter_count(to);
 	ssize_t result = 0;
 
-	if (!buf || !size)
+	if (!size)
 		return -EINVAL;
 
 	if (!dc->hwss.log_hw_state)
@@ -3571,13 +3590,13 @@ static ssize_t dtn_log_read(
 
 	dc->hwss.log_hw_state(dc, &log_ctx);
 
-	if (*pos < log_ctx.pos) {
-		size_t to_copy = log_ctx.pos - *pos;
+	if (iocb->ki_pos < log_ctx.pos) {
+		size_t to_copy = log_ctx.pos - iocb->ki_pos;
 
 		to_copy = min(to_copy, size);
 
-		if (!copy_to_user(buf, log_ctx.buf + *pos, to_copy)) {
-			*pos += to_copy;
+		if (copy_to_iter_full(log_ctx.buf + iocb->ki_pos, to_copy, to)) {
+			iocb->ki_pos += to_copy;
 			result = to_copy;
 		}
 	}
@@ -3591,13 +3610,10 @@ static ssize_t dtn_log_read(
  * Writes DTN log state to dmesg when triggered via a write.
  * Example usage: echo 1 > /sys/kernel/debug/dri/0/amdgpu_dm_dtn_log
  */
-static ssize_t dtn_log_write(
-	struct file *f,
-	const char __user *buf,
-	size_t size,
-	loff_t *pos)
+static ssize_t dtn_log_write(struct kiocb *iocb, struct iov_iter *from)
 {
-	struct amdgpu_device *adev = file_inode(f)->i_private;
+	struct amdgpu_device *adev = file_inode(iocb->ki_filp)->i_private;
+	size_t size = iov_iter_count(from);
 	struct dc *dc = adev->dm.dc;
 
 	/* Write triggers log output via dmesg. */
@@ -3972,18 +3988,19 @@ static ssize_t dcc_en_bits_read(
 	kfree(rd_buf);
 	return result;
 }
+FOPS_READ_ITER_HELPER(dcc_en_bits_read);
 
 void dtn_debugfs_init(struct amdgpu_device *adev)
 {
 	static const struct file_operations dtn_log_fops = {
 		.owner = THIS_MODULE,
-		.read = dtn_log_read,
-		.write = dtn_log_write,
+		.read_iter = dtn_log_read,
+		.write_iter = dtn_log_write,
 		.llseek = default_llseek
 	};
 	static const struct file_operations dcc_en_bits_fops = {
 		.owner = THIS_MODULE,
-		.read = dcc_en_bits_read,
+		.read_iter = dcc_en_bits_read_iter,
 		.llseek = default_llseek
 	};
 
diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index f09b9d49297e..d78f7b351f7d 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -4572,10 +4572,9 @@ DEFINE_SHOW_ATTRIBUTE(amdgpu_debugfs_pm_info);
  *
  * Reads debug memory region allocated to PMFW
  */
-static ssize_t amdgpu_pm_prv_buffer_read(struct file *f, char __user *buf,
-					 size_t size, loff_t *pos)
+static ssize_t amdgpu_pm_prv_buffer_read(struct kiocb *iocb, struct iov_iter *to)
 {
-	struct amdgpu_device *adev = file_inode(f)->i_private;
+	struct amdgpu_device *adev = file_inode(iocb->ki_filp)->i_private;
 	size_t smu_prv_buf_size;
 	void *smu_prv_buf;
 	int ret = 0;
@@ -4592,14 +4591,14 @@ static ssize_t amdgpu_pm_prv_buffer_read(struct file *f, char __user *buf,
 	if (!smu_prv_buf || !smu_prv_buf_size)
 		return -EINVAL;
 
-	return simple_read_from_buffer(buf, size, pos, smu_prv_buf,
-				       smu_prv_buf_size);
+	return simple_copy_to_iter(smu_prv_buf, &iocb->ki_pos,
+					smu_prv_buf_size, to);
 }
 
 static const struct file_operations amdgpu_debugfs_pm_prv_buffer_fops = {
 	.owner = THIS_MODULE,
 	.open = simple_open,
-	.read = amdgpu_pm_prv_buffer_read,
+	.read_iter = amdgpu_pm_prv_buffer_read,
 	.llseek = default_llseek,
 };
 
diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
index 246b211b1e85..04332432e57f 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
@@ -3603,20 +3603,13 @@ static int smu_stb_debugfs_open(struct inode *inode, struct file *filp)
 	return r;
 }
 
-static ssize_t smu_stb_debugfs_read(struct file *filp, char __user *buf, size_t size,
-				loff_t *pos)
+static ssize_t smu_stb_debugfs_read(struct kiocb *iocb, struct iov_iter *to)
 {
-	struct amdgpu_device *adev = filp->f_inode->i_private;
+	struct amdgpu_device *adev = iocb->ki_filp->f_inode->i_private;
 	struct smu_context *smu = adev->powerplay.pp_handle;
 
-
-	if (!filp->private_data)
-		return -EINVAL;
-
-	return simple_read_from_buffer(buf,
-				       size,
-				       pos, filp->private_data,
-				       smu->stb_context.stb_buf_size);
+	return simple_copy_to_iter(adev, &iocb->ki_pos,
+				       smu->stb_context.stb_buf_size, to);
 }
 
 static int smu_stb_debugfs_release(struct inode *inode, struct file *filp)
@@ -3637,7 +3630,7 @@ static int smu_stb_debugfs_release(struct inode *inode, struct file *filp)
 static const struct file_operations smu_stb_debugfs_fops = {
 	.owner = THIS_MODULE,
 	.open = smu_stb_debugfs_open,
-	.read = smu_stb_debugfs_read,
+	.read_iter = smu_stb_debugfs_read,
 	.release = smu_stb_debugfs_release,
 	.llseek = default_llseek,
 };
-- 
2.43.0


  parent reply	other threads:[~2024-04-11 15:35 UTC|newest]

Thread overview: 451+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-11 15:12 [PATCHSET RFC 0/437] Kill off old fops ->read() and ->write() Jens Axboe
2024-04-11 15:12 ` [PATCH 001/437] fs: split do_loop_readv_writev() into separate read/write side helpers Jens Axboe
2024-04-11 15:12 ` [PATCH 002/437] fs: add generic read/write iterator helpers Jens Axboe
2024-04-15 19:55   ` Al Viro
2024-04-15 20:11     ` Jens Axboe
2024-04-15 21:08       ` Al Viro
2024-04-15 21:16         ` Jens Axboe
2024-04-15 23:42           ` Al Viro
2024-04-16 20:14     ` David Laight
2024-04-11 15:12 ` [PATCH 003/437] fs: add helpers for defining " Jens Axboe
2024-04-11 15:12 ` [PATCH 004/437] fs: add simple_copy_{to,from}_iter() helpers Jens Axboe
2024-04-11 15:12 ` [PATCH 005/437] uio: add get/put_iter helpers Jens Axboe
2024-04-11 15:12 ` [PATCH 006/437] fs: add uio.h to fs.h Jens Axboe
2024-04-11 15:12 ` [PATCH 007/437] mm/util: add iterdup_nul() and iterdup() helpers Jens Axboe
2024-04-11 15:12 ` [PATCH 008/437] kstrtox: add iov_iter versions of the string conversion helpers Jens Axboe
2024-04-11 15:12 ` [PATCH 009/437] lib/string_helpers: split __parse_int_array() into a helper Jens Axboe
2024-04-11 15:12 ` [PATCH 010/437] lib/string_helpers: add parse_int_array_iter() Jens Axboe
2024-04-11 15:12 ` [PATCH 011/437] virtio_console: convert to read/write iterator helpers Jens Axboe
2024-04-11 15:12 ` [PATCH 012/437] char/adi: convert to read/write iterators Jens Axboe
2024-04-11 15:12 ` [PATCH 013/437] char/apm-emulation: " Jens Axboe
2024-04-11 15:12 ` [PATCH 014/437] char/applicom: " Jens Axboe
2024-04-11 15:12 ` [PATCH 015/437] char/nsc_gpio: " Jens Axboe
2024-04-11 15:12 ` [PATCH 016/437] char/dsp1620: " Jens Axboe
2024-04-11 15:12 ` [PATCH 017/437] char/dsp56k: " Jens Axboe
2024-04-11 15:12 ` [PATCH 018/437] char/dtlk: " Jens Axboe
2024-04-11 15:12 ` [PATCH 019/437] char/hpet: " Jens Axboe
2024-04-11 15:12 ` [PATCH 020/437] char/hw_random: " Jens Axboe
2024-04-11 15:12 ` [PATCH 021/437] char/ipmi: " Jens Axboe
2024-04-11 15:12 ` [PATCH 022/437] char/tpm: " Jens Axboe
2024-04-11 15:12 ` [PATCH 023/437] char/lp: " Jens Axboe
2024-04-11 15:12 ` [PATCH 024/437] char/mem: " Jens Axboe
2024-04-11 15:12 ` [PATCH 025/437] char/mwave: " Jens Axboe
2024-04-11 15:12 ` [PATCH 026/437] char/nvram: " Jens Axboe
2024-04-11 15:12 ` [PATCH 027/437] char/nwbutton: " Jens Axboe
2024-04-11 15:12 ` [PATCH 028/437] char/nwflash: " Jens Axboe
2024-04-11 15:12 ` [PATCH 029/437] char/pc8736x_gpio: " Jens Axboe
2024-04-11 15:12 ` [PATCH 030/437] char/powernv-op-panel: " Jens Axboe
2024-04-11 15:12 ` [PATCH 031/437] char/ppdev: " Jens Axboe
2024-04-11 15:12 ` [PATCH 032/437] char/ps3flash: " Jens Axboe
2024-04-11 15:12 ` [PATCH 033/437] char/scx200_gpio: " Jens Axboe
2024-04-11 15:12 ` [PATCH 034/437] char/sonypi: " Jens Axboe
2024-04-11 15:12 ` [PATCH 035/437] char/tlclk: " Jens Axboe
2024-04-11 15:12 ` [PATCH 036/437] char/xilinx_hwicap: " Jens Axboe
2024-04-11 15:12 ` [PATCH 037/437] char/xillybus: " Jens Axboe
2024-04-11 15:12 ` [PATCH 038/437] debugfs: convert to ->read_iter() Jens Axboe
2024-04-11 15:12 ` [PATCH 039/437] libfs: switch to read iter and add copy helpers Jens Axboe
2024-04-11 15:13 ` [PATCH 040/437] fs: convert generic_read_dir() to ->read_iter() Jens Axboe
2024-04-11 15:13 ` [PATCH 041/437] fs: convert any user of fops->read() for seq_read to read_iter Jens Axboe
2024-04-11 15:13 ` [PATCH 042/437] ceph: convert read_dir handler to read_iter() Jens Axboe
2024-04-11 15:13 ` [PATCH 043/437] ecryptfs: miscdev: convert to read/write iterators Jens Axboe
2024-04-11 15:13 ` [PATCH 044/437] ocfs2: " Jens Axboe
2024-04-11 15:13 ` [PATCH 045/437] orangefs: " Jens Axboe
2024-04-11 15:13 ` [PATCH 046/437] dlm: " Jens Axboe
2024-04-11 15:13 ` [PATCH 047/437] tracefs: " Jens Axboe
2024-04-11 15:13 ` [PATCH 048/437] ubifs: " Jens Axboe
2024-04-11 15:13 ` [PATCH 049/437] fuse: " Jens Axboe
2024-04-11 15:13 ` [PATCH 050/437] staging: convert drivers " Jens Axboe
2024-04-11 15:13 ` [PATCH 051/437] Bluetooth: convert " Jens Axboe
2024-04-11 15:13 ` [PATCH 052/437] net: mac80211: " Jens Axboe
2024-04-11 15:13 ` [PATCH 053/437] net: 6lowpan: convert debugfs " Jens Axboe
2024-04-11 15:13 ` [PATCH 054/437] net: sunrpc: convert " Jens Axboe
2024-04-11 15:13 ` [PATCH 055/437] net: wireless: " Jens Axboe
2024-04-11 15:13 ` [PATCH 056/437] net: rfkill: " Jens Axboe
2024-04-11 15:13 ` [PATCH 057/437] net: l2tp: " Jens Axboe
2024-04-11 15:13 ` [PATCH 058/437] fs: add IOCB_VECTORED flags Jens Axboe
2024-04-11 15:13 ` [PATCH 059/437] ALSA: core: convert to read/write iterators Jens Axboe
2024-04-11 15:13 ` [PATCH 060/437] ASoC: Intel: " Jens Axboe
2024-04-11 15:13 ` [PATCH 061/437] ASoC: fsl: " Jens Axboe
2024-04-11 15:13 ` [PATCH 062/437] ALSA: pcmtest: " Jens Axboe
2024-04-11 15:13 ` [PATCH 063/437] sound/oss/dmasound: " Jens Axboe
2024-04-11 15:13 ` [PATCH 064/437] ASoC: SOF: icp3-dtrace: " Jens Axboe
2024-04-11 15:13 ` [PATCH 065/437] SoC: SOF: icp4: " Jens Axboe
2024-04-11 15:13 ` [PATCH 066/437] ASoC: SOF: Core: " Jens Axboe
2024-04-11 15:13 ` [PATCH 067/437] ASoC: SOF: " Jens Axboe
2024-04-11 15:13 ` [PATCH 068/437] block: " Jens Axboe
2024-04-11 15:13 ` [PATCH 069/437] bpf: " Jens Axboe
2024-04-11 15:13 ` [PATCH 070/437] perf: convert events " Jens Axboe
2024-04-11 15:13 ` [PATCH 071/437] dma-debug: convert " Jens Axboe
2024-04-11 15:13 ` [PATCH 072/437] kernel/fail_function: " Jens Axboe
2024-04-11 15:13 ` [PATCH 073/437] kcsan: " Jens Axboe
2024-04-11 15:13 ` [PATCH 074/437] module: " Jens Axboe
2024-04-11 15:13 ` [PATCH 075/437] kernel/power: " Jens Axboe
2024-04-11 15:13 ` [PATCH 076/437] printk: " Jens Axboe
2024-04-11 15:13 ` [PATCH 077/437] relay: " Jens Axboe
2024-04-11 15:13 ` [PATCH 078/437] kernel/time: " Jens Axboe
2024-04-11 15:13 ` [PATCH 079/437] rv: " Jens Axboe
2024-04-11 15:13 ` [PATCH 080/437] tracing: " Jens Axboe
2024-04-11 15:13 ` [PATCH 081/437] gcov: " Jens Axboe
2024-04-11 15:13 ` [PATCH 082/437] sched/debug: " Jens Axboe
2024-04-11 15:13 ` [PATCH 083/437] kernel/irq: convert debugfs helpers " Jens Axboe
2024-04-11 15:13 ` [PATCH 084/437] locking/lock_events: convert " Jens Axboe
2024-04-11 15:13 ` [PATCH 085/437] kprobes: " Jens Axboe
2024-04-11 15:13 ` [PATCH 086/437] fs: add iterator based version of simple_transaction_read() Jens Axboe
2024-04-11 15:13 ` [PATCH 087/437] tomoyo: convert to read/write iterators Jens Axboe
2024-04-11 15:13 ` [PATCH 088/437] smack: " Jens Axboe
2024-04-11 15:13 ` [PATCH 089/437] apparmor: " Jens Axboe
2024-04-11 15:13 ` [PATCH 090/437] landlock: " Jens Axboe
2024-04-11 15:13 ` [PATCH 091/437] lsm: " Jens Axboe
2024-04-11 15:13 ` [PATCH 092/437] selinux: " Jens Axboe
2024-04-11 15:13 ` [PATCH 093/437] integrity: " Jens Axboe
2024-04-11 15:13 ` [PATCH 094/437] lockdown: " Jens Axboe
2024-04-11 15:13 ` [PATCH 095/437] security: " Jens Axboe
2024-04-11 15:13 ` [PATCH 096/437] mm: " Jens Axboe
2024-04-11 15:13 ` [PATCH 097/437] aoe: " Jens Axboe
2024-04-11 15:13 ` [PATCH 098/437] drbd: " Jens Axboe
2024-04-11 15:13 ` [PATCH 099/437] mtip32xx: " Jens Axboe
2024-04-11 15:14 ` [PATCH 100/437] zram: " Jens Axboe
2024-04-11 15:14 ` [PATCH 101/437] s390/dasd: " Jens Axboe
2024-04-11 15:14 ` [PATCH 102/437] lib: " Jens Axboe
2024-04-11 15:14 ` [PATCH 103/437] ipc: " Jens Axboe
2024-04-11 15:14 ` [PATCH 104/437] drivers/accel: " Jens Axboe
2024-04-11 15:14 ` [PATCH 105/437] drivers/acpi: " Jens Axboe
2024-04-11 15:14 ` [PATCH 106/437] crypto: hisilicon: " Jens Axboe
2024-04-11 15:14 ` [PATCH 107/437] crypto: iaa: " Jens Axboe
2024-04-11 15:14 ` [PATCH 108/437] crypto: qat: " Jens Axboe
2024-04-11 15:14 ` [PATCH 109/437] crypto: cpp: " Jens Axboe
2024-04-11 15:14 ` [PATCH 110/437] fs/pstore: " Jens Axboe
2024-04-11 15:14 ` [PATCH 111/437] drivers/gpio: convert to ->read_iter and ->write_iter Jens Axboe
2024-04-11 15:14 ` [PATCH 112/437] drivers/bluetooth: convert to read/write iterators Jens Axboe
2024-04-11 15:14 ` [PATCH 113/437] drivers/ras: " Jens Axboe
2024-04-11 15:14 ` [PATCH 114/437] fs/efivars: " Jens Axboe
2024-04-11 15:14 ` [PATCH 115/437] drivers/comedi: " Jens Axboe
2024-04-11 15:14 ` [PATCH 116/437] drivers/counter: " Jens Axboe
2024-04-11 15:14 ` [PATCH 117/437] drivers/hid: " Jens Axboe
2024-04-11 15:14 ` [PATCH 118/437] drivers/tty: convert to ->read_iter and ->write_iter Jens Axboe
2024-04-11 15:14 ` [PATCH 119/437] drivers/auxdisplay: convert to read/write iterators Jens Axboe
2024-04-11 15:14 ` [PATCH 120/437] fs/eventfd: " Jens Axboe
2024-04-11 15:14 ` [PATCH 121/437] drivers/input: " Jens Axboe
2024-04-11 15:14 ` [PATCH 122/437] drivers/pci: " Jens Axboe
2024-04-11 15:14 ` [PATCH 123/437] fs/fuse: " Jens Axboe
2024-04-11 15:14 ` [PATCH 124/437] firmware: arm_scmi: " Jens Axboe
2024-04-11 15:14 ` [PATCH 125/437] firmware: cirrus: " Jens Axboe
2024-04-11 15:14 ` [PATCH 126/437] firmware: efi: " Jens Axboe
2024-04-11 15:14 ` [PATCH 127/437] firmware: psci: " Jens Axboe
2024-04-11 15:14 ` [PATCH 128/437] firmware: turris-mox-rwtm: " Jens Axboe
2024-04-11 15:14 ` [PATCH 129/437] firmware: tegra: " Jens Axboe
2024-04-11 15:14 ` [PATCH 130/437] drivers/i2c: " Jens Axboe
2024-04-11 15:14 ` [PATCH 131/437] drivers/opp: " Jens Axboe
2024-04-11 15:14 ` [PATCH 132/437] drivers/base: " Jens Axboe
2024-04-11 15:14 ` [PATCH 133/437] drivers/bus: " Jens Axboe
2024-04-11 15:14 ` [PATCH 134/437] drivers/regulator: " Jens Axboe
2024-04-11 15:14 ` [PATCH 135/437] fs/notify: " Jens Axboe
2024-04-11 15:14 ` [PATCH 136/437] drm: switch drm_read() to be iterator based Jens Axboe
2024-04-11 15:14 ` [PATCH 137/437] drm: convert debugfs helpers to be read/write " Jens Axboe
2024-04-11 15:14 ` [PATCH 138/437] drm/i915: convert to read/write iterators Jens Axboe
2024-04-11 15:14 ` Jens Axboe [this message]
2024-04-11 15:14 ` [PATCH 140/437] drm: msm: " Jens Axboe
2024-04-11 15:14 ` [PATCH 141/437] drm: nouveau: " Jens Axboe
2024-04-11 15:14 ` [PATCH 142/437] drm: mipi: " Jens Axboe
2024-04-11 15:14 ` [PATCH 143/437] drm: mali: " Jens Axboe
2024-04-11 15:14 ` [PATCH 144/437] drm/bridge: it6505: " Jens Axboe
2024-04-11 15:14 ` [PATCH 145/437] drm/imagination: " Jens Axboe
2024-04-11 15:14 ` [PATCH 146/437] drm/loongson: " Jens Axboe
2024-04-11 15:14 ` [PATCH 147/437] drm/radeon/radeon_ttm: " Jens Axboe
2024-04-11 15:14 ` [PATCH 148/437] drm: armada: " Jens Axboe
2024-04-11 15:14 ` [PATCH 149/437] drm: omap: " Jens Axboe
2024-04-11 15:14 ` [PATCH 150/437] vga_switcheroo: " Jens Axboe
2024-04-11 15:14 ` [PATCH 151/437] drivers/clk: " Jens Axboe
2024-04-11 15:14 ` [PATCH 152/437] drivers/rtc: " Jens Axboe
2024-04-11 15:14 ` [PATCH 153/437] drivers/dma: " Jens Axboe
2024-04-11 15:14 ` [PATCH 154/437] fs/debugfs: " Jens Axboe
2024-04-11 15:14 ` [PATCH 155/437] HID: usbhid: " Jens Axboe
2024-04-11 15:14 ` [PATCH 156/437] usb: chipidea: " Jens Axboe
2024-04-11 15:14 ` [PATCH 157/437] usb: class: " Jens Axboe
2024-04-11 15:14 ` [PATCH 158/437] usb: core: " Jens Axboe
2024-04-11 15:14 ` [PATCH 159/437] usb: dwc2: " Jens Axboe
2024-04-11 15:15 ` [PATCH 160/437] usb: dwc3: " Jens Axboe
2024-04-11 15:15 ` [PATCH 161/437] usb: fotg210-hcd: " Jens Axboe
2024-04-11 15:15 ` [PATCH 162/437] usb: gadget: " Jens Axboe
2024-04-11 15:15 ` [PATCH 163/437] usb: host: ehci: " Jens Axboe
2024-04-11 15:15 ` [PATCH 164/437] usb: host: ohci: " Jens Axboe
2024-04-11 15:15 ` [PATCH 165/437] usb: host: uhci: " Jens Axboe
2024-04-11 15:15 ` [PATCH 166/437] usb: host: xhci: " Jens Axboe
2024-04-11 15:15 ` [PATCH 167/437] usb: image: mdc800: " Jens Axboe
2024-04-11 15:15 ` [PATCH 168/437] usb: misc: " Jens Axboe
2024-04-11 15:15 ` [PATCH 169/437] usb: mon: " Jens Axboe
2024-04-11 15:15 ` [PATCH 170/437] usb: mtu3: " Jens Axboe
2024-04-11 15:15 ` [PATCH 171/437] usb: musb: " Jens Axboe
2024-04-11 15:15 ` [PATCH 172/437] usb: skeleton: " Jens Axboe
2024-04-11 15:15 ` [PATCH 173/437] usb: gadget: atmel_usba_udc: " Jens Axboe
2024-04-11 15:15 ` [PATCH 174/437] soc: qcom: " Jens Axboe
2024-04-11 15:15 ` [PATCH 175/437] soc: aspeed: " Jens Axboe
2024-04-11 15:15 ` [PATCH 176/437] soc: fsl: " Jens Axboe
2024-04-11 15:15 ` [PATCH 177/437] soc: mediatek: " Jens Axboe
2024-04-11 15:15 ` [PATCH 178/437] soc: sifive: ccache: " Jens Axboe
2024-04-11 15:15 ` [PATCH 179/437] drivers/pinctrl: convert to ->read_iter and ->write_iter Jens Axboe
2024-04-11 15:15 ` [PATCH 180/437] drivers/phy: " Jens Axboe
2024-04-11 15:15 ` [PATCH 181/437] drivers/ufs: " Jens Axboe
2024-04-11 15:15 ` [PATCH 182/437] drivers/uio: " Jens Axboe
2024-04-11 15:15 ` [PATCH 183/437] drivers/platform: " Jens Axboe
2024-04-11 15:15 ` [PATCH 184/437] drivers/mtd: " Jens Axboe
2024-04-11 15:15 ` [PATCH 185/437] scsi: bfa: convert to read/write iterators Jens Axboe
2024-04-11 15:15 ` [PATCH 186/437] scsi: csiostor: " Jens Axboe
2024-04-11 15:15 ` [PATCH 187/437] scsi: fnic: " Jens Axboe
2024-04-11 15:15 ` [PATCH 188/437] scsi: hisi_sas: " Jens Axboe
2024-04-11 15:15 ` [PATCH 189/437] scsi: lpfc: " Jens Axboe
2024-04-11 15:15 ` [PATCH 190/437] scsi: megaraid: " Jens Axboe
2024-04-11 15:15 ` [PATCH 191/437] scsi: mpt3sas: " Jens Axboe
2024-04-11 15:15 ` [PATCH 192/437] scsi: qedf: " Jens Axboe
2024-04-11 15:15 ` [PATCH 193/437] scsi: qedi: " Jens Axboe
2024-04-11 15:15 ` [PATCH 194/437] scsi: qla2xxx: " Jens Axboe
2024-04-11 15:15 ` [PATCH 195/437] scsi: snic: " Jens Axboe
2024-04-11 15:15 ` [PATCH 196/437] scsi: cxlflash: " Jens Axboe
2024-04-11 15:15 ` [PATCH 197/437] scsi: scsi_debug: " Jens Axboe
2024-04-11 15:15 ` [PATCH 198/437] scsi: sg: " Jens Axboe
2024-04-11 15:15 ` [PATCH 199/437] scsi: st: " Jens Axboe
2024-04-11 15:15 ` [PATCH 200/437] staging: axis: " Jens Axboe
2024-04-11 15:15 ` [PATCH 201/437] staging: fieldbus: " Jens Axboe
2024-04-11 15:15 ` [PATCH 202/437] staging: greybus: " Jens Axboe
2024-04-11 15:15 ` [PATCH 203/437] staging: av7110: " Jens Axboe
2024-04-11 15:15 ` [PATCH 204/437] staging: vc04_services: " Jens Axboe
2024-04-11 15:15 ` [PATCH 205/437] drivers/xen: convert to ->read_iter and ->write_iter Jens Axboe
2024-04-11 15:15 ` [PATCH 206/437] virt: " Jens Axboe
2024-04-11 15:15 ` [PATCH 207/437] virt: fsl_hypervisor: convert to read/write iterators Jens Axboe
2024-04-11 15:15 ` [PATCH 208/437] drivers/video: convert to ->read_iter and ->write_iter Jens Axboe
2024-04-11 15:15 ` [PATCH 209/437] video: fbdev: pxa3xx-gcu: convert to read/write iterators Jens Axboe
2024-04-11 15:15 ` [PATCH 210/437] drivers/iommu: convert intel iommu " Jens Axboe
2024-04-11 15:15 ` [PATCH 211/437] drivers/iommu: convert omap " Jens Axboe
2024-04-11 15:15 ` [PATCH 212/437] misc: bcm_vk: convert to iterators Jens Axboe
2024-04-11 15:15 ` [PATCH 213/437] misc: lis3lv02d: " Jens Axboe
2024-04-11 15:15 ` [PATCH 214/437] misc: eeprom/idt_89hpesx: convert to read/write iterators Jens Axboe
2024-04-11 15:15 ` [PATCH 215/437] misc: hpilo: " Jens Axboe
2024-04-11 15:15 ` [PATCH 216/437] misc: lkdtm: " Jens Axboe
2024-04-11 15:15 ` [PATCH 217/437] misc: open-dice: " Jens Axboe
2024-04-11 15:15 ` [PATCH 218/437] misc: tps6594-pfsm: " Jens Axboe
2024-04-11 15:15 ` [PATCH 219/437] misc: ibmvmc: " Jens Axboe
2024-04-11 15:16 ` [PATCH 220/437] misc: cxl: " Jens Axboe
2024-04-11 15:16 ` [PATCH 221/437] misc: ocxl: " Jens Axboe
2024-04-11 15:16 ` [PATCH 222/437] drivers/isdn: " Jens Axboe
2024-04-11 15:16 ` [PATCH 223/437] drivers/leds: " Jens Axboe
2024-04-11 15:16 ` [PATCH 224/437] drivers/mailbox: " Jens Axboe
2024-04-11 15:16 ` [PATCH 225/437] drivers/mfd: " Jens Axboe
2024-04-11 15:16 ` [PATCH 226/437] drivers/misc/mei: " Jens Axboe
2024-04-11 15:16 ` [PATCH 227/437] misc: ibmasm: " Jens Axboe
2024-04-11 15:16 ` [PATCH 228/437] drivers/spi: " Jens Axboe
2024-04-11 15:16 ` [PATCH 229/437] drivers/nfc: " Jens Axboe
2024-04-11 15:16 ` [PATCH 230/437] drivers/nvme: " Jens Axboe
2024-04-11 15:16 ` [PATCH 231/437] drivers/firewire: " Jens Axboe
2024-04-11 15:16 ` [PATCH 232/437] drivers/mfd: " Jens Axboe
2024-04-11 15:16 ` [PATCH 233/437] watchdog: acquirewdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 234/437] watchdog: advantechwdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 235/437] watchdog: alim1535_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 236/437] watchdog: alim7101_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 237/437] watchdog: at91rm9200_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 238/437] watchdog: cpu5wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 239/437] watchdog: eurotechwdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 240/437] watchdog: geodewdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 241/437] watchdog: ib700wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 242/437] watchdog: ibmasr: " Jens Axboe
2024-04-11 15:16 ` [PATCH 243/437] watchdog: it8712f_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 244/437] watchdog: machzwd: " Jens Axboe
2024-04-11 15:16 ` [PATCH 245/437] watchdog: mei_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 246/437] watchdog: nv_tco: " Jens Axboe
2024-04-11 15:16 ` [PATCH 247/437] watchdog: pc87413_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 248/437] watchdog: pcwd_pci: " Jens Axboe
2024-04-11 15:16 ` [PATCH 249/437] watchdog: pcwd_usb: " Jens Axboe
2024-04-11 15:16 ` [PATCH 250/437] watchdog: rdc321x_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 251/437] watchdog: sa1100_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 252/437] watchdog: sbc60xxwdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 253/437] watchdog: sbc_epx_c3: " Jens Axboe
2024-04-11 15:16 ` [PATCH 254/437] watchdog: sbc_fitpc2_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 255/437] watchdog: sc1200wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 256/437] watchdog: sc520_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 257/437] watchdog: sch311x_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 258/437] watchdog: smsc37b787_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 259/437] watchdog: w83877f_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 260/437] watchdog: w83977f_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 261/437] watchdog: wafer5823wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 262/437] watchdog: watchdog_dev: " Jens Axboe
2024-04-11 15:16 ` [PATCH 263/437] watchdog: wdt_pci: " Jens Axboe
2024-04-11 15:16 ` [PATCH 264/437] watchdog: ath79_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 265/437] watchdog: cpwd: " Jens Axboe
2024-04-11 15:16 ` [PATCH 266/437] watchdog: gef_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 267/437] watchdog: indydog: " Jens Axboe
2024-04-11 15:16 ` [PATCH 268/437] watchdog: m54xx_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 269/437] watchdog: mixcomwd: " Jens Axboe
2024-04-11 15:16 ` [PATCH 270/437] watchdog: mtx-1_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 271/437] watchdog: pcwd: " Jens Axboe
2024-04-11 15:16 ` [PATCH 272/437] watchdog: pika_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 273/437] watchdog: rc32434_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 274/437] watchdog: riowd: " Jens Axboe
2024-04-11 15:16 ` [PATCH 275/437] watchdog: sb_wdog: " Jens Axboe
2024-04-11 15:16 ` [PATCH 276/437] watchdog: sbc7240_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 277/437] watchdog: sbc8360: " Jens Axboe
2024-04-11 15:16 ` [PATCH 278/437] watchdog: scx200_wdt: " Jens Axboe
2024-04-11 15:16 ` [PATCH 279/437] watchdog: wdrtas: " Jens Axboe
2024-04-11 15:17 ` [PATCH 280/437] watchdog: wdt: " Jens Axboe
2024-04-11 15:17 ` [PATCH 281/437] watchdog: wdt285: " Jens Axboe
2024-04-11 15:17 ` [PATCH 282/437] watchdog: wdt977: " Jens Axboe
2024-04-11 15:17 ` [PATCH 283/437] fs/binfmt_misc: " Jens Axboe
2024-04-11 15:17 ` [PATCH 284/437] fs/coda: " Jens Axboe
2024-04-11 15:17 ` [PATCH 285/437] fs/nfsd: " Jens Axboe
2024-04-11 15:17 ` [PATCH 286/437] ubifs: " Jens Axboe
2024-04-11 15:17 ` [PATCH 287/437] cachefiles: " Jens Axboe
2024-04-11 15:17 ` [PATCH 288/437] fs/xfs: " Jens Axboe
2024-04-11 15:17 ` [PATCH 289/437] fs/bcachefs: " Jens Axboe
2024-04-11 15:17 ` [PATCH 290/437] fs/ocfs2: " Jens Axboe
2024-04-11 15:17 ` [PATCH 291/437] drivers/net/wireless/marvell: " Jens Axboe
2024-04-11 15:17 ` [PATCH 292/437] fs/proc: " Jens Axboe
2024-04-11 15:17 ` [PATCH 293/437] fs: convert fs_open " Jens Axboe
2024-04-11 15:17 ` [PATCH 294/437] openpromfs: convert " Jens Axboe
2024-04-11 15:17 ` [PATCH 295/437] drivers/net/wireless/ti: " Jens Axboe
2024-04-11 15:17 ` [PATCH 296/437] drivers/net/wireless/intel: " Jens Axboe
2024-04-11 15:17 ` [PATCH 297/437] drivers/net/wireless/mediatek: " Jens Axboe
2024-04-11 15:17 ` [PATCH 298/437] drivers/net/wireless/ath/ath5k: " Jens Axboe
2024-04-11 15:17 ` [PATCH 299/437] drivers/net/wireless/ath/ath6kl: " Jens Axboe
2024-04-11 15:17 ` [PATCH 300/437] drivers/net/wireless/ath/carl9170: " Jens Axboe
2024-04-11 15:17 ` [PATCH 301/437] drivers/net/wireless/ath/wcn36xx: " Jens Axboe
2024-04-11 15:17 ` [PATCH 302/437] drivers/net/wireless/ath/wil6210: " Jens Axboe
2024-04-11 15:17 ` [PATCH 303/437] drivers/net/wireless/ath/ath9k: " Jens Axboe
2024-04-11 15:17 ` [PATCH 304/437] drivers/net/wireless/ath/ath10k: " Jens Axboe
2024-04-11 15:17 ` [PATCH 305/437] drivers/net/wireless/ath/ath11k: " Jens Axboe
2024-04-11 15:17 ` [PATCH 306/437] drivers/net/wireless/broadcom: " Jens Axboe
2024-04-11 15:17 ` [PATCH 307/437] drivers/net/wireless/ralink: " Jens Axboe
2024-04-11 15:17 ` [PATCH 308/437] wifi: rtlwifi: convert debugfs helpers " Jens Axboe
2024-04-11 15:17 ` [PATCH 309/437] wifi: rtw88: " Jens Axboe
2024-04-11 15:17 ` [PATCH 310/437] wifi: rtw89: " Jens Axboe
2024-04-11 15:17 ` [PATCH 311/437] wifi: rsi: rsi_91x_debugfs: convert " Jens Axboe
2024-04-11 15:17 ` [PATCH 312/437] drivers/net/wireless/silabs: " Jens Axboe
2024-04-11 15:17 ` [PATCH 313/437] drivers/net/wireless/st: " Jens Axboe
2024-04-11 15:17 ` [PATCH 314/437] drivers/net/ieee802154: " Jens Axboe
2024-04-11 15:17 ` [PATCH 315/437] drivers/net/netdevsim: " Jens Axboe
2024-04-11 15:17 ` [PATCH 316/437] drivers/net/ppp: " Jens Axboe
2024-04-11 15:17 ` [PATCH 317/437] drivers/net/wwan: " Jens Axboe
2024-04-11 15:17 ` [PATCH 318/437] drivers/net/xen-netback: " Jens Axboe
2024-04-11 15:17 ` [PATCH 319/437] drivers/net/ethernet/broadcom-bnxt: " Jens Axboe
2024-04-11 15:17 ` [PATCH 320/437] drivers/net/brocade-bnad: ensure the copied buf is NULL terminated Jens Axboe
2024-04-11 15:17 ` [PATCH 321/437] drivers/net/brocade-bnad: convert to read/write iterators Jens Axboe
2024-04-11 15:17 ` [PATCH 322/437] drivers/net/ethernet/intel-ice: ensure the copied buf is NULL terminated Jens Axboe
2024-04-11 15:17 ` [PATCH 323/437] drivers/net/ethernet/intel: convert to read/write iterators Jens Axboe
2024-04-11 15:17 ` [PATCH 324/437] drivers/net/ethernet/chelsio: " Jens Axboe
2024-04-11 15:17 ` [PATCH 325/437] drivers/net/ethernet/hisilicon: " Jens Axboe
2024-04-11 15:17 ` [PATCH 326/437] drivers/net/ethernet/huawei: " Jens Axboe
2024-04-11 15:17 ` [PATCH 327/437] drivers/net/ethernet/amd-xgbe: " Jens Axboe
2024-04-11 15:17 ` [PATCH 328/437] drivers/net/ethernet/marvell/octeontx2: " Jens Axboe
2024-04-11 15:17 ` [PATCH 329/437] drivers/net/ethernet/mellanox/mlx5/core: " Jens Axboe
2024-04-11 15:17 ` [PATCH 330/437] x86/kernel: " Jens Axboe
2024-04-11 15:17 ` [PATCH 331/437] x86/kvm: " Jens Axboe
2024-04-11 15:17 ` [PATCH 332/437] x86/mm: " Jens Axboe
2024-04-11 15:17 ` [PATCH 333/437] arch/arm: " Jens Axboe
2024-04-11 15:17 ` [PATCH 334/437] arch/mips: " Jens Axboe
2024-04-11 15:17 ` [PATCH 335/437] parisc: eisa_eeprom: " Jens Axboe
2024-04-11 15:17 ` [PATCH 336/437] arch/parisc: " Jens Axboe
2024-04-11 15:17 ` [PATCH 337/437] powerpc/kernel: " Jens Axboe
2024-04-11 15:17 ` [PATCH 338/437] powerpc/kvm: " Jens Axboe
2024-04-11 15:17 ` [PATCH 339/437] powerpc/spufs: " Jens Axboe
2024-04-11 15:18 ` [PATCH 340/437] powerpc/platforms: " Jens Axboe
2024-04-11 15:18 ` [PATCH 341/437] s390: cio: " Jens Axboe
2024-04-11 15:18 ` [PATCH 342/437] s390: fs3270: " Jens Axboe
2024-04-11 15:18 ` [PATCH 343/437] s390: hmcdrv: " Jens Axboe
2024-04-11 15:18 ` [PATCH 344/437] s390: tape_char: " Jens Axboe
2024-04-11 15:18 ` [PATCH 345/437] s390: vmcp: " Jens Axboe
2024-04-11 15:18 ` [PATCH 346/437] s390: vmur: " Jens Axboe
2024-04-11 15:18 ` [PATCH 347/437] s390: zcore: " Jens Axboe
2024-04-11 15:18 ` [PATCH 348/437] s390: crypto: " Jens Axboe
2024-04-11 15:18 ` [PATCH 349/437] s390: monreader: " Jens Axboe
2024-04-11 15:18 ` [PATCH 350/437] s390: monwriter: " Jens Axboe
2024-04-11 15:18 ` [PATCH 351/437] s390: hw_random: " Jens Axboe
2024-04-11 15:18 ` [PATCH 352/437] s390: vmlogrdr: " Jens Axboe
2024-04-11 15:18 ` [PATCH 353/437] arch/s390: " Jens Axboe
2024-04-11 15:18 ` [PATCH 354/437] arch/sh: " Jens Axboe
2024-04-11 15:18 ` [PATCH 355/437] arch/um: " Jens Axboe
2024-04-11 15:18 ` [PATCH 356/437] arch/sparc: " Jens Axboe
2024-04-11 15:18 ` [PATCH 357/437] samples/vfio-mdev: " Jens Axboe
2024-04-11 15:18 ` [PATCH 358/437] hwmon: fschmd: " Jens Axboe
2024-04-11 15:18 ` [PATCH 359/437] hwmon: w83793: " Jens Axboe
2024-04-11 15:18 ` [PATCH 360/437] hwmon: asus_atk0110: " Jens Axboe
2024-04-11 15:18 ` [PATCH 361/437] hwmon: mr75203: " Jens Axboe
2024-04-11 15:18 ` [PATCH 362/437] hwmon: acbel-fsg032: " Jens Axboe
2024-04-11 15:18 ` [PATCH 363/437] hwmon: ibm-cffps: " Jens Axboe
2024-04-11 15:18 ` [PATCH 364/437] hwmon: max20730: " Jens Axboe
2024-04-11 15:18 ` [PATCH 365/437] hwmon: pmbus: core: " Jens Axboe
2024-04-11 15:18 ` [PATCH 366/437] hwmon: q54sj108a2: " Jens Axboe
2024-04-11 15:18 ` [PATCH 367/437] hwmon: ucd9000: " Jens Axboe
2024-04-11 15:18 ` [PATCH 368/437] hwmon: pt5161l: " Jens Axboe
2024-04-11 15:18 ` [PATCH 369/437] drivers/mmc: " Jens Axboe
2024-04-11 15:18 ` [PATCH 370/437] drivers/most: " Jens Axboe
2024-04-11 15:18 ` [PATCH 371/437] drivers/ntb: " Jens Axboe
2024-04-11 15:18 ` [PATCH 372/437] drivers/md: convert bcache " Jens Axboe
2024-04-11 15:18 ` [PATCH 373/437] drivers/remoteproc: convert " Jens Axboe
2024-04-11 15:18 ` [PATCH 374/437] drivers/thunderbolt: " Jens Axboe
2024-04-11 15:18 ` [PATCH 375/437] drivers/vfio: " Jens Axboe
2024-04-11 15:18 ` [PATCH 376/437] drivers/fsi: " Jens Axboe
2024-04-11 15:18 ` [PATCH 377/437] iio: " Jens Axboe
2024-04-11 15:18 ` [PATCH 378/437] iio: adis16400: " Jens Axboe
2024-04-11 15:18 ` [PATCH 379/437] iio: adis16475: " Jens Axboe
2024-04-11 15:18 ` [PATCH 380/437] iio: adis16480: " Jens Axboe
2024-04-11 15:18 ` [PATCH 381/437] iio: bno055: " Jens Axboe
2024-04-11 15:18 ` [PATCH 382/437] iio: gyro/adis16136: " Jens Axboe
2024-04-11 15:18 ` [PATCH 383/437] intel_th: " Jens Axboe
2024-04-11 15:18 ` [PATCH 384/437] stm class: " Jens Axboe
2024-04-11 15:18 ` [PATCH 385/437] speakup: " Jens Axboe
2024-04-11 15:18 ` [PATCH 386/437] EDAC/versal: " Jens Axboe
2024-04-11 15:18 ` [PATCH 387/437] EDAC/xgene: " Jens Axboe
2024-04-11 15:18 ` [PATCH 388/437] EDAC/zynqmp: " Jens Axboe
2024-04-11 15:18 ` [PATCH 389/437] EDAC/thunderx: " Jens Axboe
2024-04-11 15:18 ` [PATCH 390/437] EDAC/npcm: " Jens Axboe
2024-04-11 15:18 ` [PATCH 391/437] EDAC/i5100: " Jens Axboe
2024-04-11 15:18 ` [PATCH 392/437] EDAC/altera: " Jens Axboe
2024-04-11 15:18 ` [PATCH 393/437] EDAC/debugfs: " Jens Axboe
2024-04-11 15:18 ` [PATCH 394/437] drivers/hsi: " Jens Axboe
2024-04-11 15:18 ` [PATCH 395/437] hsi: clients: cmt_speech: " Jens Axboe
2024-04-11 15:18 ` [PATCH 396/437] macintosh: adb: " Jens Axboe
2024-04-11 15:18 ` [PATCH 397/437] macintosh: ans-lcd: " Jens Axboe
2024-04-11 15:18 ` [PATCH 398/437] macintosh: smu: " Jens Axboe
2024-04-11 15:18 ` [PATCH 399/437] macintosh: via-pmu: " Jens Axboe
2024-04-11 15:19 ` [PATCH 400/437] drivers/extcon: " Jens Axboe
2024-04-11 15:19 ` [PATCH 401/437] drivers/gnss: " Jens Axboe
2024-04-11 15:19 ` [PATCH 402/437] drivers/rapidio: " Jens Axboe
2024-04-11 15:19 ` [PATCH 403/437] drivers/media/platform/mediatek/vcodec: " Jens Axboe
2024-04-11 15:19 ` [PATCH 404/437] infiniband/core: " Jens Axboe
2024-04-11 15:19 ` [PATCH 405/437] infiniband/cxgb4: " Jens Axboe
2024-04-11 15:19 ` [PATCH 406/437] infiniband/hfi1: " Jens Axboe
2024-04-11 15:19 ` [PATCH 407/437] infiniband/mlx5: " Jens Axboe
2024-04-11 15:19 ` [PATCH 408/437] infiniband/ocrdma: " Jens Axboe
2024-04-11 15:19 ` [PATCH 409/437] infiniband/qib: " Jens Axboe
2024-04-11 15:19 ` [PATCH 410/437] infiniband/hns: " Jens Axboe
2024-04-11 15:19 ` [PATCH 411/437] infiniband/usnic: " Jens Axboe
2024-04-11 15:19 ` [PATCH 412/437] hv: " Jens Axboe
2024-04-11 15:19 ` [PATCH 413/437] media/rc: " Jens Axboe
2024-05-04 12:31   ` Mauro Carvalho Chehab
2024-05-05 13:16     ` Jens Axboe
2024-04-11 15:19 ` [PATCH 414/437] media/dvb-core: " Jens Axboe
2024-04-11 15:19 ` [PATCH 415/437] media/common: " Jens Axboe
2024-04-11 15:19 ` [PATCH 416/437] media/platform: amphion: " Jens Axboe
2024-04-11 15:19 ` [PATCH 417/437] media/platform: mediatek: " Jens Axboe
2024-04-11 15:19 ` [PATCH 418/437] media: cec: " Jens Axboe
2024-04-11 15:19 ` [PATCH 419/437] media: media-devnode: " Jens Axboe
2024-04-11 15:19 ` [PATCH 420/437] media: bt8xx: " Jens Axboe
2024-04-11 15:19 ` [PATCH 421/437] media: dbbridge: " Jens Axboe
2024-04-11 15:19 ` [PATCH 422/437] media: ngene: " Jens Axboe
2024-04-11 15:19 ` [PATCH 423/437] media: radio-si476x: " Jens Axboe
2024-04-11 15:19 ` [PATCH 424/437] media: usb: uvc: " Jens Axboe
2024-04-11 15:19 ` [PATCH 425/437] media: v4l2-dev: " Jens Axboe
2024-04-11 15:19 ` [PATCH 426/437] firmware: xilinx: " Jens Axboe
2024-04-11 15:19 ` [PATCH 427/437] hwtracing: coresight: " Jens Axboe
2024-04-11 15:19 ` [PATCH 428/437] sbus: oradax: " Jens Axboe
2024-04-11 15:19 ` [PATCH 429/437] sbus: envctrl: " Jens Axboe
2024-04-11 15:19 ` [PATCH 430/437] sbus: flash: " Jens Axboe
2024-04-11 15:19 ` [PATCH 431/437] pci: hotplug: cpqphp: " Jens Axboe
2024-04-11 15:19 ` [PATCH 432/437] seq_file: switch to using ->read_iter() Jens Axboe
2024-04-11 15:19 ` [PATCH 433/437] fs/debugfs: remove (now) dead non-iterator debugfs_attr functions Jens Axboe
2024-04-11 15:19 ` [PATCH 434/437] lib/string_helpers: kill parse_int_array_user() Jens Axboe
2024-04-11 15:19 ` [PATCH 435/437] fs: kill off non-iter variants of simple_attr_{read,write}* Jens Axboe
2024-04-11 15:19 ` [PATCH 436/437] kstrtox: remove (now) dead helpers Jens Axboe
2024-04-11 15:19 ` [PATCH 437/437] REMOVE ->read() and ->write() Jens Axboe
2024-04-12  4:29 ` [PATCHSET RFC 0/437] Kill off old fops " Al Viro
2024-04-12  4:37   ` Al Viro
2024-04-12 13:58   ` Jens Axboe
2024-04-13  4:15     ` Al Viro
2024-04-13 15:37       ` Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240411153126.16201-140-axboe@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).