| .. SPDX-License-Identifier: GPL-2.0 | 
 |  | 
 | Acceptance criteria for vfio-pci device specific driver variants | 
 | ================================================================ | 
 |  | 
 | Overview | 
 | -------- | 
 | The vfio-pci driver exists as a device agnostic driver using the | 
 | system IOMMU and relying on the robustness of platform fault | 
 | handling to provide isolated device access to userspace.  While the | 
 | vfio-pci driver does include some device specific support, further | 
 | extensions for yet more advanced device specific features are not | 
 | sustainable.  The vfio-pci driver has therefore split out | 
 | vfio-pci-core as a library that may be reused to implement features | 
 | requiring device specific knowledge, ex. saving and loading device | 
 | state for the purposes of supporting migration. | 
 |  | 
 | In support of such features, it's expected that some device specific | 
 | variants may interact with parent devices (ex. SR-IOV PF in support of | 
 | a user assigned VF) or other extensions that may not be otherwise | 
 | accessible via the vfio-pci base driver.  Authors of such drivers | 
 | should be diligent not to create exploitable interfaces via these | 
 | interactions or allow unchecked userspace data to have an effect | 
 | beyond the scope of the assigned device. | 
 |  | 
 | New driver submissions are therefore requested to have approval via | 
 | sign-off/ack/review/etc for any interactions with parent drivers. | 
 | Additionally, drivers should make an attempt to provide sufficient | 
 | documentation for reviewers to understand the device specific | 
 | extensions, for example in the case of migration data, how is the | 
 | device state composed and consumed, which portions are not otherwise | 
 | available to the user via vfio-pci, what safeguards exist to validate | 
 | the data, etc.  To that extent, authors should additionally expect to | 
 | require reviews from at least one of the listed reviewers, in addition | 
 | to the overall vfio maintainer. |