[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bc301d7d-49a7-8523-0bd4-f7f2a2fbfa81@linux.alibaba.com>
Date: Thu, 17 Feb 2022 19:13:07 +0800
From: Xiaoguang Wang <xiaoguang.wang@...ux.alibaba.com>
To: Greg KH <gregkh@...uxfoundation.org>,
Guixin Liu <kanie@...ux.alibaba.com>
Cc: bostroesser@...il.com, martin.petersen@...cle.com,
linux-scsi@...r.kernel.org, target-devel@...r.kernel.org,
linux-kernel@...r.kernel.org, xlpang@...ux.alibaba.com
Subject: Re: [PATCH 2/2] scsi:target:tcmu: reduce once copy by using uio ioctl
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
Powered by blists - more mailing lists