aboutsummaryrefslogtreecommitdiff
path: root/arch/arc/kernel
AgeCommit message (Collapse)AuthorFilesLines
2015-02-27ARC: Fix thread_saved_pc()Vineet Gupta1-23/+0
The old implementation assumed that SP at the time of __switch_to() is right above pt_regs which is almost certainly not the case as there will be some stack build up between entry into kernel and leading up to __switch_to Signed-off-by: Vineet Gupta <[email protected]>
2015-02-27ARC: Fix KSTK_ESP()Vineet Gupta1-3/+3
/proc/<pid>/maps currently don't annotate stack vma with "[stack]" This is because KSTK_ESP ie expected to return usermode SP of tsk while currently it returns the kernel mode SP of a sleeping tsk. While the fix is trivial, we also need to adjust the ARC kernel stack unwinder to not use KSTK_SP and friends any more. Cc: <[email protected]> Reported-and-suggested-by: Alexey Brodkin <[email protected]> Signed-off-by: Vineet Gupta <[email protected]>
2015-02-27ARC: perf: Enable generic software eventsVineet Gupta1-0/+2
Signed-off-by: Vineet Gupta <[email protected]>
2015-02-27ARC: Make arc_unwind_core accessible externallyVineet Gupta1-1/+14
The arc unwinder can also be used for perf callchains. Signed-off-by: Mischa Jonker <[email protected]> Signed-off-by: Vineet Gupta <[email protected]>
2015-02-16Merge tag 'arc-3.20-rc1' of ↵Linus Torvalds4-7/+40
git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC updates from Vineet Gupta: "Some fixes, nothing too exciting this time as well..." * tag 'arc-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: ARC: fix page address calculation if PAGE_OFFSET != LINUX_LINK_BASE ARC: Fix earlycon build breakage ARC: Dynamically determine BASE_BAUD from DeviceTree arc: Remove unused prepare_to_copy() ARC: use ACCESS_ONCE in cmpxchg loop ARC: add some more comments to ret_from_fork ARC: fix /proc/cpuinfo for offline cpus
2015-02-12all arches, signal: move restart_block to struct task_structAndy Lutomirski1-1/+1
If an attacker can cause a controlled kernel stack overflow, overwriting the restart block is a very juicy exploit target. This is because the restart_block is held in the same memory allocation as the kernel stack. Moving the restart block to struct task_struct prevents this exploit by making the restart_block harder to locate. Note that there are other fields in thread_info that are also easy targets, at least on some architectures. It's also a decent simplification, since the restart code is more or less identical on all architectures. [[email protected]: metag: align thread_info::supervisor_stack] Signed-off-by: Andy Lutomirski <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Al Viro <[email protected]> Cc: "H. Peter Anvin" <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Kees Cook <[email protected]> Cc: David Miller <[email protected]> Acked-by: Richard Weinberger <[email protected]> Cc: Richard Henderson <[email protected]> Cc: Ivan Kokshaysky <[email protected]> Cc: Matt Turner <[email protected]> Cc: Vineet Gupta <[email protected]> Cc: Russell King <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Will Deacon <[email protected]> Cc: Haavard Skinnemoen <[email protected]> Cc: Hans-Christian Egtvedt <[email protected]> Cc: Steven Miao <[email protected]> Cc: Mark Salter <[email protected]> Cc: Aurelien Jacquiot <[email protected]> Cc: Mikael Starvik <[email protected]> Cc: Jesper Nilsson <[email protected]> Cc: David Howells <[email protected]> Cc: Richard Kuo <[email protected]> Cc: "Luck, Tony" <[email protected]> Cc: Geert Uytterhoeven <[email protected]> Cc: Michal Simek <[email protected]> Cc: Ralf Baechle <[email protected]> Cc: Jonas Bonn <[email protected]> Cc: "James E.J. Bottomley" <[email protected]> Cc: Helge Deller <[email protected]> Cc: Benjamin Herrenschmidt <[email protected]> Cc: Paul Mackerras <[email protected]> Acked-by: Michael Ellerman <[email protected]> (powerpc) Tested-by: Michael Ellerman <[email protected]> (powerpc) Cc: Martin Schwidefsky <[email protected]> Cc: Heiko Carstens <[email protected]> Cc: Chen Liqin <[email protected]> Cc: Lennox Wu <[email protected]> Cc: Chris Metcalf <[email protected]> Cc: Guan Xuetao <[email protected]> Cc: Chris Zankel <[email protected]> Cc: Max Filippov <[email protected]> Cc: Oleg Nesterov <[email protected]> Cc: Guenter Roeck <[email protected]> Signed-off-by: James Hogan <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2015-02-04ARC: Fix earlycon build breakagePeter Hurley1-1/+1
Commit ffb7fcd66f14 ("ARC: Dynamically determine BASE_BAUD from DeviceTree") breaks arc:defconfig build: drivers/built-in.o: In function `of_setup_earlycon': (.init.text+0xb3e): undefined reference to `arc_early_base_baud' drivers/built-in.o: In function `setup_earlycon': (.init.text+0xcd0): undefined reference to `arc_early_base_baud' make: *** [vmlinux] Error 1 BASE_BAUD is only required for earlycon, which should depend on CONFIG_SERIAL_EARLYCON. Reported-by: Guenter Roeck <[email protected]> Tested-by: Guenter Roeck <[email protected]> Signed-off-by: Peter Hurley <[email protected]> Signed-off-by: Vineet Gupta <[email protected]>
2015-02-02ARC: Dynamically determine BASE_BAUD from DeviceTreeVineet Gupta1-0/+24
8250 earlycon is broken on multi-platform ARC because the UART clk value (BASE_BAUD) is fixed at build time. Instead, determine the appropriate UART clk at runtime; parse the devicetree early for platforms requiring alternate UART clk values (currently only the TB10X platform). Cc: Jiri Slaby <[email protected]> Cc: [email protected] Cc: [email protected] Cc: Rob Herring <[email protected]> Cc: Arnd Bergmann <[email protected]> Reviewed-by: Peter Hurley <[email protected]> Acked-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Vineet Gupta <[email protected]>
2015-02-02ARC: use ACCESS_ONCE in cmpxchg loopVineet Gupta1-1/+1
Signed-off-by: Vineet Gupta <[email protected]>
2015-02-02ARC: add some more comments to ret_from_forkVineet Gupta1-5/+9
Signed-off-by: Vineet Gupta <[email protected]>
2015-02-02ARC: fix /proc/cpuinfo for offline cpusVineet Gupta1-1/+6
Signed-off-by: Vineet Gupta <[email protected]>
2014-12-12ARC: R-M-W assist locks only needed for !LLSCVineet Gupta1-0/+2
Signed-off-by: Vineet Gupta <[email protected]>
2014-10-23Merge tag 'remove-weak-declarations' of ↵Linus Torvalds1-5/+0
git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull weak function declaration removal from Bjorn Helgaas: "The "weak" attribute is commonly used for the default version of a function, where an architecture can override it by providing a strong version. Some header file declarations included the "weak" attribute. That's error-prone because it causes every implementation to be weak, with no strong version at all, and the linker chooses one based on link order. What we want is the "weak" attribute only on the *definition* of the default implementation. These changes remove "weak" from the declarations, leaving it on the default definitions" * tag 'remove-weak-declarations' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: uprobes: Remove "weak" from function declarations memory-hotplug: Remove "weak" from memory_block_size_bytes() declaration kgdb: Remove "weak" from kgdb_arch_pc() declaration ARC: kgdb: generic kgdb_arch_pc() suffices vmcore: Remove "weak" from function declarations clocksource: Remove "weak" from clocksource_default_clock() declaration x86, intel-mid: Remove "weak" from function declarations audit: Remove "weak" from audit_classify_compat_syscall() declaration
2014-10-22ARC: kgdb: generic kgdb_arch_pc() sufficesVineet Gupta1-5/+0
The ARC version of kgdb_arch_pc() is identical to the generic version in kernel/debug/debug_core.c. Drop the ARC version so we use the generic one. Signed-off-by: Vineet Gupta <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]>
2014-10-13ARC: boot: cpu feature print enhancementsVineet Gupta2-109/+120
Signed-off-by: Vineet Gupta <[email protected]>
2014-10-13ARC: boot: consolidate cross-checking of h/w and s/wVineet Gupta1-29/+15
Signed-off-by: Vineet Gupta <[email protected]>
2014-10-13ARC: RIP @running_on_hwVineet Gupta2-12/+0
* No active users of this flag anymore * flag itself was no longer usable with new simualtor which acts just like hardware, not providing the special chip-id = 0xffff which good old ISS used to do. Signed-off-by: Vineet Gupta <[email protected]>
2014-10-13ARC: rename kconfig option for unaligned emulationVineet Gupta2-3/+3
Signed-off-by: Vineet Gupta <[email protected]>
2014-10-13ARC: [plat*] move code out of .init_machine into commonVineet Gupta1-1/+9
All the platforms do the same thing in init_machine callback so move it out of callback into caller of callback Signed-off-by: Vineet Gupta <[email protected]>
2014-09-27ARC: Allow SMP kernel to build/boot on UP-only infrastructureVineet Gupta2-13/+2
In light of recent SNAFU with SMP build, allow simple platform to build as SMP but run UP. * Remove the dependence on simulation SMP extension to enable quick build/test iterations of SMP kernel. * In absence of platform SMP registration, prevent the NULL smp feature name from borkign the system Signed-off-by: Vineet Gupta <[email protected]>
2014-08-09Merge branch 'signal-cleanup' of ↵Linus Torvalds1-30/+17
git://git.kernel.org/pub/scm/linux/kernel/git/rw/misc Pull arch signal handling cleanup from Richard Weinberger: "This patch series moves all remaining archs to the get_signal(), signal_setup_done() and sigsp() functions. Currently these archs use open coded variants of the said functions. Further, unused parameters get removed from get_signal_to_deliver(), tracehook_signal_handler() and signal_delivered(). At the end of the day we save around 500 lines of code." * 'signal-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/misc: (43 commits) powerpc: Use sigsp() openrisc: Use sigsp() mn10300: Use sigsp() mips: Use sigsp() microblaze: Use sigsp() metag: Use sigsp() m68k: Use sigsp() m32r: Use sigsp() hexagon: Use sigsp() frv: Use sigsp() cris: Use sigsp() c6x: Use sigsp() blackfin: Use sigsp() avr32: Use sigsp() arm64: Use sigsp() arc: Use sigsp() sas_ss_flags: Remove nested ternary if Rip out get_signal_to_deliver() Clean up signal_delivered() tracehook_signal_handler: Remove sig, info, ka and regs ...
2014-08-09Merge tag 'arc-v3.17-rc1' of ↵Linus Torvalds3-49/+55
git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC changes from Vineet Gupta: "Mostly cleanup/refactoring in core intc, cache flush, IPI send..." * tag 'arc-v3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: mm, arc: remove obsolete pagefault oom killer comment ARC: help gcc elide icache helper for !SMP ARC: move common ops for line/full cache into helpers ARC: cache boot reporting updates ARC: [intc] mask/unmask can be hidden again ARC: [plat-arcfpga] No need for init_irq hack ARC: [intc] don't mask all IRQ by default ARC: prune extra header includes from smp.c ARC: update some comments ARC: [SMP] unify cpu private IRQ requests (TIMER/IPI)
2014-08-06arc: Use sigsp()Richard Weinberger1-7/+3
Use sigsp() instead of the open coded variant. Signed-off-by: Richard Weinberger <[email protected]> Acked-by: Vineet Gupta <[email protected]>
2014-08-06arc: Use get_signal() signal_setup_done()Richard Weinberger1-24/+15
Use the more generic functions get_signal() signal_setup_done() for signal delivery. Signed-off-by: Richard Weinberger <[email protected]> Acked-by: Vineet Gupta <[email protected]>
2014-07-28Merge tag 'v3.16-rc7' into perf/core, to merge in the latest fixes before ↵Ingo Molnar6-8/+24
applying new changes Signed-off-by: Ingo Molnar <[email protected]>
2014-07-23ARC: [intc] mask/unmask can be hidden againVineet Gupta1-6/+14
Signed-off-by: Vineet Gupta <[email protected]>
2014-07-23ARC: [intc] don't mask all IRQ by defaultVineet Gupta1-6/+1
Hardware keeps them enabled on reset, and Linux needs to keep status quo. Any spurious interrupts will be reported/blocked by genirq. This helps remove a SMP IRQ quirk (next commit), where a peripheral IRQ is hard wired to core0, and request_irq()->unmask() happens on core1, keeping the IRQ masked on core0, needing an explicit unmask. Signed-off-by: Vineet Gupta <[email protected]>
2014-07-23ARC: prune extra header includes from smp.cVineet Gupta1-8/+0
Signed-off-by: Vineet Gupta <[email protected]>
2014-07-23ARC: update some commentsVineet Gupta1-3/+7
Signed-off-by: Vineet Gupta <[email protected]>
2014-07-23ARC: [SMP] unify cpu private IRQ requests (TIMER/IPI)Vineet Gupta3-26/+33
The current cpu-private IRQ registration is ugly as it requires need to expose arch_unmask_irq() outside of intc code. So switch to percpu IRQ APIs: -request_percpu_irq [boot core] -enable_percpu_irq [all cores] Encapsulated in helper arc_request_percpu_irq() Signed-off-by: Vineet Gupta <[email protected]>
2014-06-26ARC: [SMP] Fix IPI IRQ registrationNoam Camus1-2/+13
Handle it just like timer. Current request_percpu_irq() would fail on non-boot cpus and thus IRQ will remian unmasked on those cpus. [vgupta: fix changelong] Signed-off-by: Noam Camus <[email protected]> Signed-off-by: Vineet Gupta <[email protected]>
2014-06-26ARC: Implement ptrace(PTRACE_GET_THREAD_AREA)Anton Kolesov1-0/+4
This patch adds implementation of GET_THREAD_AREA ptrace request type. This is required by GDB to debug NPTL applications. Signed-off-by: Anton Kolesov <[email protected]> Signed-off-by: Vineet Gupta <[email protected]>
2014-06-26ARC: optimize kernel bss clearing in early boot codeVineet Gupta2-4/+5
using ARC ZOL which reduces tot num of instructions by half Signed-off-by: Vineet Gupta <[email protected]>
2014-06-26ARC: Fix build breakage for !CONFIG_ARC_DW2_UNWINDVineet Gupta1-1/+1
Fixes: ec7ac6afd07b (ARC: switch to generic ENTRY/END assembler annotations) Reported-by: Anton Kolesov <[email protected]> Signed-off-by: Vineet Gupta <[email protected]>
2014-06-23ARC: fix build warning in devtreeVineet Gupta1-1/+1
Signed-off-by: Vineet Gupta <[email protected]>
2014-06-18arc, perf: Use common PMU interrupt disabled codeVince Weaver1-4/+3
Transition to using the new generic PERF_PMU_CAP_NO_INTERRUPT method for failing a sampling event when no PMU interrupt is available. Signed-off-by: Vince Weaver <[email protected]> Acked-by: Vineet Gupta <[email protected]> Signed-off-by: Peter Zijlstra <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Cc: Grant Likely <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: Rob Herring <[email protected]> Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1406150159280.16738@vincent-weaver-1.umelst.maine.edu Signed-off-by: Ingo Molnar <[email protected]>
2014-06-09Merge tag 'arc-v3.16-rc1' of ↵Linus Torvalds6-33/+71
git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC updates from Vineet Gupta: "Nothing too exciting here, just minor fixes/cleanup. Only noteworthy ones are: - Moving cache disabling to early boot - ARC UART enabled only if earlyprintk setup in cmdline" * tag 'arc-v3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: ARC: Disable caches in early boot if so configured ARC: [arcfpga] Early ARC UART to be only activated by cmdline ARC: [arcfpga] Get rid of legacy BVCI latency unit support ARC: remove duplicate header exports ARC: arc_local_timer_setup() need not pass own cpu id ARC: Fixed spelling errors within comments ARC: make start_thread() out-of-line ARC: fix mmuv2 warning ARC: [SMP] ISS SMP extension bitrot
2014-06-04arc: call find_vma with the mmap_sem heldDavidlohr Bueso1-4/+6
Performing vma lookups without taking the mm->mmap_sem is asking for trouble. While doing the search, the vma in question can be modified or even removed before returning to the caller. Take the lock (shared) in order to avoid races while iterating through the vmacache and/or rbtree. [[email protected]: CSE current->active_mm, per Vineet] Signed-off-by: Davidlohr Bueso <[email protected]> Acked-by: Vineet Gupta <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-06-03ARC: Disable caches in early boot if so configuredVineet Gupta1-3/+35
Requested-by: Noam Camus <[email protected]> Signed-off-by: Vineet Gupta <[email protected]>
2014-06-03ARC: arc_local_timer_setup() need not pass own cpu idVineet Gupta2-6/+7
Signed-off-by: Vineet Gupta <[email protected]>
2014-05-13Merge branch 'dt-bus-name' into for-nextRob Herring1-3/+5
2014-05-05ARC: Fixed spelling errors within commentsTerence Eden1-6/+6
[vgupta: fixed changelong + added Randy's suggestion] Signed-off-by: Terence Eden <[email protected]> Acked-by: Randy Dunlap <[email protected]> Signed-off-by: Vineet Gupta <[email protected]>
2014-05-05ARC: make start_thread() out-of-lineVineet Gupta1-0/+23
Helps move out ISA specific bits from a arch exported header Signed-off-by: Vineet Gupta <[email protected]>
2014-05-05ARC: [SMP] ISS SMP extension bitrotVineet Gupta1-18/+0
* Move extension specific code out of common SMP code * Don't enable it by default for SMP Signed-off-by: Vineet Gupta <[email protected]>
2014-04-30ARC: !PREEMPT: Ensure Return to kernel mode is IRQ safeVineet Gupta1-3/+5
There was a very small race window where resume to kernel mode from a Exception Path (or pure kernel mode which is true for most of ARC exceptions anyways), was not disabling interrupts in restore_regs, clobbering the exception regs Anton found the culprit call flow (after many sleepless nights) | 1. we got a Trap from user land | 2. started to service it. | 3. While doing some stuff on user-land memory (I think it is padzero()), | we got a DataTlbMiss | 4. On return from it we are taking "resume_kernel_mode" path | 5. NEED_RESHED is not set, so we go to "return from exception" path in | restore regs. | 6. there seems to be IRQ happening Signed-off-by: Vineet Gupta <[email protected]> Cc: <[email protected]> #3.10, 3.12, 3.13, 3.14 Cc: Anton Kolesov <[email protected]> Cc: Francois Bedard <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2014-04-30of/fdt: update of_get_flat_dt_prop in prep for libfdtRob Herring1-1/+1
Make of_get_flat_dt_prop arguments compatible with libfdt fdt_getprop call in preparation to convert FDT code to use libfdt. Make the return value const and the property length ptr type an int. Signed-off-by: Rob Herring <[email protected]> Tested-by: Michal Simek <[email protected]> Tested-by: Grant Likely <[email protected]> Tested-by: Stephen Chivers <[email protected]>
2014-04-05ARC: [SMP] General FixesVineet Gupta1-3/+4
-Pass the expected arg to non-boot park'ing routine (It worked so far because existing SMP backends don't use the arg) -CONFIG_DEBUG_PREEMPT warning
2014-03-26ARC: [clockevent] simplify timer ISRVineet Gupta1-19/+15
* Remove one liner IRQ ACK accessor, it was coming in the way of readability. Signed-off-by: Vineet Gupta <[email protected]>
2014-03-26ARC: [clockevent] can't be SoC specificVineet Gupta1-2/+1
So no point keeping it weak Signed-off-by: Vineet Gupta <[email protected]>
2014-03-26ARC: switch to generic ENTRY/END assembler annotationsVineet Gupta2-27/+27
With commit 9df62f054406 "arch: use ASM_NL instead of ';'" the generic macros can handle the arch specific newline quirk. Hence we can get rid of ARC asm macros and use the "C" style macros. Signed-off-by: Vineet Gupta <[email protected]>