lkml.org 
[lkml]   [2018]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH kernel v7 19/20] vfio_pci: Allow regions to add own capabilities
    Date
    VFIO regions already support region capabilities with a limited set of
    fields. However the subdriver might have to report to the userspace
    additional bits.

    This adds an add_capability() hook to vfio_pci_regops.

    Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    Acked-by: Alex Williamson <alex.williamson@redhat.com>
    ---
    Changes:
    v3:
    * removed confusing rationale for the patch, the next patch makes
    use of it anyway
    ---
    drivers/vfio/pci/vfio_pci_private.h | 3 +++
    drivers/vfio/pci/vfio_pci.c | 6 ++++++
    2 files changed, 9 insertions(+)

    diff --git a/drivers/vfio/pci/vfio_pci_private.h b/drivers/vfio/pci/vfio_pci_private.h
    index 86aab05..93c1738 100644
    --- a/drivers/vfio/pci/vfio_pci_private.h
    +++ b/drivers/vfio/pci/vfio_pci_private.h
    @@ -62,6 +62,9 @@ struct vfio_pci_regops {
    int (*mmap)(struct vfio_pci_device *vdev,
    struct vfio_pci_region *region,
    struct vm_area_struct *vma);
    + int (*add_capability)(struct vfio_pci_device *vdev,
    + struct vfio_pci_region *region,
    + struct vfio_info_cap *caps);
    };

    struct vfio_pci_region {
    diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c
    index 4a6f7c0..6cb70cf 100644
    --- a/drivers/vfio/pci/vfio_pci.c
    +++ b/drivers/vfio/pci/vfio_pci.c
    @@ -763,6 +763,12 @@ static long vfio_pci_ioctl(void *device_data,
    if (ret)
    return ret;

    + if (vdev->region[i].ops->add_capability) {
    + ret = vdev->region[i].ops->add_capability(vdev,
    + &vdev->region[i], &caps);
    + if (ret)
    + return ret;
    + }
    }
    }

    --
    2.17.1
    \
     
     \ /
      Last update: 2018-12-20 09:25    [W:4.226 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site