aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-01-05 16:21:19 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-01-05 16:21:19 -0500
commit3331f99a6f2957d14c2e4d542c287b2c5af9f22b (patch)
tree0896f06da2f2a9d8ee2e4af8261cf354e7c28cce
parent168309855a7d1e16db751e9c647119fe2d2dc878 (diff)
parentc1b27ab5d69099718f519127eea017120c180e71 (diff)
Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
Pull tile bugfix from Chris Metcalf: "This fixes a bug that Sudip's buildbot found for tilepro allmodconfig. I've tagged it for stable only back to 3.19, which was when most of the other affected architectures added their support for working around this issue" * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: tile: provide CONFIG_PAGE_SIZE_64KB etc for tilepro
-rw-r--r--arch/tile/Kconfig11
-rw-r--r--arch/tile/include/asm/page.h8
2 files changed, 10 insertions, 9 deletions
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
index 106c21bd7f44..8ec7a4599c08 100644
--- a/arch/tile/Kconfig
+++ b/arch/tile/Kconfig
@@ -176,8 +176,6 @@ config NR_CPUS
176 smaller kernel memory footprint results from using a smaller 176 smaller kernel memory footprint results from using a smaller
177 value on chips with fewer tiles. 177 value on chips with fewer tiles.
178 178
179if TILEGX
180
181choice 179choice
182 prompt "Kernel page size" 180 prompt "Kernel page size"
183 default PAGE_SIZE_64KB 181 default PAGE_SIZE_64KB
@@ -188,8 +186,11 @@ choice
188 connections, etc., it may be better to select 16KB, which uses 186 connections, etc., it may be better to select 16KB, which uses
189 memory more efficiently at some cost in TLB performance. 187 memory more efficiently at some cost in TLB performance.
190 188
191 Note that this option is TILE-Gx specific; currently 189 Note that for TILEPro, you must also rebuild the hypervisor
192 TILEPro page size is set by rebuilding the hypervisor. 190 with a matching page size.
191
192config PAGE_SIZE_4KB
193 bool "4KB" if TILEPRO
193 194
194config PAGE_SIZE_16KB 195config PAGE_SIZE_16KB
195 bool "16KB" 196 bool "16KB"
@@ -199,8 +200,6 @@ config PAGE_SIZE_64KB
199 200
200endchoice 201endchoice
201 202
202endif
203
204source "kernel/Kconfig.hz" 203source "kernel/Kconfig.hz"
205 204
206config KEXEC 205config KEXEC
diff --git a/arch/tile/include/asm/page.h b/arch/tile/include/asm/page.h
index a213a8d84a95..8eca6a0e1762 100644
--- a/arch/tile/include/asm/page.h
+++ b/arch/tile/include/asm/page.h
@@ -20,15 +20,17 @@
20#include <arch/chip.h> 20#include <arch/chip.h>
21 21
22/* PAGE_SHIFT and HPAGE_SHIFT determine the page sizes. */ 22/* PAGE_SHIFT and HPAGE_SHIFT determine the page sizes. */
23#if defined(CONFIG_PAGE_SIZE_16KB) 23#if defined(CONFIG_PAGE_SIZE_4KB) /* tilepro only */
24#define PAGE_SHIFT 12
25#define CTX_PAGE_FLAG HV_CTX_PG_SM_4K
26#elif defined(CONFIG_PAGE_SIZE_16KB)
24#define PAGE_SHIFT 14 27#define PAGE_SHIFT 14
25#define CTX_PAGE_FLAG HV_CTX_PG_SM_16K 28#define CTX_PAGE_FLAG HV_CTX_PG_SM_16K
26#elif defined(CONFIG_PAGE_SIZE_64KB) 29#elif defined(CONFIG_PAGE_SIZE_64KB)
27#define PAGE_SHIFT 16 30#define PAGE_SHIFT 16
28#define CTX_PAGE_FLAG HV_CTX_PG_SM_64K 31#define CTX_PAGE_FLAG HV_CTX_PG_SM_64K
29#else 32#else
30#define PAGE_SHIFT HV_LOG2_DEFAULT_PAGE_SIZE_SMALL 33#error Page size not specified in Kconfig
31#define CTX_PAGE_FLAG 0
32#endif 34#endif
33#define HPAGE_SHIFT HV_LOG2_DEFAULT_PAGE_SIZE_LARGE 35#define HPAGE_SHIFT HV_LOG2_DEFAULT_PAGE_SIZE_LARGE
34 36