mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-22 17:02:58 +02:00
cpufrequtils: add some patches from the debian patchset
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
###############################################################################
|
||||
# #
|
||||
# IPFire.org - A linux based firewall #
|
||||
# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
|
||||
# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
|
||||
# #
|
||||
# This program is free software: you can redistribute it and/or modify #
|
||||
# it under the terms of the GNU General Public License as published by #
|
||||
@@ -33,7 +33,7 @@ DIR_APP = $(DIR_SRC)/$(THISAPP)
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)
|
||||
SUP_ARCH = x86_64 i586
|
||||
PROG = cpufrequtils
|
||||
PAK_VER = 9
|
||||
PAK_VER = 10
|
||||
|
||||
DEPS =
|
||||
|
||||
@@ -78,6 +78,12 @@ $(subst %,%_MD5,$(objects)) :
|
||||
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
||||
@$(PREBUILD)
|
||||
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
|
||||
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cpufrequtils/0001-Only-x86-has-cpuid-instruction.patch
|
||||
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cpufrequtils/0003-cpufrequtils-aperf-Fix-MSR-read-on-32-bit.patch
|
||||
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cpufrequtils/0005-cpufrequtils-sysfs-increase-MAX_LINE_LEN.patch
|
||||
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cpufrequtils/0006-aperf-fix-compilation-on-x86-32-with-fPIC.patch
|
||||
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cpufrequtils/0007-po-add-missing-word-in-DE.patch
|
||||
|
||||
cd $(DIR_APP) && make
|
||||
cd $(DIR_APP) && make install
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
From f1b6bccf08f53295b2f7f448f28bbd37533c14a2 Mon Sep 17 00:00:00 2001
|
||||
From: Zhang Le <r0bertz@gentoo.org>
|
||||
Date: Sun, 18 Jul 2010 02:05:28 +0800
|
||||
Subject: [PATCH 1/8] Only x86 has cpuid instruction
|
||||
|
||||
Signed-off-by: Zhang Le <r0bertz@gentoo.org>
|
||||
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
|
||||
---
|
||||
utils/aperf.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/utils/aperf.c b/utils/aperf.c
|
||||
index 627fb17..1c64501 100644
|
||||
--- a/utils/aperf.c
|
||||
+++ b/utils/aperf.c
|
||||
@@ -68,11 +68,15 @@ struct avg_perf_cpu_info
|
||||
|
||||
static int cpu_has_effective_freq()
|
||||
{
|
||||
+#if defined(__i386__) || defined(__x86_64__)
|
||||
/* largest base level */
|
||||
if (cpuid_eax(0) < 6)
|
||||
return 0;
|
||||
|
||||
return cpuid_ecx(6) & 0x1;
|
||||
+#else
|
||||
+ return 0;
|
||||
+#endif
|
||||
}
|
||||
|
||||
/*
|
||||
--
|
||||
1.7.10
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
From d4490efed068a552e8b67d52a0726458a224c9a0 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Arnold <frank.arnold@amd.com>
|
||||
Date: Wed, 8 Dec 2010 17:39:14 +0100
|
||||
Subject: [PATCH 3/8] cpufrequtils aperf: Fix MSR read on 32-bit
|
||||
|
||||
The cpufreq-aperf command does not work on 32-bit systems. The reason
|
||||
for that is a wrong count argument passed to the read() call. Instead
|
||||
of the buffer size, the size of the pointer to the buffer is used. On
|
||||
64-bit systems this just happened to work, because we need to read an
|
||||
8 byte value and a pointer has a size of 8 bytes on 64-bit. On 32-bit
|
||||
systems only 4 bytes are read, which then triggers the error path.
|
||||
|
||||
Signed-off-by: Frank Arnold <frank.arnold@amd.com>
|
||||
Reviewed-by: Thomas Renninger <trenn@suse.de>
|
||||
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
|
||||
---
|
||||
utils/aperf.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/utils/aperf.c b/utils/aperf.c
|
||||
index 1c64501..6302f5a 100644
|
||||
--- a/utils/aperf.c
|
||||
+++ b/utils/aperf.c
|
||||
@@ -100,7 +100,7 @@ static int read_msr(int cpu, unsigned int idx, unsigned long long *val)
|
||||
return -1;
|
||||
if (lseek(fd, idx, SEEK_CUR) == -1)
|
||||
goto err;
|
||||
- if (read(fd, val, sizeof val) != sizeof *val)
|
||||
+ if (read(fd, val, sizeof *val) != sizeof *val)
|
||||
goto err;
|
||||
close(fd);
|
||||
return 0;
|
||||
--
|
||||
1.7.10
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
From 9f2efa7bc6969c10562ac2c720d50ff77083e5c2 Mon Sep 17 00:00:00 2001
|
||||
From: Roman Vasiyarov <rvasiyarov@gmail.com>
|
||||
Date: Mon, 25 Apr 2011 21:34:23 +0400
|
||||
Subject: [PATCH 5/8] cpufrequtils sysfs: increase MAX_LINE_LEN
|
||||
|
||||
larger sysfs data (>255 bytes) was truncated and thus used improperly
|
||||
|
||||
Signed-off-by: Roman Vasiyarov <rvasiyarov@gmail.com>
|
||||
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
|
||||
---
|
||||
lib/sysfs.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/sysfs.c b/lib/sysfs.c
|
||||
index 4e0edab..24dd563 100644
|
||||
--- a/lib/sysfs.c
|
||||
+++ b/lib/sysfs.c
|
||||
@@ -18,7 +18,7 @@
|
||||
#include "cpufreq.h"
|
||||
|
||||
#define PATH_TO_CPU "/sys/devices/system/cpu/"
|
||||
-#define MAX_LINE_LEN 255
|
||||
+#define MAX_LINE_LEN 4096
|
||||
#define SYSFS_PATH_MAX 255
|
||||
|
||||
/* helper function to read file from /sys into given buffer */
|
||||
--
|
||||
1.7.10
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
From 9085ce6f615d9d2e0182d3ce029b882835bd0a6b Mon Sep 17 00:00:00 2001
|
||||
From: Matt Turner <mattst88@gmail.com>
|
||||
Date: Tue, 26 Jul 2011 19:28:31 -0400
|
||||
Subject: [PATCH 6/8] aperf: fix compilation on x86-32 with -fPIC
|
||||
|
||||
ebx is used to store the GOT pointer when compiled with -fPIC, so it's
|
||||
not usable by inline assembly.
|
||||
|
||||
https://bugs.gentoo.org/375967
|
||||
|
||||
Signed-off-by: Matt Turner <mattst88@gmail.com>
|
||||
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
|
||||
---
|
||||
utils/cpuid.h | 14 +++++++++++++-
|
||||
1 file changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/utils/cpuid.h b/utils/cpuid.h
|
||||
index 2bac69a..53da789 100644
|
||||
--- a/utils/cpuid.h
|
||||
+++ b/utils/cpuid.h
|
||||
@@ -5,9 +5,21 @@ static inline void __cpuid(unsigned int *eax, unsigned int *ebx,
|
||||
unsigned int *ecx, unsigned int *edx)
|
||||
{
|
||||
/* ecx is often an input as well as an output. */
|
||||
- asm volatile("cpuid"
|
||||
+ asm volatile(
|
||||
+#if defined(__i386__) && defined(__PIC__)
|
||||
+ "push %%ebx\n"
|
||||
+ "cpuid\n"
|
||||
+ "movl %%ebx, %1\n"
|
||||
+ "pop %%ebx\n"
|
||||
+#else
|
||||
+ "cpuid\n"
|
||||
+#endif
|
||||
: "=a" (*eax),
|
||||
+#if defined(__i386__) && defined(__PIC__)
|
||||
+ "=r" (*ebx),
|
||||
+#else
|
||||
"=b" (*ebx),
|
||||
+#endif
|
||||
"=c" (*ecx),
|
||||
"=d" (*edx)
|
||||
: "0" (*eax), "2" (*ecx));
|
||||
--
|
||||
1.7.10
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From 26ce99ab92ae9f1f367a58b7858a96f4e1e6814c Mon Sep 17 00:00:00 2001
|
||||
From: Dominik Brodowski <linux@dominikbrodowski.net>
|
||||
Date: Fri, 29 Jul 2011 19:40:46 +0200
|
||||
Subject: [PATCH 7/8] po: add missing word in DE
|
||||
|
||||
Reported-by: Michael Basse
|
||||
Reported-by: <tkranz@zedat.fu-berlin.de>
|
||||
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
|
||||
---
|
||||
po/de.po | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/po/de.po b/po/de.po
|
||||
index 1da1f2b..ee793f5 100644
|
||||
--- a/po/de.po
|
||||
+++ b/po/de.po
|
||||
@@ -304,7 +304,7 @@ msgid ""
|
||||
"modified\n"
|
||||
msgstr ""
|
||||
" -c CPU, --cpu CPU Nummer der CPU, deren Taktfrequenz-Einstellung\n"
|
||||
-" werden soll\n"
|
||||
+" ver<65>ndert werden soll\n"
|
||||
|
||||
#: utils/set.c:39
|
||||
#, c-format
|
||||
--
|
||||
1.7.10
|
||||
|
||||
Reference in New Issue
Block a user