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