arch/sparc: support NR_CPUS = 4096
authorJane Chu <jane.chu@oracle.com>
Tue, 6 Jun 2017 20:32:29 +0000 (14:32 -0600)
committerDavid S. Miller <davem@davemloft.net>
Tue, 6 Jun 2017 20:41:47 +0000 (16:41 -0400)
commitc79a13734d104b5b147d7cb0870276ccdd660dae
tree497507e0696e5b570300c88b9370c82d742ae47f
parent1b4af13ff2cc6897557bb0b8d9e2fad4fa4d67aa
arch/sparc: support NR_CPUS = 4096

Linux SPARC64 limits NR_CPUS to 4064 because init_cpu_send_mondo_info()
only allocates a single page for NR_CPUS mondo entries. Thus we cannot
use all 4096 CPUs on some SPARC platforms.

To fix, allocate (2^order) pages where order is set according to the size
of cpu_list for possible cpus. Since cpu_list_pa and cpu_mondo_block_pa
are not used in asm code, there are no imm13 offsets from the base PA
that will break because they can only reach one page.

Orabug: 25505750

Signed-off-by: Jane Chu <jane.chu@oracle.com>
Reviewed-by: Bob Picco <bob.picco@oracle.com>
Reviewed-by: Atish Patra <atish.patra@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/Kconfig
arch/sparc/kernel/irq_64.c