lkml.org 
[lkml]   [2019]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 04/10] vfio_pci: make common functions be extern
    Date
    This patch makes the common functions (module agnostic functions) in
    vfio_pci.c to extern. So that such functions could be moved to a common
    source file.
    *) vfio_pci_set_vga_decode
    *) vfio_pci_enable
    *) vfio_pci_disable
    *) vfio_pci_ioctl
    *) vfio_pci_read
    *) vfio_pci_write
    *) vfio_pci_mmap
    *) vfio_pci_request
    *) vfio_pci_fill_ids
    *) vfio_pci_reflck_attach
    *) vfio_pci_reflck_put
    *) vfio_pci_probe_power_state

    Cc: Kevin Tian <kevin.tian@intel.com>
    Cc: Lu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: Liu Yi L <yi.l.liu@intel.com>
    ---
    drivers/vfio/pci/vfio_pci.c | 30 +++++++++++++-----------------
    drivers/vfio/pci/vfio_pci_private.h | 15 +++++++++++++++
    2 files changed, 28 insertions(+), 17 deletions(-)

    diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c
    index 2096e66..80a6b15 100644
    --- a/drivers/vfio/pci/vfio_pci.c
    +++ b/drivers/vfio/pci/vfio_pci.c
    @@ -62,7 +62,7 @@ MODULE_PARM_DESC(disable_idle_d3,
    * has no way to get to it and routing can be disabled externally at the
    * bridge.
    */
    -static unsigned int vfio_pci_set_vga_decode(void *opaque, bool single_vga)
    +unsigned int vfio_pci_set_vga_decode(void *opaque, bool single_vga)
    {
    struct vfio_pci_device *vdev = opaque;
    struct pci_dev *tmp = NULL, *pdev = vdev->pdev;
    @@ -163,7 +163,6 @@ static void vfio_pci_probe_mmaps(struct vfio_pci_device *vdev)
    }

    static void vfio_pci_try_bus_reset(struct vfio_pci_device *vdev);
    -static void vfio_pci_disable(struct vfio_pci_device *vdev);

    /*
    * INTx masking requires the ability to disable INTx signaling via PCI_COMMAND
    @@ -194,7 +193,7 @@ static bool vfio_pci_nointx(struct pci_dev *pdev)
    return false;
    }

    -static void vfio_pci_probe_power_state(struct vfio_pci_device *vdev)
    +void vfio_pci_probe_power_state(struct vfio_pci_device *vdev)
    {
    struct pci_dev *pdev = vdev->pdev;
    u16 pmcsr;
    @@ -245,7 +244,7 @@ int vfio_pci_set_power_state(struct vfio_pci_device *vdev, pci_power_t state)
    return ret;
    }

    -static int vfio_pci_enable(struct vfio_pci_device *vdev)
    +int vfio_pci_enable(struct vfio_pci_device *vdev)
    {
    struct pci_dev *pdev = vdev->pdev;
    int ret;
    @@ -352,7 +351,7 @@ static int vfio_pci_enable(struct vfio_pci_device *vdev)
    return ret;
    }

    -static void vfio_pci_disable(struct vfio_pci_device *vdev)
    +void vfio_pci_disable(struct vfio_pci_device *vdev)
    {
    struct pci_dev *pdev = vdev->pdev;
    struct vfio_pci_dummy_resource *dummy_res, *tmp;
    @@ -684,8 +683,8 @@ int vfio_pci_register_dev_region(struct vfio_pci_device *vdev,
    return 0;
    }

    -static long vfio_pci_ioctl(void *device_data,
    - unsigned int cmd, unsigned long arg)
    +long vfio_pci_ioctl(void *device_data,
    + unsigned int cmd, unsigned long arg)
    {
    struct vfio_pci_device *vdev = device_data;
    unsigned long minsz;
    @@ -1170,7 +1169,7 @@ static ssize_t vfio_pci_rw(void *device_data, char __user *buf,
    return -EINVAL;
    }

    -static ssize_t vfio_pci_read(void *device_data, char __user *buf,
    +ssize_t vfio_pci_read(void *device_data, char __user *buf,
    size_t count, loff_t *ppos)
    {
    if (!count)
    @@ -1179,7 +1178,7 @@ static ssize_t vfio_pci_read(void *device_data, char __user *buf,
    return vfio_pci_rw(device_data, buf, count, ppos, false);
    }

    -static ssize_t vfio_pci_write(void *device_data, const char __user *buf,
    +ssize_t vfio_pci_write(void *device_data, const char __user *buf,
    size_t count, loff_t *ppos)
    {
    if (!count)
    @@ -1188,7 +1187,7 @@ static ssize_t vfio_pci_write(void *device_data, const char __user *buf,
    return vfio_pci_rw(device_data, (char __user *)buf, count, ppos, true);
    }

    -static int vfio_pci_mmap(void *device_data, struct vm_area_struct *vma)
    +int vfio_pci_mmap(void *device_data, struct vm_area_struct *vma)
    {
    struct vfio_pci_device *vdev = device_data;
    struct pci_dev *pdev = vdev->pdev;
    @@ -1250,7 +1249,7 @@ static int vfio_pci_mmap(void *device_data, struct vm_area_struct *vma)
    req_len, vma->vm_page_prot);
    }

    -static void vfio_pci_request(void *device_data, unsigned int count)
    +void vfio_pci_request(void *device_data, unsigned int count)
    {
    struct vfio_pci_device *vdev = device_data;
    struct pci_dev *pdev = vdev->pdev;
    @@ -1282,9 +1281,6 @@ static const struct vfio_device_ops vfio_pci_ops = {
    .request = vfio_pci_request,
    };

    -static int vfio_pci_reflck_attach(struct vfio_pci_device *vdev);
    -static void vfio_pci_reflck_put(struct vfio_pci_reflck *reflck);
    -
    static int vfio_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
    {
    struct vfio_pci_device *vdev;
    @@ -1487,7 +1483,7 @@ static int vfio_pci_reflck_find(struct pci_dev *pdev, void *data)
    return 0;
    }

    -static int vfio_pci_reflck_attach(struct vfio_pci_device *vdev)
    +int vfio_pci_reflck_attach(struct vfio_pci_device *vdev)
    {
    bool slot = !pci_probe_reset_slot(vdev->pdev->slot);

    @@ -1513,7 +1509,7 @@ static void vfio_pci_reflck_release(struct kref *kref)
    mutex_unlock(&reflck_lock);
    }

    -static void vfio_pci_reflck_put(struct vfio_pci_reflck *reflck)
    +void vfio_pci_reflck_put(struct vfio_pci_reflck *reflck)
    {
    kref_put_mutex(&reflck->kref, vfio_pci_reflck_release, &reflck_lock);
    }
    @@ -1637,7 +1633,7 @@ static void __exit vfio_pci_cleanup(void)
    vfio_pci_uninit_perm_bits();
    }

    -static void __init vfio_pci_fill_ids(char *ids, struct pci_driver *driver)
    +void __init vfio_pci_fill_ids(char *ids, struct pci_driver *driver)
    {
    char *p, *id;
    int rc;
    diff --git a/drivers/vfio/pci/vfio_pci_private.h b/drivers/vfio/pci/vfio_pci_private.h
    index eae8d94..670268e 100644
    --- a/drivers/vfio/pci/vfio_pci_private.h
    +++ b/drivers/vfio/pci/vfio_pci_private.h
    @@ -185,6 +185,21 @@ extern int vfio_pci_register_dev_region(struct vfio_pci_device *vdev,

    extern int vfio_pci_set_power_state(struct vfio_pci_device *vdev,
    pci_power_t state);
    +extern unsigned int vfio_pci_set_vga_decode(void *opaque, bool single_vga);
    +extern int vfio_pci_enable(struct vfio_pci_device *vdev);
    +extern void vfio_pci_disable(struct vfio_pci_device *vdev);
    +extern long vfio_pci_ioctl(void *device_data,
    + unsigned int cmd, unsigned long arg);
    +extern ssize_t vfio_pci_read(void *device_data, char __user *buf,
    + size_t count, loff_t *ppos);
    +extern ssize_t vfio_pci_write(void *device_data, const char __user *buf,
    + size_t count, loff_t *ppos);
    +extern int vfio_pci_mmap(void *device_data, struct vm_area_struct *vma);
    +extern void vfio_pci_request(void *device_data, unsigned int count);
    +extern void vfio_pci_fill_ids(char *ids, struct pci_driver *driver);
    +extern int vfio_pci_reflck_attach(struct vfio_pci_device *vdev);
    +extern void vfio_pci_reflck_put(struct vfio_pci_reflck *reflck);
    +extern void vfio_pci_probe_power_state(struct vfio_pci_device *vdev);

    #ifdef CONFIG_VFIO_PCI_IGD
    extern int vfio_pci_igd_init(struct vfio_pci_device *vdev);
    --
    2.7.4
    \
     
     \ /
      Last update: 2019-11-22 12:42    [W:4.992 / U:3.520 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site