All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
	Zwane Mwaikambo <zwane@arm.linux.org.uk>,
	"Theodore Ts'o" <tytso@mit.edu>,
	Randy Dunlap <rdunlap@xenotime.net>,
	Dave Jones <davej@redhat.com>,
	Chuck Wolber <chuckw@quantumlinux.com>,
	Chris Wedgwood <reviews@ml.cw.f00f.org>,
	Michael Krufky <mkrufky@linuxtv.org>,
	Chuck Ebbert <cebbert@redhat.com>,
	Domenico Andreoli <cavokz@gmail.com>, Willy Tarreau <w@1wt.eu>,
	Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
	torvalds@linux-foundation.org, akpm@linux-foundation.org,
	alan@lxorguk.ukuu.org.uk,
	Zhang Yanmin <yanmin_zhang@linux.intel.com>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Ingo Molnar <mingo@elte.hu>
Subject: [patch 8/9] x86: fix cpu hotplug crash
Date: Tue, 1 Jul 2008 08:19:18 -0700	[thread overview]
Message-ID: <20080701151918.GI3536@suse.de> (raw)
In-Reply-To: <20080701151835.GA3536@suse.de>

[-- Attachment #1: x86-fix-cpu-hotplug-crash.patch --]
[-- Type: text/plain, Size: 1933 bytes --]

2.6.25-stable review patch.  If anyone has any objections, please let us
know.

------------------

From: Yanmin Zhang <yanmin_zhang@linux.intel.com>

Commit fcb43042ef55d2f46b0efa5d7746967cef38f056 upstream

x86: fix cpu hotplug crash

Vegard Nossum reported crashes during cpu hotplug tests:

  http://marc.info/?l=linux-kernel&m=121413950227884&w=4

In function _cpu_up, the panic happens when calling
__raw_notifier_call_chain at the second time. Kernel doesn't panic when
calling it at the first time. If just say because of nr_cpu_ids, that's
not right.

By checking the source code, I found that function do_boot_cpu is the culprit.
Consider below call chain:
 _cpu_up=>__cpu_up=>smp_ops.cpu_up=>native_cpu_up=>do_boot_cpu.

So do_boot_cpu is called in the end. In do_boot_cpu, if
boot_error==true, cpu_clear(cpu, cpu_possible_map) is executed. So later
on, when _cpu_up calls __raw_notifier_call_chain at the second time to
report CPU_UP_CANCELED, because this cpu is already cleared from
cpu_possible_map, get_cpu_sysdev returns NULL.

Many resources are related to cpu_possible_map, so it's better not to
change it.

Below patch against 2.6.26-rc7 fixes it by removing the bit clearing in
cpu_possible_map.

Signed-off-by: Zhang Yanmin <yanmin_zhang@linux.intel.com>
Tested-by: Vegard Nossum <vegard.nossum@gmail.com>
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>


---
 arch/x86/kernel/smpboot_64.c |    1 -
 1 file changed, 1 deletion(-)

--- a/arch/x86/kernel/smpboot_64.c
+++ b/arch/x86/kernel/smpboot_64.c
@@ -704,7 +704,6 @@ do_rest:
 		clear_bit(cpu, (unsigned long *)&cpu_initialized); /* was set by cpu_init() */
 		clear_node_cpumask(cpu); /* was set by numa_add_cpu */
 		cpu_clear(cpu, cpu_present_map);
-		cpu_clear(cpu, cpu_possible_map);
 		per_cpu(x86_cpu_to_apicid, cpu) = BAD_APICID;
 		return -EIO;
 	}

-- 

  parent reply	other threads:[~2008-07-01 15:24 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20080701151057.930340322@mini.kroah.org>
2008-07-01 15:18 ` [patch 0/9] 2.6.25.10 -stable review Greg KH
2008-07-01 15:18   ` [patch 1/9] TTY: fix for tty operations bugs Greg KH
2008-07-01 16:01     ` Greg KH
2008-07-02  9:57       ` S.Çağlar Onur
2008-07-02  9:44         ` Alan Cox
2008-07-02 14:41         ` Greg KH
2008-07-02 15:09           ` S.Çağlar Onur
2008-07-16  4:01             ` [stable] Linux 2.6.25.10 (resume) Rodrigo Rubira Branco
2008-07-16  4:49               ` Greg KH
2008-07-18 14:07                 ` Rodrigo Rubira Branco (BSDaemon)
2008-07-18 15:20                   ` Willy Tarreau
2008-07-18 15:29                     ` Rodrigo Rubira Branco (BSDaemon)
2008-07-19  4:45                       ` david
2008-07-19 10:11                   ` Alan Cox
2008-07-22  0:48                     ` Rodrigo Rubira Branco (BSDaemon)
2008-07-23  4:27                       ` Greg KH
2008-07-23 11:54                         ` pageexec
2008-07-23 14:31                           ` Henrique de Moraes Holschuh
2008-07-23 14:53                             ` pageexec
2008-07-19 22:13                   ` Greg KH
2008-07-20 17:28                     ` Al Viro
2008-07-22  1:07                       ` Rodrigo Rubira Branco (BSDaemon)
2008-07-22  0:52                     ` Rodrigo Rubira Branco (BSDaemon)
2008-07-01 15:19   ` [patch 2/9] futexes: fix fault handling in futex_lock_pi Greg KH
2008-07-01 15:19   ` [patch 3/9] IB/mthca: Clear ICM pages before handing to FW Greg KH
2008-07-01 15:19   ` [patch 4/9] DRM: enable bus mastering on i915 at resume time Greg KH
2008-07-01 15:19   ` [patch 5/9] x86_64 ptrace: fix sys32_ptrace task_struct leak Greg KH
2008-07-01 15:19   ` [patch 6/9] sched: fix cpu hotplug Greg KH
2008-07-01 15:19   ` [patch 7/9] ptrace GET/SET FPXREGS broken Greg KH
2008-07-01 15:19   ` Greg KH [this message]
2008-07-01 15:19   ` [patch 9/9] x86: shift bits the right way in native_read_tscp Greg KH
2008-07-01 16:43   ` [patch 0/9] 2.6.25.10 -stable review Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080701151918.GI3536@suse.de \
    --to=gregkh@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=cavokz@gmail.com \
    --cc=cebbert@redhat.com \
    --cc=chuckw@quantumlinux.com \
    --cc=davej@redhat.com \
    --cc=jmforbes@linuxtx.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mkrufky@linuxtv.org \
    --cc=rbranco@la.checkpoint.com \
    --cc=rdunlap@xenotime.net \
    --cc=reviews@ml.cw.f00f.org \
    --cc=rusty@rustcorp.com.au \
    --cc=stable@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@mit.edu \
    --cc=w@1wt.eu \
    --cc=yanmin_zhang@linux.intel.com \
    --cc=zwane@arm.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.