lkml.org 
[lkml]   [2011]   [Apr]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] vfio: Add an ioctl to reset the device
    Date
    When using VFIO to assign a device to a guest, we want to make sure
    the device is quiesced on VM reset to stop all DMA within the guest
    mapped memory. Add an ioctl which just calls pci_reset_function()
    and returns whether it succeeds.

    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    ---

    We've recently needed to add this functionality for current KVM
    based device assignment, VFIO should provide a way to do this too.
    An example of it being used in the Qemu VFIO driver can be found
    here:

    https://github.com/awilliam/qemu-vfio/blob/vfio/hw/vfio.c

    drivers/vfio/vfio_main.c | 4 ++++
    include/linux/vfio.h | 3 +++
    2 files changed, 7 insertions(+), 0 deletions(-)

    diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c
    index 7e427fc..b9bb692 100644
    --- a/drivers/vfio/vfio_main.c
    +++ b/drivers/vfio/vfio_main.c
    @@ -490,6 +490,10 @@ static long vfio_unl_ioctl(struct file *filep,
    ret = vfio_irq_eoi_eventfd(vdev, fd);
    break;

    + case VFIO_RESET_FUNCTION:
    + ret = pci_reset_function(vdev->pdev);
    + break;
    +
    default:
    return -EINVAL;
    }
    diff --git a/include/linux/vfio.h b/include/linux/vfio.h
    index f07d8fe..47d9bb9 100644
    --- a/include/linux/vfio.h
    +++ b/include/linux/vfio.h
    @@ -215,6 +215,9 @@ struct vfio_dma_map {
    /* Re-enable INTx via eventfd */
    #define VFIO_IRQ_EOI_EVENTFD _IOW(';', 110, int)

    +/* Reset PCI function */
    +#define VFIO_RESET_FUNCTION _IO(';', 111)
    +
    /*
    * Reads, writes, and mmaps determine which PCI BAR (or config space)
    * from the high level bits of the file offset


    \
     
     \ /
      Last update: 2011-04-19 22:35    [W:0.019 / U:31.520 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site