[mips*/octeon] Fix /proc/cpuinfo issues.
svn path=/dists/sid/linux/; revision=21652
This commit is contained in:
parent
5f0f41de53
commit
565d0dd6ae
|
@ -7,6 +7,7 @@ linux (3.14.13-3) UNRELEASED; urgency=medium
|
||||||
#756134).
|
#756134).
|
||||||
* Rewrite postinst to not require File::stat perl module (Closes: #756207).
|
* Rewrite postinst to not require File::stat perl module (Closes: #756207).
|
||||||
* [mips*] Avoid smp_processor_id() in preemptible code.
|
* [mips*] Avoid smp_processor_id() in preemptible code.
|
||||||
|
* [mips*/octeon] Fix /proc/cpuinfo issues.
|
||||||
|
|
||||||
[ Ben Hutchings ]
|
[ Ben Hutchings ]
|
||||||
* [amd64] Reject x32 executables if x32 ABI not supported
|
* [amd64] Reject x32 executables if x32 ABI not supported
|
||||||
|
|
66
debian/patches/bugfix/mips/MIPS-OCTEON-make-get_system_type-thread-safe.patch
vendored
Normal file
66
debian/patches/bugfix/mips/MIPS-OCTEON-make-get_system_type-thread-safe.patch
vendored
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
From: Aaro Koskinen <aaro.koskinen@nsn.com>
|
||||||
|
Date: Tue, 22 Jul 2014 14:51:08 +0300
|
||||||
|
Subject: MIPS: OCTEON: make get_system_type() thread-safe
|
||||||
|
Origin: https://git.kernel.org/cgit/linux/kernel/git/jhogan/mips.git/commit?id=726d129dfdc9622197a8c3f5947ce09c1a4c935e
|
||||||
|
|
||||||
|
get_system_type() is not thread-safe on OCTEON. It uses static data,
|
||||||
|
also more dangerous issue is that it's calling cvmx_fuse_read_byte()
|
||||||
|
every time without any synchronization. Currently it's possible to get
|
||||||
|
processes stuck looping forever in kernel simply by launching multiple
|
||||||
|
readers of /proc/cpuinfo:
|
||||||
|
|
||||||
|
(while true; do cat /proc/cpuinfo > /dev/null; done) &
|
||||||
|
(while true; do cat /proc/cpuinfo > /dev/null; done) &
|
||||||
|
...
|
||||||
|
|
||||||
|
Fix by initializing the system type string only once during the early
|
||||||
|
boot.
|
||||||
|
|
||||||
|
Signed-off-by: Aaro Koskinen <aaro.koskinen@nsn.com>
|
||||||
|
Cc: stable@vger.kernel.org
|
||||||
|
Reviewed-by: Markos Chandras <markos.chandras@imgtec.com>
|
||||||
|
Patchwork: http://patchwork.linux-mips.org/patch/7437/
|
||||||
|
Signed-off-by: James Hogan <james.hogan@imgtec.com>
|
||||||
|
---
|
||||||
|
arch/mips/cavium-octeon/setup.c | 18 +++++++++++++-----
|
||||||
|
1 file changed, 13 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/arch/mips/cavium-octeon/setup.c b/arch/mips/cavium-octeon/setup.c
|
||||||
|
index 008e9c8..c9d9c62 100644
|
||||||
|
--- a/arch/mips/cavium-octeon/setup.c
|
||||||
|
+++ b/arch/mips/cavium-octeon/setup.c
|
||||||
|
@@ -458,6 +458,18 @@ static void octeon_halt(void)
|
||||||
|
octeon_kill_core(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static char __read_mostly octeon_system_type[80];
|
||||||
|
+
|
||||||
|
+static int __init init_octeon_system_type(void)
|
||||||
|
+{
|
||||||
|
+ snprintf(octeon_system_type, sizeof(octeon_system_type), "%s (%s)",
|
||||||
|
+ cvmx_board_type_to_string(octeon_bootinfo->board_type),
|
||||||
|
+ octeon_model_get_string(read_c0_prid()));
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+early_initcall(init_octeon_system_type);
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* Return a string representing the system type
|
||||||
|
*
|
||||||
|
@@ -465,11 +477,7 @@ static void octeon_halt(void)
|
||||||
|
*/
|
||||||
|
const char *octeon_board_type_string(void)
|
||||||
|
{
|
||||||
|
- static char name[80];
|
||||||
|
- sprintf(name, "%s (%s)",
|
||||||
|
- cvmx_board_type_to_string(octeon_bootinfo->board_type),
|
||||||
|
- octeon_model_get_string(read_c0_prid()));
|
||||||
|
- return name;
|
||||||
|
+ return octeon_system_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *get_system_type(void)
|
||||||
|
--
|
||||||
|
1.7.10.4
|
||||||
|
|
|
@ -65,6 +65,7 @@ bugfix/mips/MIPS-SB1-Fix-excessive-kernel-warnings.patch
|
||||||
bugfix/mips/MIPS-ZBOOT-add-missing-linux-string.h-include.patch
|
bugfix/mips/MIPS-ZBOOT-add-missing-linux-string.h-include.patch
|
||||||
bugfix/mips/MIPS-Fix-branch-emulation-of-branch-likely-instructi.patch
|
bugfix/mips/MIPS-Fix-branch-emulation-of-branch-likely-instructi.patch
|
||||||
bugfix/mips/MIPS-ptrace-Avoid-smp_processor_id-in-preemptible-co.patch
|
bugfix/mips/MIPS-ptrace-Avoid-smp_processor_id-in-preemptible-co.patch
|
||||||
|
bugfix/mips/MIPS-OCTEON-make-get_system_type-thread-safe.patch
|
||||||
bugfix/s390/s390-ptrace-fix-PSW-mask-check.patch
|
bugfix/s390/s390-ptrace-fix-PSW-mask-check.patch
|
||||||
|
|
||||||
# Miscellaneous bug fixes
|
# Miscellaneous bug fixes
|
||||||
|
|
Loading…
Reference in New Issue