summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaro Koskinen <aaro.koskinen@nokia.com>2015-09-30 15:57:55 +0300
committerAaro Koskinen <aaro.koskinen@nokia.com>2015-09-30 15:57:55 +0300
commitf2d28e80bc6260c90396e9fc798d559775dbde23 (patch)
treeacf71075ab7d3c78135a4de5cdb3088cfb43ad8e
parent8cf3a4a3c54c82e48b9b600fdb81b77f2c03a469 (diff)
bootchart: use get_proc_field and PROC_CPUINFO_MODEL
Use get_proc_field and PROC_CPUINFO_MODEL to get the CPU type. Also don't fail if it missing, instead restore the old behaviour and print "Unknown". Fixes the following error seen with v225 on powerpc: Unable to read module name from cpuinfo. Error generating svg file: No such file or directory
-rw-r--r--src/bootchart/svg.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/bootchart/svg.c b/src/bootchart/svg.c
index c66f12e3a6..db5fc863b0 100644
--- a/src/bootchart/svg.c
+++ b/src/bootchart/svg.c
@@ -30,6 +30,7 @@
#include <sys/utsname.h>
#include <fcntl.h>
+#include "architecture.h"
#include "util.h"
#include "fileio.h"
#include "macro.h"
@@ -147,7 +148,7 @@ static int svg_title(FILE *of, const char *build, int pscount, double log_start,
_cleanup_free_ char *model = NULL;
_cleanup_free_ char *buf = NULL;
char date[256] = "Unknown";
- char *cpu;
+ const char *cpu;
char *c;
time_t t;
int r;
@@ -188,20 +189,11 @@ static int svg_title(FILE *of, const char *build, int pscount, double log_start,
assert_se(r > 0);
/* CPU type */
- r = read_full_file("/proc/cpuinfo", &buf, NULL);
+ r = get_proc_field("/proc/cpuinfo", PROC_CPUINFO_MODEL, "\n", &buf);
if (r < 0)
- return log_error_errno(r, "Unable to read cpuinfo: %m");
-
- cpu = strstr(buf, "model name");
- if (!cpu) {
- log_error("Unable to read module name from cpuinfo.\n");
- return -ENOENT;
- }
-
- cpu += 13;
- c = strchr(cpu, '\n');
- if (c)
- *c = '\0';
+ cpu = "Unknown";
+ else
+ cpu = buf;
fprintf(of, "<text class=\"t1\" x=\"0\" y=\"30\">Bootchart for %s - %s</text>\n",
uts.nodename, date);