summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>2008-04-25 23:13:09 +0900
committerTony Luck <tony.luck@intel.com>2008-04-29 13:47:45 -0700
commite617fce64e5faea149fcf3bffc1b42e4ba29e7e5 (patch)
tree23a3f38995e55bbcbb79c93aa7504acd12f9dd4e /arch
parent7663c1e2792a9662b23dec6e19bfcd3d55360b8f (diff)
downloadlinux-e617fce64e5faea149fcf3bffc1b42e4ba29e7e5.tar.gz
linux-e617fce64e5faea149fcf3bffc1b42e4ba29e7e5.tar.bz2
linux-e617fce64e5faea149fcf3bffc1b42e4ba29e7e5.zip
[IA64] bugfix: nptcg breaks cpu-hotadd
If "max_purges" from PAL is 0, it actually means 1. However it was not handled later when a hot-added cpu pass the max_purges from PAL. This makes systems easy to go BUG_ON(). Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/ia64/mm/tlb.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/ia64/mm/tlb.c b/arch/ia64/mm/tlb.c
index d52ec4e83409..8caf42471f0d 100644
--- a/arch/ia64/mm/tlb.c
+++ b/arch/ia64/mm/tlb.c
@@ -168,7 +168,10 @@ setup_ptcg_sem(int max_purges, int nptcg_from)
static int firstcpu = 1;
if (toolatetochangeptcgsem) {
- BUG_ON(max_purges < nptcg);
+ if (nptcg_from == NPTCG_FROM_PAL && max_purges == 0)
+ BUG_ON(1 < nptcg);
+ else
+ BUG_ON(max_purges < nptcg);
return;
}