ARM development for 6.18-rc1
ARM Development changes for 6.18-rc1: - Use string choices helpers - Add support for HAVE_FUNCTION_GRAPH_FREGS -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEuNNh8scc2k/wOAE+9OeQG+StrGQFAmjlInoACgkQ9OeQG+St rGRrIg/+Iy2o/dCMV5mj++6KE5ZAxLGqbqFzbQqMhSXk57kQM0A+AGVz4rcxv3bf ygharyVkx0Po2VP5ghKwhfgskrNmkhPjIKgm3jdO1yLHRwYuyXgCThXu8djNPtwY 6b3A+tFDxBW14CUmTsAXJnwlCMTpToW7fl/jwsYZFb8qYtAZRygd+k9Pr2EcSj8f H/IMUfsmZqoqGTvZCQUy9Em6WDcSZrqz6kIzOToYibhEZdAXHITpOyNofkBqGsSG hMG4yCfWSJ1+dI4p3RjQfNlTvZmQxhVb0HGT63CbWw2+DZux1uj7HGezIDib7J6M jTTzx0ajtdTGbp4ep9XVCvr2L1qHGoFggN0yZ/UpQJCmCL28HHvZ2bE55CofEP59 0YbVTWxR74KlmmTZO/RGY+vZEjoXZ0+nNjLAUYiSy9xWPExX2i/KcnjI+eYUfAOj ISLWP7+gQ9cH86Uvj+RED57+ZT8Y1xYuY6srSvbUMIAaLVFk1ir7vELY8waKtegk zRXhebMK+1n6CikwWRvxFdC6+1jMEh3OyZvOmoaumkYLNJqU+EYXj2nwC80DZI4Q RxAiWFL3fS23N/4YDDZsOTZ8WibrmuEHlnoc3sh7qDDZEOxccTU6d1vSxFCas9La R6onhAAjXTeRAavNf+4S8SHg6KMHFuAplSpDsjxi+8t0kqRwFT4= =cy0V -----END PGP SIGNATURE----- Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rmk/linux Pull ARM development updates from Russell King: - Use string choices helpers - Add support for HAVE_FUNCTION_GRAPH_FREGS * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rmk/linux: ARM: 9457/1: ftrace: Implement HAVE_FUNCTION_GRAPH_FREGS ARM: 9456/1: mm: fault: use string choices helper ARM: 9454/1: kernel: bios32: use string choices helper ARM: 9451/1: mm: l2x0: use string choices helper
This commit is contained in:
commit
0d97f2067c
|
@ -108,6 +108,7 @@ config ARM
|
|||
select HAVE_GUP_FAST if ARM_LPAE
|
||||
select HAVE_FUNCTION_ERROR_INJECTION
|
||||
select HAVE_FUNCTION_GRAPH_TRACER
|
||||
select HAVE_FUNCTION_GRAPH_FREGS
|
||||
select HAVE_FUNCTION_TRACER if !XIP_KERNEL
|
||||
select HAVE_GCC_PLUGINS
|
||||
select HAVE_HW_BREAKPOINT if PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/string_choices.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
|
@ -337,8 +338,8 @@ void pcibios_fixup_bus(struct pci_bus *bus)
|
|||
/*
|
||||
* Report what we did for this bus
|
||||
*/
|
||||
pr_info("PCI: bus%d: Fast back to back transfers %sabled\n",
|
||||
bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis");
|
||||
pr_info("PCI: bus%d: Fast back to back transfers %s\n",
|
||||
bus->number, str_enabled_disabled(features & PCI_COMMAND_FAST_BACK));
|
||||
}
|
||||
EXPORT_SYMBOL(pcibios_fixup_bus);
|
||||
|
||||
|
|
|
@ -257,11 +257,21 @@ ENDPROC(ftrace_graph_regs_caller)
|
|||
|
||||
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
|
||||
ENTRY(return_to_handler)
|
||||
stmdb sp!, {r0-r3}
|
||||
add r0, sp, #16 @ sp at exit of instrumented routine
|
||||
mov ip, sp @ sp at exit of instrumented routine
|
||||
sub sp, #PT_REGS_SIZE
|
||||
str r0, [sp, #S_R0]
|
||||
str r1, [sp, #S_R1]
|
||||
str r2, [sp, #S_R2]
|
||||
str r3, [sp, #S_R3]
|
||||
str ip, [sp, #S_FP]
|
||||
mov r0, sp
|
||||
bl ftrace_return_to_handler
|
||||
mov lr, r0 @ r0 has real ret addr
|
||||
ldmia sp!, {r0-r3}
|
||||
mov lr, r0 @ r0 has real ret addr
|
||||
ldr r3, [sp, #S_R3]
|
||||
ldr r2, [sp, #S_R2]
|
||||
ldr r1, [sp, #S_R1]
|
||||
ldr r0, [sp, #S_R0]
|
||||
add sp, sp, #PT_REGS_SIZE @ restore stack pointer
|
||||
ret lr
|
||||
ENDPROC(return_to_handler)
|
||||
#endif
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include <linux/io.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/string_choices.h>
|
||||
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/cp15.h>
|
||||
|
@ -667,9 +668,9 @@ static void __init l2c310_enable(void __iomem *base, unsigned num_lock)
|
|||
u32 power_ctrl;
|
||||
|
||||
power_ctrl = readl_relaxed(base + L310_POWER_CTRL);
|
||||
pr_info("L2C-310 dynamic clock gating %sabled, standby mode %sabled\n",
|
||||
power_ctrl & L310_DYNAMIC_CLK_GATING_EN ? "en" : "dis",
|
||||
power_ctrl & L310_STNDBY_MODE_EN ? "en" : "dis");
|
||||
pr_info("L2C-310 dynamic clock gating %s, standby mode %s\n",
|
||||
str_enabled_disabled(power_ctrl & L310_DYNAMIC_CLK_GATING_EN),
|
||||
str_enabled_disabled(power_ctrl & L310_STNDBY_MODE_EN));
|
||||
}
|
||||
|
||||
if (aux & L310_AUX_CTRL_FULL_LINE_ZERO)
|
||||
|
|
|
@ -135,8 +135,7 @@ static void die_kernel_fault(const char *msg, struct mm_struct *mm,
|
|||
bust_spinlocks(1);
|
||||
pr_alert("8<--- cut here ---\n");
|
||||
pr_alert("Unable to handle kernel %s at virtual address %08lx when %s\n",
|
||||
msg, addr, fsr & FSR_LNX_PF ? "execute" :
|
||||
fsr & FSR_WRITE ? "write" : "read");
|
||||
msg, addr, fsr & FSR_LNX_PF ? "execute" : str_write_read(fsr & FSR_WRITE));
|
||||
|
||||
show_pte(KERN_ALERT, mm, addr);
|
||||
die("Oops", regs, fsr);
|
||||
|
|
Loading…
Reference in New Issue