]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.4.14/sparc64-fix-numa-node-distance-initialization.patch
drop queue-4.14/mips-make-sure-dt-memory-regions-are-valid.patch
[thirdparty/kernel/stable-queue.git] / releases / 4.4.14 / sparc64-fix-numa-node-distance-initialization.patch
1 From foo@baz Mon Jun 20 10:48:29 PDT 2016
2 From: Nitin Gupta <nitin.m.gupta@oracle.com>
3 Date: Tue, 5 Jan 2016 22:35:35 -0800
4 Subject: sparc64: Fix numa node distance initialization
5
6 From: Nitin Gupta <nitin.m.gupta@oracle.com>
7
8 [ Upstream commit 36beca6571c941b28b0798667608239731f9bc3a ]
9
10 Orabug: 22495713
11
12 Currently, NUMA node distance matrix is initialized only
13 when a machine descriptor (MD) exists. However, sun4u
14 machines (e.g. Sun Blade 2500) do not have an MD and thus
15 distance values were left uninitialized. The initialization
16 is now moved such that it happens on both sun4u and sun4v.
17
18 Signed-off-by: Nitin Gupta <nitin.m.gupta@oracle.com>
19 Tested-by: Mikael Pettersson <mikpelinux@gmail.com>
20 Signed-off-by: David S. Miller <davem@davemloft.net>
21 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
22 ---
23 arch/sparc/mm/init_64.c | 15 ++++++++-------
24 1 file changed, 8 insertions(+), 7 deletions(-)
25
26 --- a/arch/sparc/mm/init_64.c
27 +++ b/arch/sparc/mm/init_64.c
28 @@ -1267,13 +1267,6 @@ static int __init numa_parse_mdesc(void)
29 int i, j, err, count;
30 u64 node;
31
32 - /* Some sane defaults for numa latency values */
33 - for (i = 0; i < MAX_NUMNODES; i++) {
34 - for (j = 0; j < MAX_NUMNODES; j++)
35 - numa_latency[i][j] = (i == j) ?
36 - LOCAL_DISTANCE : REMOTE_DISTANCE;
37 - }
38 -
39 node = mdesc_node_by_name(md, MDESC_NODE_NULL, "latency-groups");
40 if (node == MDESC_NODE_NULL) {
41 mdesc_release(md);
42 @@ -1369,10 +1362,18 @@ static int __init numa_parse_sun4u(void)
43
44 static int __init bootmem_init_numa(void)
45 {
46 + int i, j;
47 int err = -1;
48
49 numadbg("bootmem_init_numa()\n");
50
51 + /* Some sane defaults for numa latency values */
52 + for (i = 0; i < MAX_NUMNODES; i++) {
53 + for (j = 0; j < MAX_NUMNODES; j++)
54 + numa_latency[i][j] = (i == j) ?
55 + LOCAL_DISTANCE : REMOTE_DISTANCE;
56 + }
57 +
58 if (numa_enabled) {
59 if (tlb_type == hypervisor)
60 err = numa_parse_mdesc();