lkml.org 
[lkml]   [2012]   [May]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/5] pci: export pci_user functions for use by other drivers
    Date
    VFIO PCI support will make use of these for user initiated
    PCI config accesses.

    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Acked-by: Bjorn Helgaas <bhelgaas@google.com>
    ---

    drivers/pci/access.c | 6 ++++--
    drivers/pci/pci.h | 7 -------
    include/linux/pci.h | 8 ++++++++
    3 files changed, 12 insertions(+), 9 deletions(-)

    diff --git a/drivers/pci/access.c b/drivers/pci/access.c
    index 2a58164..ba91a7e 100644
    --- a/drivers/pci/access.c
    +++ b/drivers/pci/access.c
    @@ -162,7 +162,8 @@ int pci_user_read_config_##size \
    if (ret > 0) \
    ret = -EINVAL; \
    return ret; \
    -}
    +} \
    +EXPORT_SYMBOL_GPL(pci_user_read_config_##size);

    /* Returns 0 on success, negative values indicate error. */
    #define PCI_USER_WRITE_CONFIG(size,type) \
    @@ -181,7 +182,8 @@ int pci_user_write_config_##size \
    if (ret > 0) \
    ret = -EINVAL; \
    return ret; \
    -}
    +} \
    +EXPORT_SYMBOL_GPL(pci_user_write_config_##size);

    PCI_USER_READ_CONFIG(byte, u8)
    PCI_USER_READ_CONFIG(word, u16)
    diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
    index e494347..f2dcc46 100644
    --- a/drivers/pci/pci.h
    +++ b/drivers/pci/pci.h
    @@ -86,13 +86,6 @@ static inline bool pci_is_bridge(struct pci_dev *pci_dev)
    return !!(pci_dev->subordinate);
    }

    -extern int pci_user_read_config_byte(struct pci_dev *dev, int where, u8 *val);
    -extern int pci_user_read_config_word(struct pci_dev *dev, int where, u16 *val);
    -extern int pci_user_read_config_dword(struct pci_dev *dev, int where, u32 *val);
    -extern int pci_user_write_config_byte(struct pci_dev *dev, int where, u8 val);
    -extern int pci_user_write_config_word(struct pci_dev *dev, int where, u16 val);
    -extern int pci_user_write_config_dword(struct pci_dev *dev, int where, u32 val);
    -
    struct pci_vpd_ops {
    ssize_t (*read)(struct pci_dev *dev, loff_t pos, size_t count, void *buf);
    ssize_t (*write)(struct pci_dev *dev, loff_t pos, size_t count, const void *buf);
    diff --git a/include/linux/pci.h b/include/linux/pci.h
    index 8ceef38..1b6d1c5 100644
    --- a/include/linux/pci.h
    +++ b/include/linux/pci.h
    @@ -777,6 +777,14 @@ static inline int pci_write_config_dword(const struct pci_dev *dev, int where,
    return pci_bus_write_config_dword(dev->bus, dev->devfn, where, val);
    }

    +/* user-space driven config access */
    +int pci_user_read_config_byte(struct pci_dev *dev, int where, u8 *val);
    +int pci_user_read_config_word(struct pci_dev *dev, int where, u16 *val);
    +int pci_user_read_config_dword(struct pci_dev *dev, int where, u32 *val);
    +int pci_user_write_config_byte(struct pci_dev *dev, int where, u8 val);
    +int pci_user_write_config_word(struct pci_dev *dev, int where, u16 val);
    +int pci_user_write_config_dword(struct pci_dev *dev, int where, u32 val);
    +
    int __must_check pci_enable_device(struct pci_dev *dev);
    int __must_check pci_enable_device_io(struct pci_dev *dev);
    int __must_check pci_enable_device_mem(struct pci_dev *dev);


    \
     
     \ /
      Last update: 2012-05-30 07:41    [W:0.030 / U:63.124 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site