• Abhishek Sahu's avatar
    vfio/pci: Virtualize PME related registers bits and initialize to zero · 54918c28
    Abhishek Sahu authored
    If any PME event will be generated by PCI, then it will be mostly
    handled in the host by the root port PME code. For example, in the case
    of PCIe, the PME event will be sent to the root port and then the PME
    interrupt will be generated. This will be handled in
    drivers/pci/pcie/pme.c at the host side. Inside this, the
    pci_check_pme_status() will be called where PME_Status and PME_En bits
    will be cleared. So, the guest OS which is using vfio-pci device will
    not come to know about this PME event.
    
    To handle these PME events inside guests, we need some framework so
    that if any PME events will happen, then it needs to be forwarded to
    virtual machine monitor. We can virtualize PME related registers bits
    and initialize these bits to zero so vfio-pci device user will assume
    that it is not capable of asserting the PME# signal from any power state.
    Signed-off-by: default avatarAbhishek Sahu <abhsahu@nvidia.com>
    Link: https://lore.kernel.org/r/20220518111612.16985-4-abhsahu@nvidia.comSigned-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
    54918c28
vfio_pci_config.c 53 KB