linux/arch
Gautham R. Shenoy 424f8acd32 powerpc/powernv: Fix bug due to labeling ambiguity in power_enter_stop
Commit 09206b600c ("powernv: Pass PSSCR value and mask to
power9_idle_stop") added additional code in power_enter_stop() to
distinguish between stop requests whose PSSCR had ESL=EC=1 from those
which did not. When ESL=EC=1, we do a forward-jump to a location
labelled by "1", which had the code to handle the ESL=EC=1 case.

Unfortunately just a couple of instructions before this label, is the
macro IDLE_STATE_ENTER_SEQ() which also has a label "1" in its
expansion.

As a result, the current code can result in directly executing stop
instruction for deep stop requests with PSSCR ESL=EC=1, without saving
the hypervisor state.

Fix this BUG by labeling the location that handles ESL=EC=1 case with
a more descriptive label ".Lhandle_esl_ec_set" (local label suggestion
a la .Lxx from Anton Blanchard).

While at it, rename the label "2" labelling the location of the code
handling entry into deep stop states with ".Lhandle_deep_stop".

For a good measure, change the label in IDLE_STATE_ENTER_SEQ() macro
to an not-so commonly used value in order to avoid similar mishaps in
the future.

Fixes: 09206b600c ("powernv: Pass PSSCR value and mask to power9_idle_stop")
Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2017-03-03 11:24:50 +11:00
..
alpha mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
arc mm: add new mmget() helper 2017-02-27 18:43:48 -08:00
arm Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2017-02-28 11:50:53 -08:00
arm64 mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
avr32 kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
blackfin mm: add new mmget() helper 2017-02-27 18:43:48 -08:00
c6x kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
cris kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
frv mm: add new mmget() helper 2017-02-27 18:43:48 -08:00
h8300 kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
hexagon mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
ia64 mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
m32r mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
m68k Merge branch 'akpm' (patches from Andrew) 2017-02-27 23:09:29 -08:00
metag mm: add new mmget() helper 2017-02-27 18:43:48 -08:00
microblaze kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
mips mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
mn10300 mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
nios2 kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
openrisc scripts/spelling.txt: add "efective" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
parisc mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
powerpc powerpc/powernv: Fix bug due to labeling ambiguity in power_enter_stop 2017-03-03 11:24:50 +11:00
s390 Merge branch 'akpm' (patches from Andrew) 2017-02-27 23:09:29 -08:00
score mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
sh mm: add new mmget() helper 2017-02-27 18:43:48 -08:00
sparc mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
tile mm: add new mmgrab() helper 2017-02-27 18:43:48 -08:00
um kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
unicore32 kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
x86 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-28 11:46:00 -08:00
xtensa mm: add new mmget() helper 2017-02-27 18:43:48 -08:00
.gitignore
Kconfig scripts/spelling.txt: add "an user" pattern and fix typo instances 2017-02-27 18:43:46 -08:00