aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/cpufreqd/cpufrequtils/fix-proc-stat-reading.patch
blob: a9e3407b355209ecf8b1911d5d02749c81524cee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
From 6657831200419d7509edcc04434d03b994c86adb Mon Sep 17 00:00:00 2001
From: Anton Arapov <anton@redhat.com>
Date: Wed, 11 Nov 2009 21:33:09 +0100
Subject: [PATCH] cpufreq/aperf : fix the /proc/stat read routine, always fails otherwise.

  the statement:
    if (!fgets(value, LINE_LEN, fp)) {
  always fails(==0) at the end of proc file, so we will have err_out:
  firing all the time.

  I've aligned the code to the one that other utils of cpufreq has.

Signed-off-by: Anton Arapov <aarapov@redhat.com>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
---
 utils/aperf.c |   18 +++++++-----------
 1 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/utils/aperf.c b/utils/aperf.c
index a37f8b1..8ecff2c 100644
--- a/utils/aperf.c
+++ b/utils/aperf.c
@@ -76,14 +76,15 @@ static unsigned int count_cpus(void)
 	unsigned int cpunr = 0;
 
 	fp = fopen("/proc/stat", "r");
-	if(!fp)
-		goto err_out;
+	if(!fp) {
+		printf("Couldn't count the number of CPUs (%s: %s), "
+			"assuming 1\n", "/proc/stat", strerror(errno));
+		return 1;
+	}
 
 	while (!feof(fp)) {
-		if (!fgets(value, LINE_LEN, fp)) {
-			fclose(fp);
-			goto err_out;
-		}
+		if (!fgets(value, LINE_LEN, fp))
+			continue;
 		value[LINE_LEN - 1] = '\0';
 		if (strlen(value) < (LINE_LEN - 2))
 			continue;
@@ -98,11 +99,6 @@ static unsigned int count_cpus(void)
 
 	/* cpu count starts from 0, on error return 1 (UP) */
 	return (ret+1);
-
-err_out:
-	printf("Couldn't count the number of CPUs (%s: %s), "
-		"assuming 1\n", "/proc/stat", strerror(errno));
-	return 1;
 }
 
 static int has_mperf_aperf_support(int cpu)
-- 
1.7.0