Commit c22c7aef authored by Robin@sgi.com's avatar Robin@sgi.com Committed by Linus Torvalds

sgi-xpc: XPC fails to discover partitions with all nasids above 128

UV hardware defines 256 memory protection regions versus the baseline 64
with increasing size for the SN2 ia64.  This was overlooked when XPC was
modified to accomodate both UV and SN2.

Without this patch, a user could reconfigure their existing system and
suddenly disable cross-partition communications with no indication of what
has gone wrong.  It also prevents larger configurations from using
cross-partition communication.
Signed-off-by: default avatarRobin Holt <holt@sgi.com>
Cc: <stable@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 112bc2e1
...@@ -439,9 +439,13 @@ xpc_discovery(void) ...@@ -439,9 +439,13 @@ xpc_discovery(void)
* nodes that can comprise an access protection grouping. The access * nodes that can comprise an access protection grouping. The access
* protection is in regards to memory, IOI and IPI. * protection is in regards to memory, IOI and IPI.
*/ */
max_regions = 64;
region_size = xp_region_size; region_size = xp_region_size;
if (is_uv())
max_regions = 256;
else {
max_regions = 64;
switch (region_size) { switch (region_size) {
case 128: case 128:
max_regions *= 2; max_regions *= 2;
...@@ -452,6 +456,7 @@ xpc_discovery(void) ...@@ -452,6 +456,7 @@ xpc_discovery(void)
region_size = 16; region_size = 16;
DBUG_ON(!is_shub2()); DBUG_ON(!is_shub2());
} }
}
for (region = 0; region < max_regions; region++) { for (region = 0; region < max_regions; region++) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment