diff options
Diffstat (limited to '')
-rw-r--r-- | super-intel.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/super-intel.c b/super-intel.c index 3fe304aa..8a80c5b0 100644 --- a/super-intel.c +++ b/super-intel.c @@ -1766,7 +1766,7 @@ static int ahci_enumerate_ports(const char *hba_path, int port_count, int host_b return err; } -static void print_vmd_attached_devs(struct sys_dev *hba) +static int print_vmd_attached_devs(struct sys_dev *hba) { struct dirent *ent; DIR *dir; @@ -1775,14 +1775,14 @@ static void print_vmd_attached_devs(struct sys_dev *hba) char *c, *rp; if (hba->type != SYS_DEV_VMD) - return; + return 1; /* scroll through /sys/dev/block looking for devices attached to * this hba */ dir = opendir("/sys/bus/pci/drivers/nvme"); if (!dir) - return; + return 1; for (ent = readdir(dir); ent; ent = readdir(dir)) { int n; @@ -1818,6 +1818,7 @@ static void print_vmd_attached_devs(struct sys_dev *hba) } closedir(dir); + return 0; } static void print_found_intel_controllers(struct sys_dev *elem) @@ -2024,7 +2025,11 @@ static int detail_platform_imsm(int verbose, int enumerate_only, char *controlle print_imsm_capability(&entry->orom); printf(" I/O Controller : %s (%s)\n", vmd_domain_to_controller(hba, buf), get_sys_dev_type(hba->type)); - print_vmd_attached_devs(hba); + if (print_vmd_attached_devs(hba)) { + if (verbose > 0) + pr_err("failed to get devices attached to VMD domain.\n"); + result |= 2; + } printf("\n"); } } |