Vineet Gupta
8aa9e85ada
ARC: !PREEMPT: Ensure Return to kernel mode is IRQ safe
...
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 <vgupta@synopsys.com>
Cc: <stable@vger.kernel.org> #3.10, 3.12, 3.13, 3.14
Cc: Anton Kolesov <Anton.Kolesov@synopsys.com>
Cc: Francois Bedard <Francois.Bedard@synopsys.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-04-30 08:21:43 -07:00
..
alpha
Merge git://git.infradead.org/users/eparis/audit
2014-04-12 12:38:53 -07:00
arc
ARC: !PREEMPT: Ensure Return to kernel mode is IRQ safe
2014-04-30 08:21:43 -07:00
arm
Devicetree bug fixes for v3.15
2014-04-28 15:19:06 -07:00
arm64
arm64: init: Move of_clk_init to time_init
2014-04-25 18:15:56 +01:00
avr32
Char/Misc driver patches for 3.15-rc1
2014-04-01 16:13:21 -07:00
blackfin
blackfin updates for Linux 3.15
2014-04-12 17:26:45 -07:00
c6x
Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2014-03-31 10:59:39 -07:00
cris
Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP
2014-04-07 16:36:11 -07:00
frv
PCI changes for the v3.15 merge window:
2014-04-01 15:14:04 -07:00
hexagon
Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP
2014-04-07 16:36:11 -07:00
ia64
mm: split 'tlb_flush_mmu()' into tlb flushing and memory freeing parts
2014-04-25 16:05:40 -07:00
m32r
Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP
2014-04-07 16:36:11 -07:00
m68k
Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP
2014-04-07 16:36:11 -07:00
metag
Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP
2014-04-07 16:36:11 -07:00
microblaze
Microblaze patches for 3.15-rc1
2014-04-11 11:53:45 -07:00
mips
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2014-04-27 11:21:03 -07:00
mn10300
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2014-04-12 14:49:50 -07:00
openrisc
Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP
2014-04-07 16:36:11 -07:00
parisc
Merge branch 'parisc-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
2014-04-17 13:21:35 -07:00
powerpc
powerpc/4xx: Fix section mismatch in ppc4xx_pci.c
2014-04-28 16:32:53 +10:00
s390
Merge branch 'safe-dirty-tlb-flush'
2014-04-27 15:08:12 -07:00
score
score: remove unused CPU_SCORE7 Kconfig parameter
2014-04-03 16:20:52 -07:00
sh
mm: split 'tlb_flush_mmu()' into tlb flushing and memory freeing parts
2014-04-25 16:05:40 -07:00
sparc
Merge git://git.infradead.org/users/eparis/audit
2014-04-12 12:38:53 -07:00
tile
Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP
2014-04-07 16:36:11 -07:00
um
mm: split 'tlb_flush_mmu()' into tlb flushing and memory freeing parts
2014-04-25 16:05:40 -07:00
unicore32
Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP
2014-04-07 16:36:11 -07:00
x86
Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2014-04-22 09:09:06 -07:00
xtensa
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2014-04-12 14:49:50 -07:00
.gitignore
Kconfig
uprobes: Kconfig dependency fix
2014-03-18 16:39:33 -04:00