Re: [PATCH v5] ARM: smp: Only expose /sys/.../cpuX/online if hotpluggable

From: Russell King - ARM Linux
Date: Sat Jul 25 2015 - 11:02:07 EST


On Fri, Jul 17, 2015 at 02:21:05PM -0700, Stephen Boyd wrote:
> On 06/10/2015 04:11 PM, Stephen Boyd wrote:
> >On 06/10/2015 03:57 PM, Russell King - ARM Linux wrote:
> >>diff --git a/arch/arm/mach-shmobile/common.h b/arch/arm/mach-shmobile/common.h
> >>index 476092b86c6e..f2c4bf437ea7 100644
> >>--- a/arch/arm/mach-shmobile/common.h
> >>+++ b/arch/arm/mach-shmobile/common.h
> >>@@ -13,7 +13,8 @@ extern void shmobile_smp_boot(void);
> >> extern void shmobile_smp_sleep(void);
> >> extern void shmobile_smp_hook(unsigned int cpu, unsigned long fn,
> >> unsigned long arg);
> >>-extern int shmobile_smp_cpu_disable(unsigned int cpu);
> >>+extern bool shmobile_smp_cpu_can_disable(unsigned int cpu);
> >>+extern void shmobile_invalidate_start(void);
> >>
> >>which your original patch did not include. The tree I'm applying to
> >>(-rc1) contains:
> >>
> >>extern int shmobile_smp_cpu_disable(unsigned int cpu);
> >>extern void shmobile_invalidate_start(void);
> >>
> >>there. Hence git quite rightfully declines to apply the patch.
> >>
> >Thanks. Fixed.
> >
>
> Sorry I just noticed that you applied 8392/1 instead of 8392/2 from the
> patch tracker. So shmobile_invalidate_start() came back.

Stephen,

8392/2 does _not_ apply:

$ pdb gitapply 8392/2
Patching 8392/2...
git apply --whitespace=fix -p1 --index --check > /tmp/pdb.521 2>&1 exited with non-zero status: 256
error: patch failed: arch/arm/mach-shmobile/common.h:13
error: arch/arm/mach-shmobile/common.h: patch does not apply

However, 8392/1 does:

$ pdb gitapply 8392/1
Patching 8392/1...
Checking in...
[misc e28678d7b83a] ARM: 8392/1: smp: Only expose /sys/.../cpuX/online if hotpluggable
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
10 files changed, 36 insertions(+), 16 deletions(-)

This is because your patch 8392/2 has this hunk:

diff --git a/arch/arm/mach-shmobile/common.h b/arch/arm/mach-shmobile/common.h
index afc60bad6fd6..f2c4bf437ea7 100644
--- a/arch/arm/mach-shmobile/common.h
+++ b/arch/arm/mach-shmobile/common.h
@@ -13,7 +13,7 @@ extern void shmobile_smp_boot(void);
extern void shmobile_smp_sleep(void);
extern void shmobile_smp_hook(unsigned int cpu, unsigned long fn,
unsigned long arg);
-extern int shmobile_smp_cpu_disable(unsigned int cpu);
+extern bool shmobile_smp_cpu_can_disable(unsigned int cpu);
extern void shmobile_invalidate_start(void);
extern void shmobile_boot_scu(void);
extern void shmobile_smp_scu_prepare_cpus(unsigned int max_cpus);

which states that shmobile_invalidate_start() must exist in the original
code. In v4.2-rc1 and later kernels, there is no such line - here is
v4.2-rc1 and later contains from line 13 onwards:

extern void shmobile_smp_sleep(void);
extern void shmobile_smp_hook(unsigned int cpu, unsigned long fn,
unsigned long arg);
extern int shmobile_smp_cpu_disable(unsigned int cpu);
extern void shmobile_boot_scu(void);
extern void shmobile_smp_scu_prepare_cpus(unsigned int max_cpus);
extern void shmobile_smp_scu_cpu_die(unsigned int cpu);

The difference between your two patches is relatively minor:

8392/1 _adds_ shmobile_invalidate_start()
8392/2 _requires_ that shmobile_invalidate_start() exist

If you wish me to apply a patch which _neither_ requires _nor_ adds the
shmobile_invalidate_start() prototype, maybe you should send me a patch
to that effect?

> I thought it would automatically supersede the previous patch but it
> looks like it just sticks around?

It doesn't, because the /n thing was supposed to be for related patches
rather than automatic superseding of previous patches.

--
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/