summaryrefslogtreecommitdiffstats
path: root/sys-utils/lscpu.c
diff options
context:
space:
mode:
authorKarel Zak2016-03-15 14:23:59 +0100
committerKarel Zak2016-03-15 14:23:59 +0100
commit641350fe822e7f1ac10873dad9a364bdeaba8083 (patch)
tree1e6324bcfebc5e45d9c4fe4ef759933aed827406 /sys-utils/lscpu.c
parentvipw: print only one new line when asking about shadow file (diff)
downloadkernel-qcow2-util-linux-641350fe822e7f1ac10873dad9a364bdeaba8083.tar.gz
kernel-qcow2-util-linux-641350fe822e7f1ac10873dad9a364bdeaba8083.tar.xz
kernel-qcow2-util-linux-641350fe822e7f1ac10873dad9a364bdeaba8083.zip
lscpu: keep lscpu usable on snapshots
This patch reverts 3ac03fe4d20558b55635a048d7f2fb0f5e85ee2a for snapshots (--sysroot). Yeah, poor-man solution. It would be really nice to have runtime detection to support model overwriting also on snapshots. Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'sys-utils/lscpu.c')
-rw-r--r--sys-utils/lscpu.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c
index 423bc56d6..8e62c6409 100644
--- a/sys-utils/lscpu.c
+++ b/sys-utils/lscpu.c
@@ -453,25 +453,36 @@ read_basicinfo(struct lscpu_desc *desc, struct lscpu_modifier *mod)
char buf[BUFSIZ];
struct utsname utsbuf;
size_t setsize;
+ int overwrite_model = 0;
/* architecture */
if (uname(&utsbuf) == -1)
err(EXIT_FAILURE, _("error: uname failed"));
desc->arch = xstrdup(utsbuf.machine);
+ /* Use another records from cpuinfo for PPC, on snapshot follow
+ * standard behavior.
+ *
+ * TODO: use runtime detection to make model overwrite possible on
+ * snapshots too.
+ */
+#if defined(__powerpc__) || defined(__powerpc64__)
+ if (mod->system == SYSTEM_LIVE)
+ overwrite_model = 1;
+#endif
/* details */
while (fgets(buf, sizeof(buf), fp) != NULL) {
if (lookup(buf, "vendor", &desc->vendor)) ;
else if (lookup(buf, "vendor_id", &desc->vendor)) ;
else if (lookup(buf, "family", &desc->family)) ;
else if (lookup(buf, "cpu family", &desc->family)) ;
-#if defined(__powerpc__) || defined(__powerpc64__)
- else if (lookup(buf, "revision", &desc->model)) ;
- else if (lookup(buf, "cpu", &desc->modelname)) ;
-#else
- else if (lookup(buf, "model", &desc->model)) ;
- else if (lookup(buf, "model name", &desc->modelname)) ;
-#endif
+
+ else if (overwrite_model && lookup(buf, "revision", &desc->model)) ;
+ else if (overwrite_model && lookup(buf, "cpu", &desc->modelname)) ;
+
+ else if (!overwrite_model && lookup(buf, "model", &desc->model)) ;
+ else if (!overwrite_model && lookup(buf, "model name", &desc->modelname)) ;
+
else if (lookup(buf, "stepping", &desc->stepping)) ;
else if (lookup(buf, "cpu MHz", &desc->mhz)) ;
else if (lookup(buf, "flags", &desc->flags)) ; /* x86 */