Skip to content

Commit 4de676d

Browse files
ankita-nvawilliam
authored andcommitted
vfio/pci: rename and export do_io_rw()
do_io_rw() is used to read/write to the device MMIO. The grace hopper VFIO PCI variant driver require this functionality to read/write to its memory. Rename this as vfio_pci_core functions and export as GPL. Reviewed-by: Kevin Tian <kevin.tian@intel.com> Reviewed-by: Yishai Hadas <yishaih@nvidia.com> Signed-off-by: Ankit Agrawal <ankita@nvidia.com> Link: https://lore.kernel.org/r/20240220115055.23546-2-ankita@nvidia.com Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
1 parent 77943f4 commit 4de676d

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

drivers/vfio/pci/vfio_pci_rdwr.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,10 @@ VFIO_IOREAD(32)
9696
* reads with -1. This is intended for handling MSI-X vector tables and
9797
* leftover space for ROM BARs.
9898
*/
99-
static ssize_t do_io_rw(struct vfio_pci_core_device *vdev, bool test_mem,
100-
void __iomem *io, char __user *buf,
101-
loff_t off, size_t count, size_t x_start,
102-
size_t x_end, bool iswrite)
99+
ssize_t vfio_pci_core_do_io_rw(struct vfio_pci_core_device *vdev, bool test_mem,
100+
void __iomem *io, char __user *buf,
101+
loff_t off, size_t count, size_t x_start,
102+
size_t x_end, bool iswrite)
103103
{
104104
ssize_t done = 0;
105105
int ret;
@@ -201,6 +201,7 @@ static ssize_t do_io_rw(struct vfio_pci_core_device *vdev, bool test_mem,
201201

202202
return done;
203203
}
204+
EXPORT_SYMBOL_GPL(vfio_pci_core_do_io_rw);
204205

205206
int vfio_pci_core_setup_barmap(struct vfio_pci_core_device *vdev, int bar)
206207
{
@@ -279,8 +280,8 @@ ssize_t vfio_pci_bar_rw(struct vfio_pci_core_device *vdev, char __user *buf,
279280
x_end = vdev->msix_offset + vdev->msix_size;
280281
}
281282

282-
done = do_io_rw(vdev, res->flags & IORESOURCE_MEM, io, buf, pos,
283-
count, x_start, x_end, iswrite);
283+
done = vfio_pci_core_do_io_rw(vdev, res->flags & IORESOURCE_MEM, io, buf, pos,
284+
count, x_start, x_end, iswrite);
284285

285286
if (done >= 0)
286287
*ppos += done;
@@ -348,7 +349,8 @@ ssize_t vfio_pci_vga_rw(struct vfio_pci_core_device *vdev, char __user *buf,
348349
* probing, so we don't currently worry about access in relation
349350
* to the memory enable bit in the command register.
350351
*/
351-
done = do_io_rw(vdev, false, iomem, buf, off, count, 0, 0, iswrite);
352+
done = vfio_pci_core_do_io_rw(vdev, false, iomem, buf, off, count,
353+
0, 0, iswrite);
352354

353355
vga_put(vdev->pdev, rsrc);
354356

include/linux/vfio_pci_core.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,10 @@ void vfio_pci_core_finish_enable(struct vfio_pci_core_device *vdev);
130130
int vfio_pci_core_setup_barmap(struct vfio_pci_core_device *vdev, int bar);
131131
pci_ers_result_t vfio_pci_core_aer_err_detected(struct pci_dev *pdev,
132132
pci_channel_state_t state);
133-
133+
ssize_t vfio_pci_core_do_io_rw(struct vfio_pci_core_device *vdev, bool test_mem,
134+
void __iomem *io, char __user *buf,
135+
loff_t off, size_t count, size_t x_start,
136+
size_t x_end, bool iswrite);
134137
#define VFIO_IOWRITE_DECLATION(size) \
135138
int vfio_pci_core_iowrite##size(struct vfio_pci_core_device *vdev, \
136139
bool test_mem, u##size val, void __iomem *io);

0 commit comments

Comments
 (0)