ARM64: Fix auto detect of ARM64 cpus
authorAshwin Sekhar T K <ashwin.sekhar@cavium.com>
Tue, 10 Jan 2017 07:23:47 +0000 (12:53 +0530)
committerAshwin Sekhar T K <ashwin.sekhar@cavium.com>
Wed, 11 Jan 2017 05:48:40 +0000 (11:18 +0530)
cpuid_arm64.c

index e36213e..250d314 100644 (file)
@@ -91,18 +91,21 @@ int detect(void)
 #ifdef linux
 
        FILE *infile;
-       char buffer[512], *p, *cpu_part, *cpu_implementer;
+       char buffer[512], *p, *cpu_part = NULL, *cpu_implementer = NULL;
        p = (char *) NULL ;
 
        infile = fopen("/proc/cpuinfo", "r");
        while (fgets(buffer, sizeof(buffer), infile)) {
+               if ((cpu_part != NULL) && (cpu_implementer != NULL)) {
+                       break;
+               }
 
-               if (!strncmp("CPU part", buffer, 8)) {
+               if ((cpu_part == NULL) && !strncmp("CPU part", buffer, 8)) {
                        cpu_part = strchr(buffer, ':') + 2;
-                       break;
-               } else if (!strncmp("CPU implementer", buffer, 15)) {
+                       cpu_part = strdup(cpu_part);
+               } else if ((cpu_implementer == NULL) && !strncmp("CPU implementer", buffer, 15)) {
                        cpu_implementer = strchr(buffer, ':') + 2;
-                       break;
+                       cpu_implementer = strdup(cpu_implementer);
                }
        }