linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: holt@sgi.com (Robin Holt)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH -v7 0/11] Shutdown from reboot_cpuid without stopping other cpus.
Date: Wed, 1 May 2013 22:39:52 -0500	[thread overview]
Message-ID: <20130502033952.GU3658@sgi.com> (raw)
In-Reply-To: <20130501231347.GT14496@n2100.arm.linux.org.uk>

On Thu, May 02, 2013 at 12:13:47AM +0100, Russell King - ARM Linux wrote:
> On Wed, May 01, 2013 at 12:06:40PM -0500, Robin Holt wrote:
> > Andrew, Please do _NOT_ take this patch series yet.  I am sending this
> > to you because you had comments on my -v6 submission.
> 
> Another reason for not applying this is that I believe it wilfully breaks
> a bunch of ARM platforms - such as removing the 'g' reboot mode (for gpio
> based reboot on PXA), and removing the 's' reboot mode off a bunch of ARM
> platforms which have no way to do a hard reboot.

I am not sure what your basis for this statement is.

First, let me look at the GPIO question.
 - The pxa_restart() function was changed to use REBOOT_GPIO instead of
   'g'.

 - The tosa_poweroff() and spitz_poweroff() functions were changed to
   pass REBOOT_GPIO instead of 'g' to pxa_restart().

 - The "SHARP Tosa" machine description was setting restart_mode to 'g',
   and setting the restart function to tosa_restart() which ignored the
   'g' so I eliminated setting restart_mode to 'g' in the first place.

 - The equivalent held true for the "SHARP Spitz", "SHARP Borzoi", and
   "SHARP Akita" machines.

 - I see no other uses of 'g' for a mode being passed to a restart
   function.

Second, the restart_mode = 's' cases:
 - The "EBSA110" machine was setting it, but ebsa110_restart does not use
   the reboot mode parameter so I eliminated it.

 - The "Chalice-CATS" machine was converted from setting restart_mode = 's'
   to setting reboot_mode = REBOOT_WARM and footbridge_restart was converted
   to checking for REBOOT_WARM.

 - The "MIO A701" machine was setting it, but the mioa701_restart() function
   does not use the parameter so I eliminated it.

Of the 418 machines with ".restart =" being set, there are 73 uniq
functions being utilized.  Here is the summary of those functions:
bcm2835_restart                 mode param not used.
clps711x_restart                mode param not used.
cns3xxx_restart                 mode param not used.
corgi_restart                   mode param not used.
cpu8815_restart                 mode param not used.
da8xx_restart                   mode param not used.
davinci_restart                 mode param not used.
dove_restart                    mode param not used.
ebsa110_restart                 mode param not used.
ep93xx_restart                  mode param not used.
eva_restart                     mode param not used.
exynos4_restart                 mode param not used.
exynos5_restart                 mode param not used.
footbridge_restart              Adapted to use REBOOT_WARM instead of 's'
h720x_restart                   mode param not used.
highbank_restart                Adapted to use REBOOT_COLD instead of 'h'
imx6q_restart                   mode param not used.
integrator_restar               mode param not used.
iop13xx_restart                 mode param not used.
iop3xx_restart                  mode param not used.
ixp4xx_restart                  Adapted to use REBOOT_WARM instead of 's'
kirkwood_restart                mode param not used.
ks8695_restart                  Adapted to use REBOOT_WARM instead of 's'
kzm9g_restart                   mode param not used.
lpc23xx_restart                 Adapted to use REBOOT_WARM and REBOOT_COLD
mioa701_restart                 mode param not used.
mmp_restart                     mode param not used.
mv78xx0_restart                 mode param not used.
mvebu_restart                   mode param not used.
mxc_restart                     mode param not used.
mxs_restart                     mode param not used.
n2100_restart                   mode param not used.
netwinder_restart               Adapted to use REBOOT_WARM instead of 's'
netx_restart                    mode param not used.
nuc9xx_restart                  Adapted to use REBOOT_WARM instead of 's'
omap1_restart                   mode param not used.
omap2xxx_restart                mode param not used.
omap3xxx_restart                mode param not used.
omap44xx_restart                mode param not used.
orion5x_restart                 mode param not used.
picoxcell_wdt_restart           mode param not used.
pxa168_restart                  mode param not used.
pxa_restart                     Adapted to use REBOOT_WARM, REBOOT_COLD, and REBOOT_GPIO.
realview_eb_restart             mode param not used.
realview_pb1176_restart         mode param not used.
realview_pb11mp_restart         mode param not used.
realview_pba8_restart           mode param not used.
realview_pbx_restart            mode param not used.
rpc_restart                     mode param not used.
s3c2410_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c2412_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c2416_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c2443_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c244x_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c64xx_restart                 Adapted to use REBOOT_WARM instead of 's'
s5p64x0_restart                 Adapted to use REBOOT_WARM instead of 's'
s5pc100_restart                 Adapted to use REBOOT_WARM instead of 's'
s5pv210_restart                 mode param not used.
sa11x0_restart                  Adapted to use REBOOT_WARM instead of 's'
shark_restart                   mode param not used.
sirfsoc_restart                 mode param not used.
socfpga_cyclone5_restart        mode param not used.
spear_restart                   Adapted to use REBOOT_WARM instead of 's'
spitz_restart                   mode param not used.
sunxi_restart                   mode param not used.
tegra_assert_system_reset       mode param not used.
tnetv107x_restart               mode param not used.
tosa_restart                    mode param not used.
u300_restart                    Adapted to use REBOOT_WARM and REBOOT_COLD
versatile_restart               mode param not used.
voiceblue_restart               mode param not used.
vt8500_restart                  mode param not used.

