[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20130619173830.f8e821a88752aa95f8b50cab@canb.auug.org.au>
Date: Wed, 19 Jun 2013 17:38:30 +1000
From: Stephen Rothwell <sfr@...b.auug.org.au>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: linux-next@...r.kernel.org, linux-kernel@...r.kernel.org,
Stephen Warren <swarren@...dia.com>,
Russell King <rmk@....linux.org.uk>, Robin Holt <holt@....com>
Subject: linux-next: manual merge of the akpm tree with the arm-current tree
Hi Andrew,
Today's linux-next merge of the akpm tree got a conflict in
arch/arm/kernel/process.c between commit 19ab428f4b79 ("ARM: 7759/1:
decouple CPU offlining from reboot/shutdown") from the tree and commit
("reboot: move arch/x86 reboot= handling to generic kernel") from the
akpm tree.
I fixed it up (see below) and can carry the fix as necessary (no action
is required).
--
Cheers,
Stephen Rothwell sfr@...b.auug.org.au
diff --cc arch/arm/kernel/process.c
index 4f569dc,5cbd139..0000000
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@@ -175,39 -176,16 +175,29 @@@ void arch_cpu_idle(void
default_idle();
}
- enum reboot_mode reboot_mode = REBOOT_HARD;
-
- static int __init reboot_setup(char *str)
- {
- if ('s' == str[0])
- reboot_mode = REBOOT_SOFT;
- return 1;
- }
- __setup("reboot=", reboot_setup);
-
+/*
+ * Called by kexec, immediately prior to machine_kexec().
+ *
+ * This must completely disable all secondary CPUs; simply causing those CPUs
+ * to execute e.g. a RAM-based pin loop is not sufficient. This allows the
+ * kexec'd kernel to use any and all RAM as it sees fit, without having to
+ * avoid any code or data used by any SW CPU pin loop. The CPU hotplug
+ * functionality embodied in disable_nonboot_cpus() to achieve this.
+ */
void machine_shutdown(void)
{
-#ifdef CONFIG_SMP
- smp_send_stop();
-#endif
+ disable_nonboot_cpus();
}
+/*
+ * Halting simply requires that the secondary CPUs stop performing any
+ * activity (executing tasks, handling interrupts). smp_send_stop()
+ * achieves this.
+ */
void machine_halt(void)
{
- machine_shutdown();
+ smp_send_stop();
+
local_irq_disable();
while (1);
}
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists