mirror of https://github.com/dynup/kpatch
fed5786932
Rebased to kernel-4.18.0-304.el8. Note: since RHEL-8.4 dropped klp.arch support, we can now re-enable those tests that reference static keys defined in vmlinux. Also, adjust for adjust for ppc64le inlining: Building gcc-static-local-var-4.patch on ppc64le results in test failure, as the kpatch .ko now contains a 'free_ioctx' symbol (the test expects to NOT see one). From the build log: aio.o: changed function: free_ioctx aio.o: new function: put_aio_ring_file << now un-inlined? aio.o: changed function: aio_free_ring aio.o: changed function: ioctx_alloc aio.o: changed function: aio_prep_rw aio.o: changed function: aio_read_events aio.o: new function: kpatch_aio_foo << expected new function and a source code change to free_ioctx(): % diff -upr \ <(objdump -D -j .text.free_ioctx ~/.kpatch/tmp/orig/fs/aio.o) \ <(objdump -D -j .text.free_ioctx ~/.kpatch/tmp/patched/fs/aio.o) --- /dev/fd/63 2020-10-26 14:28:18.086236019 -0400 +++ /dev/fd/62 2020-10-26 14:28:18.086236019 -0400 @@ -1,5 +1,5 @@ -/root/.kpatch/tmp/orig/fs/aio.o: file format elf64-powerpcle +/root/.kpatch/tmp/patched/fs/aio.o: file format elf64-powerpcle Disassembly of section .text.free_ioctx: @@ -53,7 +53,7 @@ Disassembly of section .text.free_ioctx: b0: 00 00 82 3c addis r4,r2,0 b4: 00 00 84 e8 ld r4,0(r4) b8: 78 fb e6 7f mr r6,r31 - bc: e0 00 63 38 addi r3,r3,224 + bc: 38 00 63 38 addi r3,r3,56 c0: 01 00 00 48 bl c0 <free_ioctx+0xb8> c4: 00 00 00 60 nop c8: 70 ff ff 4b b 38 <free_ioctx+0x30> Marking put_aio_ring_file() as __always_inline keeps the r3 / 224 offset value, leaving free_ioctx() unchanged. Since it's no longer included in the resulting .ko, gcc-static-local-var-4.test will pass once again. Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com> |
||
---|---|---|
.. | ||
bug-table-section.patch | ||
cmdline-string-LOADED.test | ||
cmdline-string.patch | ||
data-new-LOADED.test | ||
data-new.patch | ||
data-read-mostly.patch | ||
fixup-section.patch | ||
gcc-constprop.patch | ||
gcc-isra.patch | ||
gcc-mangled-3.patch | ||
gcc-static-local-var-2.patch | ||
gcc-static-local-var-3.patch | ||
gcc-static-local-var-4.patch | ||
gcc-static-local-var-4.test | ||
gcc-static-local-var-5.patch | ||
gcc-static-local-var-6.patch | ||
macro-callbacks.patch | ||
macro-printk.patch | ||
meminfo-init-FAIL.patch | ||
meminfo-init2-FAIL.patch | ||
meminfo-string-LOADED.test | ||
meminfo-string.patch | ||
module-LOADED.test | ||
module.patch | ||
multiple.test | ||
new-function.patch | ||
new-globals.patch | ||
parainstructions-section.patch | ||
shadow-newpid-LOADED.test | ||
shadow-newpid.patch | ||
smp-locks-section.patch | ||
special-static.patch | ||
symvers-disagreement-FAIL.patch | ||
tracepoints-section.patch | ||
warn-detect-FAIL.patch |