Re: [PATCH 2/2] scsi:target:tcmu: reduce once copy by using uio ioctl

From: Xiaoguang Wang
Date: Thu Feb 17 2022 - 06:13:26 EST


hi,

On Thu, Feb 17, 2022 at 10:29:22AM +0800, Guixin Liu wrote:
--- a/include/uapi/linux/target_core_user.h
+++ b/include/uapi/linux/target_core_user.h
@@ -185,4 +185,13 @@ enum tcmu_genl_attr {
};
#define TCMU_ATTR_MAX (__TCMU_ATTR_MAX - 1)
+struct tcmu_data_xfer {
+ unsigned short cmd_id;
+ unsigned long iov_cnt;
+ struct iovec __user *iovec;
+};
That is no way to define a structure that crosses the user/kernel
boundry, it just will not work at all, even if we wanted it to :(
Sorry, I don't quite understand your comments well, can you explain more why this structure
does not work, except that "unsigned short" or "unsigned long" here isn't correct, should use
u16 or u32.
Syscalls, such as readv/preadv also pass a struct iovec from user to kernel, thanks.


Regards,
Xiaoguang Wang

sorry,

greg k-h