linux/arch/parisc/include/asm
Linus Torvalds 29c395c77a Rework of the X86 irq stack handling:
The irq stack switching was moved out of the ASM entry code in course of
   the entry code consolidation. It ended up being suboptimal in various
   ways.
 
   - Make the stack switching inline so the stackpointer manipulation is not
     longer at an easy to find place.
 
   - Get rid of the unnecessary indirect call.
 
   - Avoid the double stack switching in interrupt return and reuse the
     interrupt stack for softirq handling.
 
   - A objtool fix for CONFIG_FRAME_POINTER=y builds where it got confused
     about the stack pointer manipulation.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCgAxFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmA21OcTHHRnbHhAbGlu
 dXRyb25peC5kZQAKCRCmGPVMDXSYoaX0D/9S0ud6oqbsIvI8LwhvYub63a2cjKP9
 liHAJ7xwMYYVwzf0skwsPb/QE6+onCzdq0upJkgG/gEYm2KbiaMWZ4GgHdj0O7ER
 qXKJONDd36AGxSEdaVzLY5kPuD/mkomGk5QdaZaTmjruthkNzg4y/N2wXUBIMZR0
 FdpSpp5fGspSZCn/DXDx6FjClwpLI53VclvDs6DcZ2DIBA0K+F/cSLb1UQoDLE1U
 hxGeuNa+GhKeeZ5C+q5giho1+ukbwtjMW9WnKHAVNiStjm0uzdqq7ERGi/REvkcB
 LY62u5uOSW1zIBMmzUjDDQEqvypB0iFxFCpN8g9sieZjA0zkaUioRTQyR+YIQ8Cp
 l8LLir0dVQivR1bHghHDKQJUpdw/4zvDj4mMH10XHqbcOtIxJDOJHC5D00ridsAz
 OK0RlbAJBl9FTdLNfdVReBCoehYAO8oefeyMAG12nZeSh5XVUWl238rvzmzIYNhG
 cEtkSx2wIUNEA+uSuI+xvfmwpxL7voTGvqmiRDCAFxyO7Bl/GBu9OEBFA1eOvHB+
 +wTmPDMswRetQNh4QCRXzk1JzP1Wk5CobUL9iinCWFoTJmnsPPSOWlosN6ewaNXt
 kYFpRLy5xt9EP7dlfgBSjiRlthDhTdMrFjD5bsy1vdm1w7HKUo82lHa4O8Hq3PHS
 tinKICUqRsbjig==
 =Sqr1
 -----END PGP SIGNATURE-----

Merge tag 'x86-entry-2021-02-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 irq entry updates from Thomas Gleixner:
 "The irq stack switching was moved out of the ASM entry code in course
  of the entry code consolidation. It ended up being suboptimal in
  various ways.

  This reworks the X86 irq stack handling:

   - Make the stack switching inline so the stackpointer manipulation is
     not longer at an easy to find place.

   - Get rid of the unnecessary indirect call.

   - Avoid the double stack switching in interrupt return and reuse the
     interrupt stack for softirq handling.

   - A objtool fix for CONFIG_FRAME_POINTER=y builds where it got
     confused about the stack pointer manipulation"

* tag 'x86-entry-2021-02-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  objtool: Fix stack-swizzle for FRAME_POINTER=y
  um: Enforce the usage of asm-generic/softirq_stack.h
  x86/softirq/64: Inline do_softirq_own_stack()
  softirq: Move do_softirq_own_stack() to generic asm header
  softirq: Move __ARCH_HAS_DO_SOFTIRQ to Kconfig
  x86: Select CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK
  x86/softirq: Remove indirection in do_softirq_own_stack()
  x86/entry: Use run_sysvec_on_irqstack_cond() for XEN upcall
  x86/entry: Convert device interrupts to inline stack switching
  x86/entry: Convert system vectors to irq stack macro
  x86/irq: Provide macro for inlining irq stack switching
  x86/apic: Split out spurious handling code
  x86/irq/64: Adjust the per CPU irq stack pointer by 8
  x86/irq: Sanitize irq stack tracking
  x86/entry: Fix instrumentation annotation
