summaryrefslogtreecommitdiffstats
path: root/arch/ia64/mm/tlb.c
diff options
context:
space:
mode:
authorHidetoshi Seto2008-04-25 16:13:09 +0200
committerTony Luck2008-04-29 22:47:45 +0200
commite617fce64e5faea149fcf3bffc1b42e4ba29e7e5 (patch)
tree23a3f38995e55bbcbb79c93aa7504acd12f9dd4e /arch/ia64/mm/tlb.c
parentImprove queue_is_locked() (diff)
downloadkernel-qcow2-linux-e617fce64e5faea149fcf3bffc1b42e4ba29e7e5.tar.gz
kernel-qcow2-linux-e617fce64e5faea149fcf3bffc1b42e4ba29e7e5.tar.xz
kernel-qcow2-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/ia64/mm/tlb.c')
-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;
}