summaryrefslogtreecommitdiffstats
path: root/pci.c
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mageia.org>2013-04-05 10:36:53 +0000
committerThierry Vignaud <tv@mageia.org>2013-04-05 10:36:53 +0000
commit475c3c619983209f4951ba7a122685c6299e3f6e (patch)
treecdb90a4e4200e96687f49b4c602e71d5f78ab917 /pci.c
parentd78ee83b7bb82c2914e4d61b6a6231cb190ad3ab (diff)
downloadldetect-475c3c619983209f4951ba7a122685c6299e3f6e.tar
ldetect-475c3c619983209f4951ba7a122685c6299e3f6e.tar.gz
ldetect-475c3c619983209f4951ba7a122685c6299e3f6e.tar.bz2
ldetect-475c3c619983209f4951ba7a122685c6299e3f6e.tar.xz
ldetect-475c3c619983209f4951ba7a122685c6299e3f6e.zip
do not fake Xen blk & net controllers on dom0 (mga#9546)
Diffstat (limited to 'pci.c')
-rw-r--r--pci.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/pci.c b/pci.c
index 57f67ab..c841bbe 100644
--- a/pci.c
+++ b/pci.c
@@ -54,6 +54,16 @@ static void detect_xen(struct pciusb_entries *r) {
struct stat sb;
if (stat("/sys/bus/xen", &sb) != 0)
return;
+ FILE *f;
+ if (!(f = fopen("/sys/hypervisor/uuid", "r")))
+ return;
+ char buf[38];
+ fgets(buf, sizeof(buf) - 1, f);
+ fclose(f);
+ if (!strncmp(buf, "00000000-0000-0000-0000-000000000000", sizeof(buf)))
+ return;
+
+ // We're now sure to be in a Xen guest:
struct pciusb_entry *e = &r->entries[r->nb++];
pciusb_initialize(e);