On 2025/11/24 10:45, Alex Williamson wrote:
> On Mon, 24 Nov 2025 09:39:58 +0800
> liulongfang <[email protected]> wrote:
> 
>> On 2025/11/8 1:41, Jason Gunthorpe wrote:
>>> Change the function signature of hisi_acc_vfio_pci_ioctl()
>>> and re-indent it.
>>>
>>> Reviewed-by: Kevin Tian <[email protected]>
>>> Acked-by: Pranjal Shrivastava <[email protected]>
>>> Signed-off-by: Jason Gunthorpe <[email protected]>
>>> ---
>>>  .../vfio/pci/hisilicon/hisi_acc_vfio_pci.c    | 57 +++++++++----------
>>>  1 file changed, 27 insertions(+), 30 deletions(-)
>>>
>>> diff --git a/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c 
>>> b/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
>>> index fde33f54e99ec5..899db4d742a010 100644
>>> --- a/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
>>> +++ b/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
>>> @@ -1324,43 +1324,39 @@ static ssize_t hisi_acc_vfio_pci_read(struct 
>>> vfio_device *core_vdev,
>>>     return vfio_pci_core_read(core_vdev, buf, new_count, ppos);
>>>  }
>>>  
>>> -static long hisi_acc_vfio_pci_ioctl(struct vfio_device *core_vdev, 
>>> unsigned int cmd,
>>> -                               unsigned long arg)
>>> +static int hisi_acc_vfio_ioctl_get_region(struct vfio_device *core_vdev,
>>> +                                     struct vfio_region_info __user *arg)
>>>  {
>>> -   if (cmd == VFIO_DEVICE_GET_REGION_INFO) {
>>> -           struct vfio_pci_core_device *vdev =
>>> -                   container_of(core_vdev, struct vfio_pci_core_device, 
>>> vdev);
>>> -           struct pci_dev *pdev = vdev->pdev;
>>> -           struct vfio_region_info info;
>>> -           unsigned long minsz;
>>> +   struct vfio_pci_core_device *vdev =
>>> +           container_of(core_vdev, struct vfio_pci_core_device, vdev);
>>> +   struct pci_dev *pdev = vdev->pdev;
>>> +   struct vfio_region_info info;
>>> +   unsigned long minsz;
>>>  
>>> -           minsz = offsetofend(struct vfio_region_info, offset);
>>> +   minsz = offsetofend(struct vfio_region_info, offset);
>>>  
>>> -           if (copy_from_user(&info, (void __user *)arg, minsz))
>>> -                   return -EFAULT;
>>> +   if (copy_from_user(&info, arg, minsz))
>>> +           return -EFAULT;
>>>  
>>> -           if (info.argsz < minsz)
>>> -                   return -EINVAL;
>>> +   if (info.argsz < minsz)
>>> +           return -EINVAL;
>>>  
>>> -           if (info.index == VFIO_PCI_BAR2_REGION_INDEX) {
>>> -                   info.offset = VFIO_PCI_INDEX_TO_OFFSET(info.index);
>>> +   if (info.index != VFIO_PCI_BAR2_REGION_INDEX)
>>> +           return vfio_pci_ioctl_get_region_info(core_vdev, arg);
>>>  
>>> -                   /*
>>> -                    * ACC VF dev BAR2 region consists of both functional
>>> -                    * register space and migration control register space.
>>> -                    * Report only the functional region to Guest.
>>> -                    */
>>> -                   info.size = pci_resource_len(pdev, info.index) / 2;
>>> +   info.offset = VFIO_PCI_INDEX_TO_OFFSET(info.index);
>>>  
>>
>> Please adapt based on the latest code in the Next branch.
>> Code updates have already been made here.
> 
> I resolved this on commit, please verify in the vfio next branch.
> Thanks,
>

On the next branch, the code after your adaptation modifications is correct.

Thanks.
Longfang!

> Alex
> .
> 

Reply via email to