diff options
author | Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> | 2008-04-25 16:13:09 +0200 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2008-04-29 22:47:45 +0200 |
commit | e617fce64e5faea149fcf3bffc1b42e4ba29e7e5 (patch) | |
tree | 23a3f38995e55bbcbb79c93aa7504acd12f9dd4e /arch/ia64 | |
parent | Improve queue_is_locked() (diff) | |
download | linux-e617fce64e5faea149fcf3bffc1b42e4ba29e7e5.tar.xz 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')
-rw-r--r-- | arch/ia64/mm/tlb.c | 5 |
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; } |