On Tue, Aug 15, 2023 at 01:32:01PM -0300, Jason Gunthorpe wrote:
On Fri, Aug 11, 2023 at 12:15:00AM -0700, Yi Liu wrote:
+static int iommufd_get_hw_info(struct iommufd_ucmd *ucmd) +{
- struct iommu_hw_info *cmd = ucmd->cmd;
- unsigned int length = cmd->data_len;
- struct iommufd_device *idev;
- void __user *user_ptr;
- u32 hw_info_type;
- int rc = 0;
- if (cmd->flags || cmd->__reserved || !cmd->data_len)
return -EOPNOTSUPP;
Is there a reason to block 0 data_len? I think this should work. The code looks OK?
I did a quick test passing !data_len and !data_ptr. And it works by returning the type only.
Yet, in that case, should we mention this in the uAPI kdoc? It feels to me that the uAPI always expects user space to read out a length of data.
Thanks Nic