diff options
| author | Michael Ellerman <[email protected]> | 2018-04-17 00:39:03 +1000 |
|---|---|---|
| committer | Michael Ellerman <[email protected]> | 2018-05-11 23:29:02 +1000 |
| commit | cad0e39023b43d94d5e38dfd55c103e15bdd093d (patch) | |
| tree | 227ae4c7a6634b729d0b12b707594a9dfed86af4 /tools/perf/scripts/python/syscall-counts.py | |
| parent | 32810d91325ec76b8ef4df463f8a0e9baf353322 (diff) | |
powerpc/lib: Fix the feature fixup tests to actually work
The code patching code has always been a bit confused about whether
it's best to use void *, unsigned int *, char *, etc. to point to
instructions. In fact in the feature fixups tests we use both unsigned
int[] and u8[] in different places.
Unfortunately the tests that use unsigned int[] calculate the size of
the code blocks using subtraction of those unsigned int pointers, and
then pass the result to memcmp(). This means we're only comparing 1/4
of the bytes we need to, because we need to multiply by
sizeof(unsigned int) to get the number of *bytes*.
The result is that the tests do all the patching and then only compare
some of the resulting code, so patching bugs that only effect that
last 3/4 of the code could slip through undetected. It turns out that
hasn't been happening, although one test had a bad expected case (see
previous commit).
Fix it for now by multiplying the size by 4 in the affected functions.
Fixes: 362e7701fd18 ("powerpc: Add self-tests of the feature fixup code")
Epic-brown-paper-bag-by: Michael Ellerman <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/syscall-counts.py')
0 files changed, 0 insertions, 0 deletions