diff options
author | Peter Schiffer <pschiffe@redhat.com> | 2014-01-28 18:21:44 +0100 |
---|---|---|
committer | Peter Schiffer <pschiffe@redhat.com> | 2014-01-28 18:21:44 +0100 |
commit | d2e3f8517d5dc4e4ba8a06afe38425be149b7844 (patch) | |
tree | 348ad7eaedfb1ad07e63120b2a38ff3f20a8d331 /src/hardware/LMI_ProcessorCapabilitiesProvider.c | |
parent | 8cc62ef0aec1770f0d01f09ffca50fedd6d21cab (diff) | |
download | openlmi-providers-d2e3f8517d5dc4e4ba8a06afe38425be149b7844.tar.gz openlmi-providers-d2e3f8517d5dc4e4ba8a06afe38425be149b7844.tar.xz openlmi-providers-d2e3f8517d5dc4e4ba8a06afe38425be149b7844.zip |
Hardware: add cpu cores and threads fallback
If dmidecode doesn't report correct cpu cores or cpu threads, use the values
from lscpu.
Diffstat (limited to 'src/hardware/LMI_ProcessorCapabilitiesProvider.c')
-rw-r--r-- | src/hardware/LMI_ProcessorCapabilitiesProvider.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/hardware/LMI_ProcessorCapabilitiesProvider.c b/src/hardware/LMI_ProcessorCapabilitiesProvider.c index ba7b1b9..906b7c2 100644 --- a/src/hardware/LMI_ProcessorCapabilitiesProvider.c +++ b/src/hardware/LMI_ProcessorCapabilitiesProvider.c @@ -70,11 +70,10 @@ static CMPIStatus LMI_ProcessorCapabilitiesEnumInstances( if (dmi_get_processors(&dmi_cpus, &dmi_cpus_nb) != 0 || dmi_cpus_nb < 1) { dmi_free_processors(&dmi_cpus, &dmi_cpus_nb); - - if (lscpu_get_processor(&lscpu) != 0) { - error_msg = "Unable to get processor information."; - goto done; - } + } + if (lscpu_get_processor(&lscpu) != 0) { + error_msg = "Unable to get processor information."; + goto done; } if (dmi_cpus_nb > 0) { @@ -103,7 +102,11 @@ static CMPIStatus LMI_ProcessorCapabilitiesEnumInstances( ORGID ":" ORGID "_" CPU_CAP_CLASS_NAME ":%u", i); snprintf(element_name, ELEMENT_NAME_LEN, "%s%u", element_name_string, i); + } + if (cores < lscpu.cores) { cores = lscpu.cores; + } + if (threads < lscpu.threads_per_core * lscpu.cores) { threads = lscpu.threads_per_core * lscpu.cores; } @@ -124,11 +127,8 @@ static CMPIStatus LMI_ProcessorCapabilitiesEnumInstances( } done: - /* free lscpu only if it was used */ - if (dmi_cpus_nb < 1) { - lscpu_free_processor(&lscpu); - } dmi_free_processors(&dmi_cpus, &dmi_cpus_nb); + lscpu_free_processor(&lscpu); if (error_msg) { KReturn2(_cb, ERR_FAILED, "%s", error_msg); |