dm: PTM: Check PTM root has more than one child

Add one more sanity check: If the root port has more than
	one child, we won't enable PTM on the guest.
	This is not necessarily an error.  We flag it as
	error just because we don't have this type of hw
	configuration at development time thus this configuration
	is not tested.

Tracked-On: #5915
Signed-off-by: Rong Liu <rong.l.liu@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
This commit is contained in:
Rong Liu
2021-05-05 22:41:09 +00:00
committed by wenlingz
parent 721c866d63
commit df64877c50
4 changed files with 47 additions and 26 deletions

View File

@@ -11,7 +11,21 @@
#include <stdbool.h>
#include "pciaccess.h"
struct pci_device_info;
struct pci_device_info {
bool is_bridge;
int primary_bus;
int secondary_bus;
int subordinate_bus;
uint16_t bdf;
struct pci_device_info *parent; /* pointer to its parent bridge */
struct pci_device_info *clist; /* children list */
/* cache of all pci devices
* FIXME: remove PCI_DEVICE_Q. To cleanup pci device cache:
* remove children, then remove parents
*/
TAILQ_ENTRY(pci_device_info) PCI_DEVICE_Q;
};
int pci_find_cap(struct pci_device *pdev, const int cap_id);
int pci_find_ext_cap(struct pci_device *pdev, int cap_id);