arch/sparc: support NR_CPUS = 4096
authorJane Chu <jane.chu@oracle.com>
Tue, 6 Jun 2017 20:32:29 +0000 (14:32 -0600)
committerRaspbian kernel package updater <root@raspbian.org>
Sun, 23 Jul 2017 02:54:35 +0000 (02:54 +0000)
commit737f73e73e7c05eb2d177224a81f8682f3d486da
treebbcc16d87826dc2bc44978d0c306d5318ded63f7
parentc791fc3b3e2d6e2985f3face5cfa13ded3d07bcf
arch/sparc: support NR_CPUS = 4096

[ Upstream commit c79a13734d104b5b147d7cb0870276ccdd660dae ]

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/sparc/Kconfig
arch/sparc/kernel/irq_64.c