Callers to pxa_restart were converted as follows:
 - corgi_poweroff(), corgi_restart(), and poodle_poweroff() were converted
   from passing 'h' to passing REBOOT_COLD.

 - mioa701_poweroff() and mioa701_restart() were converted from passing
   's' to passing REBOOT_WARM.

 - As discussed above, tosa_poweroff() and spitz_poweroff() were converted
  from using 'g' to passing REBOOT_GPIO.

>From the above list, no other functions which utilized the mode
parameter were found being called from anything other than their machine
desription's .restart callout.

I _THOUGHT_ I had checked each and every one fairly thoroughly to
ensure all callers were converted as appropriate to pass in REBOOT_COLD,
REBOOT_WARM, or REBOOT_GPIO instead of 'h', 's', or 'g'.  It was a lot of
code to look over with no strong familiarity so I likely missed something,
but I did put an honest effort into doing this right.  If you could point
to a specific problem, I will address it.

Thanks,
Robin

  parent reply	other threads:[~2013-05-02  3:39 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-01 17:06 [PATCH -v7 0/11] Shutdown from reboot_cpuid without stopping other cpus Robin Holt
2013-05-01 17:06 ` [PATCH -v7 01/11] CPU hotplug: Provide a generic helper to disable/enable CPU hotplug Robin Holt
2013-05-01 17:06 ` [PATCH -v7 02/11] Migrate shutdown/reboot to boot cpu Robin Holt
2013-05-01 17:06 ` [PATCH -v7 03/11] Remove -stable friendly PF_THREAD_BOUND define Robin Holt
2013-05-01 17:06 ` [PATCH -v7 04/11] Move shutdown/reboot related functions to kernel/reboot.c Robin Holt
2013-05-01 17:06 ` [PATCH -v7 05/11] checkpatch.pl the new kernel/reboot.c file Robin Holt
2013-05-01 17:06 ` [PATCH -v7 06/11] x86, prepare reboot_mode for moving to generic kernel code Robin Holt
2013-05-01 17:06 ` [PATCH -v7 07/11] unicore32, " Robin Holt
2013-05-01 17:06 ` [PATCH -v7 08/11] arm, Remove unused restart_mode fields from some arm subarchs Robin Holt
2013-05-01 23:09   ` Russell King - ARM Linux
2013-05-01 17:06 ` [PATCH -v7 09/11] arm, prepare reboot_mode for moving to generic kernel code Robin Holt
2013-05-01 17:06 ` [PATCH -v7 10/11] arm, change reboot_mode to use enum reboot_mode Robin Holt
2013-05-02  7:30   ` Ingo Molnar
2013-05-02 12:49     ` Robin Holt
2013-05-01 17:06 ` [PATCH -v7 11/11] Move arch/x86 reboot= handling to generic kernel Robin Holt
2013-05-02  7:34   ` Ingo Molnar
2013-05-01 23:13 ` [PATCH -v7 0/11] Shutdown from reboot_cpuid without stopping other cpus Russell King - ARM Linux
2013-05-02  2:19   ` Robin Holt
2013-05-02  3:39   ` Robin Holt [this message]
2013-05-02 18:05     ` Russell King - ARM Linux
2013-05-03 19:05       ` Robin Holt

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=20130502033952.GU3658@sgi.com \
    --to=holt@sgi.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).