diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2018-04-16 15:25:19 +0200 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2018-04-16 16:37:48 +0200 |
commit | b8858581febb050688e276b956796bc4a78299ed (patch) | |
tree | 987871ef037230c31ade099c076e903a060fac93 /crypto | |
parent | Linux 4.17-rc1 (diff) | |
download | linux-b8858581febb050688e276b956796bc4a78299ed.tar.xz linux-b8858581febb050688e276b956796bc4a78299ed.zip |
powerpc/lib: Fix off-by-one in alternate feature patching
When we patch an alternate feature section, we have to adjust any
relative branches that branch out of the alternate section.
But currently we have a bug if we have a branch that points to past
the last instruction of the alternate section, eg:
FTR_SECTION_ELSE
1: b 2f
or 6,6,6
2:
ALT_FTR_SECTION_END(...)
nop
This will result in a relative branch at 1 with a target that equals
the end of the alternate section.
That branch does not need adjusting when it's moved to the non-else
location. Currently we do adjust it, resulting in a branch that goes
off into the link-time location of the else section, which is junk.
The fix is to not patch branches that have a target == end of the
alternate section.
Fixes: d20fe50a7b3c ("KVM: PPC: Book3S HV: Branch inside feature section")
Fixes: 9b1a735de64c ("powerpc: Add logic to patch alternative feature sections")
Cc: stable@vger.kernel.org # v2.6.27+
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'crypto')
0 files changed, 0 insertions, 0 deletions