[Patch 01/29] GRU - Initial GRU based on blade topology

steiner
2009-11-24T15:13:21Z

[-- Attachment #1: uv_gru_blade_fix --]
[-- Type: text/plain, Size: 1377 bytes --]

From: Jack Steiner <steiner@sgi.com>

Change the GRU initialization code to initialize
based on blade topology instead of node topology. The result
is the same but blade-based initialization is cleaner.

Signed-off-by: Jack Steiner <steiner@sgi.com>

---
drivers/misc/sgi-gru/grufile.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)

Index: linux/drivers/misc/sgi-gru/grufile.c
===================================================================
--- linux.orig/drivers/misc/sgi-gru/grufile.c 2009-11-20 09:32:15.000000000 -0600
+++ linux/drivers/misc/sgi-gru/grufile.c 2009-11-20 09:32:26.000000000 -0600
@@ -264,11 +264,9 @@ static int gru_init_tables(unsigned long

max_user_cbrs = GRU_NUM_CB;
max_user_dsr_bytes = GRU_NUM_DSR_BYTES;
- for_each_online_node(nid) {
- bid = uv_node_to_blade_id(nid);
- pnode = uv_node_to_pnode(nid);
- if (bid < 0 || gru_base[bid])
- continue;
+ for_each_possible_blade(bid) {
+ pnode = uv_blade_to_pnode(bid);
+ nid = uv_blade_to_memory_nid(bid);
page = alloc_pages_exact_node(nid, GFP_KERNEL, order);
if (!page)
goto fail;
@@ -298,8 +296,8 @@ static int gru_init_tables(unsigned long
return 0;

fail:
- for (nid--; nid >= 0; nid--)
- free_pages((unsigned long)gru_base[nid], order);
+ for (bid--; bid >= 0; bid--)
+ free_pages((unsigned long)gru_base[bid], order);
return -ENOMEM;
}