2021-02-24 16:32:23 -08:00
..
Kbuild local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
agp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
alternative.h parisc: Add ALTERNATIVE_CODE() and ALT_COND_RUN_ON_QEMU 2019-08-12 19:17:39 +02:00
asm-offsets.h
asmregs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 153 2019-05-30 11:26:32 -07:00
assembly.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 153 2019-05-30 11:26:32 -07:00
atomic.h Merge branch 'parisc-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux 2020-08-12 12:41:15 -07:00
barrier.h parisc: Add alternative patching to synchronize_caches define 2020-10-15 08:10:38 +02:00
bitops.h parisc: Convert to BIT_MASK() and BIT_WORD() 2020-07-21 08:04:39 +02:00
bug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bugs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cache.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
cacheflush.h parisc/kmap: remove duplicate kmap code 2020-06-04 19:06:22 -07:00
checksum.h saner calling conventions for csum_and_copy_..._user() 2020-08-20 15:45:15 -04:00
cmpxchg.h parisc: Mark pointers volatile in __xchg8(), __xchg32() and __xchg64() 2020-10-15 08:10:39 +02:00
compat.h parisc: Replace test_ti_thread_flag() with test_tsk_thread_flag() 2021-02-12 16:33:05 +01:00
compat_ucontext.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
delay.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dma-mapping.h parisc: move internal implementation details out of <asm/dma-mapping.h> 2019-02-21 20:37:11 +01:00
dma.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dwarf.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
eisa_bus.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
eisa_eeprom.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
elf.h Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-08-09 13:33:54 -07:00
fb.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fixmap.h parisc: add kexec syscall support 2019-09-08 15:37:04 +02:00
floppy.h floppy: use symbolic register names in the parisc port 2020-05-12 19:34:53 +03:00
ftrace.h parisc/ftrace: Add ARCH_SUPPORTS_FTRACE_OPS support 2019-08-03 08:56:57 +02:00
futex.h parisc: Switch to more fine grained lws locks 2020-10-15 08:10:39 +02:00
grfioctl.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
hardirq.h softirq: Move __ARCH_HAS_DO_SOFTIRQ to Kconfig 2021-02-10 23:34:16 +01:00
hardware.h parisc: Use per-pagetable spinlock 2019-05-03 23:47:41 +02:00
hash.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hugetlb.h mm/hugetlb: define a generic fallback for arch_clear_hugepage_flags() 2020-06-03 20:09:46 -07:00
ide.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
io.h parisc: Use the generic devmem_is_allowed() 2021-02-12 16:30:14 +01:00
irq.h parisc: Remove leftover reference to the power_tasklet 2021-01-26 19:57:26 +01:00
irqflags.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
jump_label.h parisc: Add static branch and JUMP_LABEL feature 2019-05-06 00:10:03 +02:00
kbdleds.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kexec.h parisc: fix compilation when KEXEC=n and KEXEC_FILE=y 2019-12-15 21:05:38 +01:00
kgdb.h parisc: add KGDB support 2019-05-03 23:47:38 +02:00
kprobes.h parisc: add kprobe_fault_handler() 2019-07-21 11:01:55 +02:00
ldcw.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
led.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
linkage.h parisc: Fix boot failure of 64-bit kernel 2018-08-21 14:32:44 +02:00
machdep.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mckinley.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mmu.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mmu_context.h parisc: Optimize per-pagetable spinlocks 2021-02-12 16:39:42 +01:00
mmzone.h parisc: Switch from DISCONTIGMEM to SPARSEMEM 2019-05-03 23:47:40 +02:00
module.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
page.h parisc: Optimize per-pagetable spinlocks 2021-02-12 16:39:42 +01:00
parisc-device.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
parport.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
patch.h parisc: add support for patching multiple words 2019-06-08 12:56:25 +02:00
pci.h parisc: remove the HBA_DATA macro 2019-02-21 20:37:12 +01:00
pdc.h parisc: add __pdc_cpu_rendezvous() 2019-09-08 15:19:58 +02:00
pdc_chassis.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 176 2019-05-30 11:29:19 -07:00
pdcpat.h parisc: Add constant for PDC_PAT_COMPLEX firmware call 2019-02-21 20:37:13 +01:00
perf.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf_event.h irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
pgalloc.h parisc: Optimize per-pagetable spinlocks 2021-02-12 16:39:42 +01:00
pgtable.h parisc: Optimize per-pagetable spinlocks 2021-02-12 16:39:42 +01:00
prefetch.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
processor.h parisc: Make user stack size configurable 2020-11-11 14:59:08 +01:00
psw.h parisc: asm: psw.h: missing header guard 2019-06-25 14:52:26 +02:00
ptrace.h parisc: add functions required by KPROBE_EVENTS 2019-05-03 23:47:39 +02:00
ropes.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rt_sigframe.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
runway.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
seccomp.h parisc: Enable seccomp architecture tracking 2020-11-20 11:16:34 -08:00
sections.h parisc: Add alternative coding infrastructure 2018-10-17 17:22:26 +02:00
serial.h parisc: remove empty SERIAL_PORT_DFNS in serial.h 2013-11-30 21:02:18 +01:00
shmparam.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
signal.h signal/parisc: Remove parisc specific definition of __ARCH_UAPI_SA_FLAGS 2020-11-30 13:43:35 -06:00
smp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
socket.h parisc: Define O_NONBLOCK to become 000200000 2020-10-15 08:10:38 +02:00
sparsemem.h parisc: Switch from DISCONTIGMEM to SPARSEMEM 2019-05-03 23:47:40 +02:00
special_insns.h parisc: Use lpa instruction to load physical addresses in driver code 2019-06-06 14:12:22 +02:00
spinlock.h parisc: Improve spinlock handling 2020-10-15 08:10:39 +02:00
spinlock_types.h parisc: Rework arch_rw locking functions 2020-04-05 22:29:55 +02:00
string.h parisc: Add assembly implementations for memset, strlen, strcpy, strncpy and strcat 2019-08-03 08:56:57 +02:00
superio.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
switch_to.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
syscall.h parisc: define syscall_get_error() 2019-07-16 19:23:24 -07:00
termios.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
thread_info.h parisc: add support for TIF_NOTIFY_SIGNAL 2020-11-09 08:16:55 -07:00
timex.h locking, arch/ia64: Reduce <asm/smp.h> header dependencies by moving XTP bits into the new <asm/xtp.h> header 2020-08-06 16:13:13 +02:00
tlb.h parisc: use pgtable-nopXd instead of 4level-fixup 2019-12-04 19:44:15 -08:00
tlbflush.h parisc: Use per-pagetable spinlock 2019-05-03 23:47:41 +02:00
topology.h parisc: Add CPU topology support 2017-11-17 15:27:22 +01:00
traps.h parisc: Restore possibility to execute 64-bit applications 2018-08-17 16:45:24 +02:00
uaccess.h uaccess: remove segment_eq 2020-08-12 10:57:58 -07:00
ucontext.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
unaligned.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
unistd.h parisc: Wire up clone3 syscall 2019-07-17 23:11:28 +02:00
unwind.h parisc: Consolidate unwind initialization calls 2018-08-17 17:00:08 +02:00
vmalloc.h mm/vmalloc: Add empty <asm/vmalloc.h> headers and use them from <linux/vmalloc.h> 2019-12-10 10:12:55 +01:00