mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
VFIO updates for v6.4-rc1
- Expose and allow R/W access to the PCIe DVSEC capability through vfio-pci, as we already do with the legacy vendor capability. (K V P Satyanarayana) - Fix kernel-doc issues with structure definitions. (Simon Horman) - Clarify ordering of operations relative to the kvm-vfio device for driver dependencies against the kvm pointer. (Yi Liu) -----BEGIN PGP SIGNATURE----- iQJPBAABCAA5FiEEQvbATlQL0amee4qQI5ubbjuwiyIFAmRRPjAbHGFsZXgud2ls bGlhbXNvbkByZWRoYXQuY29tAAoJECObm247sIsiePoQAJkUBO4bN3BvTG3iOkh1 vGrD3llhoUeD3AetT+5Y7pX0ml6wx9SLjcuFIUyYDMomLebpFXQAlI3gjE5eGbnf PVfn6zJDrcA5w2tFwkJHUnN+RgcaPW5tiviP6XkRFpS95HCQRsFdp9GhI2U3X7q7 1G1pTV4Fb6BPhU0zAOueW1HKovTFDi3qbzaG5JjosdZc8V32/USQ6ekkXSGMbuzN HsqLi2ujrtwAYluNKGxsuiDKXBFT8z8Mji7S9Z8RqoR0IF9q8JMUC0UMImn/XhKN 4XgCsibPt4o+RSStAf3vUPoP1l3I5J+3dE4ynLiHN8mNmbJ2gCLzQx18Dfww3V9n Ao8wdwZvvskfc+gkEJAh47OFf9GvCvvHtg3uZS9KPDidS3uY8K4ooIr4Pv1F+QMh rcnjZRFCakPB2tijmtg+1/0dY5/YEAn0mYWQ8ph5Ips36q30WBrbhBLJ47wE6PZ0 bsChcCU+4wK9e20lzMewa9QYnrRkvjGbmIo3GnjyPt4aG0VM08orIePy7ZVen3S3 +ieXBbuW61BLN/fZBFrDB4IxmekWq2TkkxSQCe8rn+jgs7qUUlFzn34Iqna6QTQV pG+O3pyflULZGZHkij4lOn1i2SqqbLxZofYose9hHq5r6ALD5EFNg3QVLuiAc7Tb 3ctmfePHowrzKMyHMlXb8DE7 =Ylh5 -----END PGP SIGNATURE----- Merge tag 'vfio-v6.4-rc1' of https://github.com/awilliam/linux-vfio Pull VFIO updates from Alex Williamson: - Expose and allow R/W access to the PCIe DVSEC capability through vfio-pci, as we already do with the legacy vendor capability (K V P Satyanarayana) - Fix kernel-doc issues with structure definitions (Simon Horman) - Clarify ordering of operations relative to the kvm-vfio device for driver dependencies against the kvm pointer (Yi Liu) * tag 'vfio-v6.4-rc1' of https://github.com/awilliam/linux-vfio: docs: kvm: vfio: Suggest KVM_DEV_VFIO_GROUP_ADD vs VFIO_GROUP_GET_DEVICE_FD ordering vfio: correct kdoc for ops structures vfio/pci: Add DVSEC PCI Extended Config Capability to user visible list.
This commit is contained in:
commit
7df047b3f0
@ -39,3 +39,8 @@ KVM_DEV_VFIO_GROUP attributes:
|
||||
- @groupfd is a file descriptor for a VFIO group;
|
||||
- @tablefd is a file descriptor for a TCE table allocated via
|
||||
KVM_CREATE_SPAPR_TCE.
|
||||
|
||||
The GROUP_ADD operation above should be invoked prior to accessing the
|
||||
device file descriptor via VFIO_GROUP_GET_DEVICE_FD in order to support
|
||||
drivers which require a kvm pointer to be set in their .open_device()
|
||||
callback.
|
||||
|
@ -96,6 +96,7 @@ static const u16 pci_ext_cap_length[PCI_EXT_CAP_ID_MAX + 1] = {
|
||||
[PCI_EXT_CAP_ID_SECPCI] = 0, /* not yet */
|
||||
[PCI_EXT_CAP_ID_PMUX] = 0, /* not yet */
|
||||
[PCI_EXT_CAP_ID_PASID] = 0, /* not yet */
|
||||
[PCI_EXT_CAP_ID_DVSEC] = 0xFF,
|
||||
};
|
||||
|
||||
/*
|
||||
@ -1101,6 +1102,7 @@ int __init vfio_pci_init_perm_bits(void)
|
||||
ret |= init_pci_ext_cap_err_perm(&ecap_perms[PCI_EXT_CAP_ID_ERR]);
|
||||
ret |= init_pci_ext_cap_pwr_perm(&ecap_perms[PCI_EXT_CAP_ID_PWR]);
|
||||
ecap_perms[PCI_EXT_CAP_ID_VNDR].writefn = vfio_raw_config_write;
|
||||
ecap_perms[PCI_EXT_CAP_ID_DVSEC].writefn = vfio_raw_config_write;
|
||||
|
||||
if (ret)
|
||||
vfio_pci_uninit_perm_bits();
|
||||
@ -1440,6 +1442,11 @@ static int vfio_ext_cap_len(struct vfio_pci_core_device *vdev, u16 ecap, u16 epo
|
||||
return PCI_TPH_BASE_SIZEOF + (sts * 2) + 2;
|
||||
}
|
||||
return PCI_TPH_BASE_SIZEOF;
|
||||
case PCI_EXT_CAP_ID_DVSEC:
|
||||
ret = pci_read_config_dword(pdev, epos + PCI_DVSEC_HEADER1, &dword);
|
||||
if (ret)
|
||||
return pcibios_err_to_errno(ret);
|
||||
return PCI_DVSEC_HEADER1_LEN(dword);
|
||||
default:
|
||||
pci_warn(pdev, "%s: unknown length for PCI ecap %#x@%#x\n",
|
||||
__func__, ecap, epos);
|
||||
|
@ -67,6 +67,7 @@ struct vfio_device {
|
||||
/**
|
||||
* struct vfio_device_ops - VFIO bus driver device callbacks
|
||||
*
|
||||
* @name: Name of the device driver.
|
||||
* @init: initialize private fields in device structure
|
||||
* @release: Reclaim private fields in device structure
|
||||
* @bind_iommufd: Called when binding the device to an iommufd
|
||||
@ -139,6 +140,8 @@ int vfio_iommufd_emulated_attach_ioas(struct vfio_device *vdev, u32 *pt_id);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* struct vfio_migration_ops - VFIO bus device driver migration callbacks
|
||||
*
|
||||
* @migration_set_state: Optional callback to change the migration state for
|
||||
* devices that support migration. It's mandatory for
|
||||
* VFIO_DEVICE_FEATURE_MIGRATION migration support.
|
||||
@ -164,6 +167,8 @@ struct vfio_migration_ops {
|
||||
};
|
||||
|
||||
/**
|
||||
* struct vfio_log_ops - VFIO bus device driver logging callbacks
|
||||
*
|
||||
* @log_start: Optional callback to ask the device start DMA logging.
|
||||
* @log_stop: Optional callback to ask the device stop DMA logging.
|
||||
* @log_read_and_clear: Optional callback to ask the device read
|
||||
|
Loading…
Reference in New Issue
Block a user