ARM fixes for 5.5:
- fix ftrace relocation type filtering - relax arch timer version check -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEuNNh8scc2k/wOAE+9OeQG+StrGQFAl4sh1sACgkQ9OeQG+St rGTv9hAArEcxTDLg10goPy4bnuWIJKOkFoN6pR0DUyfBEFySKSSPiiPXiNlQr3iQ d2KLmfHA5bCjvasmvqcHbEWTU5dgvraP5PhcucI5KZRmIqINghjWjsnotMjyK69H PbgaKW1Ghqw7L4VXzA7USy/F9smugBkPMpAMVYAo9r66JmPQF1ZfIdSEAXarpWgc y5GpsnVVqDrrLnrdKIXdK93QYN7A6HRcF2bqsd7tK40ogyfI9Eb5FEZeF7R8kX1h PIK3MB5MiZ0FuQVto0GBif0yk4/vn5z11U2ebvOpmUY+OHhqGJ6hYCrnkVTTLAHn h6cbTofG0oIoTd+k9+3qTpSsbkErRPzK4WiOPVyYdSywIzwmbvQF4L260J59ZU5u eVF5c/m9jHgG4lSRsGKVwb+zRfURMnWwry/+tsVUAGYmsTGT6tYRKWrGaUUDw1em RGNnPBkabQB8opiodHNe0kepW/LIQHRFXZ8QbP66h/3qlcIinT/m3j+pLERyVyFD nnOFkRyyqEJtjRqtNLLqBcMo77+8BV1bW5BsiBYvTp2VVSsSiANxEfsonQ0043Az mgnG0HszIle+Eo+xK8zM9NQMFBoB2X3aciAj+Id9I1h//xRpCTVds0zsvbx8KqdF cUykR9+i0t009n+3c4ralMdROZeaXOAwttCr7TErikLrsXerDIg= =4gzG -----END PGP SIGNATURE----- Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm Pull ARM fixes from Russell King: - fix ftrace relocation type filtering - relax arch timer version check * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: ARM: 8955/1: virt: Relax arch timer version check during early boot ARM: 8950/1: ftrace/recordmcount: filter relocation types
This commit is contained in:
Коммит
2821e26f3a
|
@ -146,10 +146,9 @@ ARM_BE8(orr r7, r7, #(1 << 25)) @ HSCTLR.EE
|
||||||
#if !defined(ZIMAGE) && defined(CONFIG_ARM_ARCH_TIMER)
|
#if !defined(ZIMAGE) && defined(CONFIG_ARM_ARCH_TIMER)
|
||||||
@ make CNTP_* and CNTPCT accessible from PL1
|
@ make CNTP_* and CNTPCT accessible from PL1
|
||||||
mrc p15, 0, r7, c0, c1, 1 @ ID_PFR1
|
mrc p15, 0, r7, c0, c1, 1 @ ID_PFR1
|
||||||
lsr r7, #16
|
ubfx r7, r7, #16, #4
|
||||||
and r7, #0xf
|
teq r7, #0
|
||||||
cmp r7, #1
|
beq 1f
|
||||||
bne 1f
|
|
||||||
mrc p15, 4, r7, c14, c1, 0 @ CNTHCTL
|
mrc p15, 4, r7, c14, c1, 0 @ CNTHCTL
|
||||||
orr r7, r7, #3 @ PL1PCEN | PL1PCTEN
|
orr r7, r7, #3 @ PL1PCEN | PL1PCTEN
|
||||||
mcr p15, 4, r7, c14, c1, 0 @ CNTHCTL
|
mcr p15, 4, r7, c14, c1, 0 @ CNTHCTL
|
||||||
|
|
|
@ -38,6 +38,10 @@
|
||||||
#define R_AARCH64_ABS64 257
|
#define R_AARCH64_ABS64 257
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define R_ARM_PC24 1
|
||||||
|
#define R_ARM_THM_CALL 10
|
||||||
|
#define R_ARM_CALL 28
|
||||||
|
|
||||||
static int fd_map; /* File descriptor for file being modified. */
|
static int fd_map; /* File descriptor for file being modified. */
|
||||||
static int mmap_failed; /* Boolean flag. */
|
static int mmap_failed; /* Boolean flag. */
|
||||||
static char gpfx; /* prefix for global symbol name (sometimes '_') */
|
static char gpfx; /* prefix for global symbol name (sometimes '_') */
|
||||||
|
@ -418,6 +422,18 @@ static char const *already_has_rel_mcount = "success"; /* our work here is done!
|
||||||
#define RECORD_MCOUNT_64
|
#define RECORD_MCOUNT_64
|
||||||
#include "recordmcount.h"
|
#include "recordmcount.h"
|
||||||
|
|
||||||
|
static int arm_is_fake_mcount(Elf32_Rel const *rp)
|
||||||
|
{
|
||||||
|
switch (ELF32_R_TYPE(w(rp->r_info))) {
|
||||||
|
case R_ARM_THM_CALL:
|
||||||
|
case R_ARM_CALL:
|
||||||
|
case R_ARM_PC24:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* 64-bit EM_MIPS has weird ELF64_Rela.r_info.
|
/* 64-bit EM_MIPS has weird ELF64_Rela.r_info.
|
||||||
* http://techpubs.sgi.com/library/manuals/4000/007-4658-001/pdf/007-4658-001.pdf
|
* http://techpubs.sgi.com/library/manuals/4000/007-4658-001/pdf/007-4658-001.pdf
|
||||||
* We interpret Table 29 Relocation Operation (Elf64_Rel, Elf64_Rela) [p.40]
|
* We interpret Table 29 Relocation Operation (Elf64_Rel, Elf64_Rela) [p.40]
|
||||||
|
@ -523,6 +539,7 @@ static int do_file(char const *const fname)
|
||||||
altmcount = "__gnu_mcount_nc";
|
altmcount = "__gnu_mcount_nc";
|
||||||
make_nop = make_nop_arm;
|
make_nop = make_nop_arm;
|
||||||
rel_type_nop = R_ARM_NONE;
|
rel_type_nop = R_ARM_NONE;
|
||||||
|
is_fake_mcount32 = arm_is_fake_mcount;
|
||||||
gpfx = 0;
|
gpfx = 0;
|
||||||
break;
|
break;
|
||||||
case EM_AARCH64:
|
case EM_AARCH64:
|
||||||
|
|
Загрузка…
Ссылка в новой задаче