Michael Neuling
2b3f8e87cf
powerpc/tm: Fix userspace stack corruption on signal delivery for active transactions
...
When in an active transaction that takes a signal, we need to be careful with
the stack. It's possible that the stack has moved back up after the tbegin.
The obvious case here is when the tbegin is called inside a function that
returns before a tend. In this case, the stack is part of the checkpointed
transactional memory state. If we write over this non transactionally or in
suspend, we are in trouble because if we get a tm abort, the program counter
and stack pointer will be back at the tbegin but our in memory stack won't be
valid anymore.
To avoid this, when taking a signal in an active transaction, we need to use
the stack pointer from the checkpointed state, rather than the speculated
state. This ensures that the signal context (written tm suspended) will be
written below the stack required for the rollback. The transaction is aborted
becuase of the treclaim, so any memory written between the tbegin and the
signal will be rolled back anyway.
For signals taken in non-TM or suspended mode, we use the
normal/non-checkpointed stack pointer.
Tested with 64 and 32 bit signals
Signed-off-by: Michael Neuling <mikey@neuling.org>
Cc: <stable@vger.kernel.org> # v3.9
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2013-06-01 08:29:23 +10:00
..
ABI
- Lots of cleanups from Artem, including deletion of some obsolete drivers
2013-05-09 10:15:46 -07:00
accounting
doc: Remove unnecessary declarations from Documentation/accounting/getdelays.c
2012-11-26 14:22:21 +01:00
acpi
Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
2013-05-09 09:46:45 -07:00
aoe
aoe: allow user to disable target failure timeout
2012-12-17 17:15:25 -08:00
arm
ARM: platform specific firmware interfaces for 3.10
2013-05-04 12:33:36 -07:00
arm64
arm64: Add simple earlyprintk support
2013-01-22 17:51:01 +00:00
auxdisplay
backlight
backlight: lp855x: remove duplicate platform data
2013-04-29 18:28:19 -07:00
blackfin
Documentation: Fix typo in multiple files in Documentation
2012-04-16 14:37:13 +02:00
block
Documentation: cfq-iosched: update documentation help for cfq tunables
2013-04-09 14:57:06 +02:00
blockdev
nbd: update documentation and link to mailinglist
2013-02-27 19:10:22 -08:00
bus-devices
ARM: OMAP2+: gpmc: generic timing calculation
2012-11-09 18:07:11 +05:30
cdrom
cgroups
mm, memcg: add rss_huge stat to memory.stat
2013-05-07 18:38:26 -07:00
connector
connector: Move cn_test.c away from NLMSG_PUT().
2012-06-26 21:19:02 -07:00
console
cpu-freq
Merge branch 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-05-05 13:23:27 -07:00
cpuidle
cpuidle: make a single register function for all
2013-04-23 13:45:22 +02:00
cris
CRIS: Update documentation
2012-04-03 13:09:18 +02:00
crypto
KEYS: Document asymmetric key type
2012-10-08 13:50:12 +10:30
development-process
device-mapper
DM RAID: Add message/status support for changing sync action
2013-04-24 11:42:43 +10:00
devicetree
Merge branch 'akpm' (incoming from Andrew Morton)
2013-05-24 18:12:15 -07:00
DocBook
sound updates for v3.10-rc1
2013-05-03 09:10:23 -07:00
driver-model
lib: devres: Introduce devm_ioremap_resource()
2013-01-22 09:41:43 -08:00
dvb
[media] get_dvb_firmware: Fix the location of firmware for Terratec HTC
2013-01-01 11:18:26 -02:00
early-userspace
EDID
drm: Add 1600x1200 (UXGA) screen resolution to the built-in EDIDs
2013-04-12 14:06:16 +10:00
extcon
Documentation/extcon: porting guide for Android kernel switch driver.
2012-04-20 09:24:27 -07:00
fault-injection
doc: fix quite a few typos within Documentation
2012-11-19 14:28:24 +01:00
fb
Documentation: remove references to /etc/modprobe.conf
2012-03-30 16:03:15 -07:00
filesystems
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs
2013-05-09 13:07:40 -07:00
firmware_class
firmware loader: document firmware cache mechanism
2012-11-14 15:07:18 -08:00
frv
hid
HID: remove x bit from sensor doc
2012-12-14 08:48:59 +01:00
hwmon
hwmon: (lm75) Add support for the Dallas/Maxim DS7505
2013-05-04 14:49:36 +02:00
i2c
i2c: Fix my e-mail address in drivers and documentation
2013-03-22 11:18:34 +01:00
i2o
ia64
Fix example error_injection_tool
2013-04-02 09:39:55 -07:00
ide
Documentation: remove references to /etc/modprobe.conf
2012-03-30 16:03:15 -07:00
infiniband
IB/ipoib: Add rtnl_link_ops support
2012-09-20 16:49:17 -04:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2013-03-11 07:49:37 -07:00
ioctl
USB: cdc-wdm: implement IOCTL_WDM_MAX_COMMAND
2013-03-25 13:32:20 -07:00
isdn
Documentation: remove references to /etc/modprobe.conf
2012-03-30 16:03:15 -07:00
ja_JP
kbuild
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
2013-05-07 07:59:19 -07:00
kdump
Add size restriction to the kdump documentation
2013-04-02 09:40:03 -07:00
ko_KR
laptops
Documentation/laptops: remove depends on CONFIG_EXPERIMENTAL
2013-01-21 14:52:42 -08:00
leds
leds: lp55xx: configure the clock detection
2013-04-01 11:04:53 -07:00
m68k
make
memory-devices
memory: emif: add basic infrastructure for EMIF driver
2012-05-02 00:10:49 -07:00
metag
metag: Basic documentation
2013-03-02 20:09:50 +00:00
mips
misc-devices
mei: bus: Add device enabling and disabling API
2013-04-08 16:57:15 -07:00
mmc
mmc: core: Add in support to expose PRV for v4 MMCs
2013-03-22 12:10:42 -04:00
mn10300
mtd
namespaces
userns: Recommend use of memory control groups.
2013-01-26 22:20:06 -08:00
netlabel
networking
packet: doc: update timestamping part
2013-04-25 01:22:22 -04:00
nfc
NFC: Update pn544 documentation
2013-01-10 01:27:46 +01:00
parisc
Documentation: Fix typo in multiple files in Documentation
2012-04-16 14:37:13 +02:00
PCI
PCI/MSI: Enable multiple MSIs with pci_enable_msi_block_auto()
2013-01-24 17:25:13 +01:00
pcmcia
power
PM / hibernate: Correct documentation
2013-05-14 01:58:43 +02:00
powerpc
powerpc/tm: Fix userspace stack corruption on signal delivery for active transactions
2013-06-01 08:29:23 +10:00
pps
prctl
seccomp: Make syscall skipping and nr changes more consistent
2012-10-02 21:14:29 +10:00
pti
ptp
rapidio
rapidio: documentation update for enumeration changes
2013-05-24 16:22:50 -07:00
RCU
Merge commit ' 8700c95adb' into timers/nohz
2013-05-02 17:54:19 +02:00
s390
s390/cio: add condev keyword to cio_ignore
2013-05-02 15:50:20 +02:00
scheduler
sched: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW
2012-09-13 16:52:04 +02:00
scsi
[SCSI] qla2xxx: Update copyright dates information in LICENSE.qla2xxx file.
2013-04-06 11:31:30 +01:00
security
Smack: add support for modification of existing rules
2013-03-19 14:16:42 -07:00
serial
tty: Update serial core API documentation
2013-01-15 21:57:44 -08:00
sh
sound
ASoC: Updates for v3.10
2013-04-15 19:45:16 +02:00
spi
Documentation: remove __dev* attributes.
2013-01-03 15:57:16 -08:00
sysctl
mm: replace hardcoded 3% with admin_reserve_pages knob
2013-04-29 15:54:36 -07:00
target
target: Simplify fabric sense data length handling
2012-09-17 17:12:58 -07:00
thermal
Thermal: update documentation for thermal_zone_device_register
2013-04-27 09:16:04 +08:00
timers
nohz_full: Add documentation.
2013-04-27 16:41:43 -07:00
trace
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2013-04-30 09:36:50 -07:00
usb
USB: remove CONFIG_USB_SUSPEND from Documentation
2013-03-28 14:45:56 -07:00
vDSO
video4linux
[media] v4l2: Add a V4L2 driver for SI476X MFD
2013-04-18 21:20:34 -03:00
virtual
Merge tag 'kvm-3.10-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm
2013-05-05 14:47:31 -07:00
vm
mm: limit growth of 3% hardcoded other user reserve
2013-04-29 15:54:36 -07:00
w1
w1: w1_therm: Add force-pullup option for "broken" sensors
2013-02-18 13:55:24 -08:00
watchdog
watchdog: core: dt: add support for the timeout-sec dt property
2013-03-01 12:48:36 +01:00
wimax
x86
Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-04-30 08:35:20 -07:00
xtensa
xtensa: document MMUv3 setup sequence
2013-05-09 01:07:09 -07:00
zh_CN
gpio: update gpio Chinese documentation
2013-04-16 18:47:22 +09:00
.gitignore
00-INDEX
ImgTec Meta architecture changes for v3.9-rc1
2013-03-03 12:06:09 -08:00
applying-patches.txt
atomic_ops.txt
Documentation: Memory barrier semantics of atomic_xchg()
2013-01-08 14:14:55 -08:00
bad_memory.txt
basic_profiling.txt
bcache.txt
bcache: Documentation updates
2013-04-08 13:33:48 -07:00
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
BUG-HUNTING
bus-virt-phys-mapping.txt
cachetlb.txt
Changes
circular-buffers.txt
clk.txt
clk: add clk_ignore_unused option to keep boot clocks on
2013-04-27 23:03:43 -07:00
coccinelle.txt
Coccinelle: Add support to the SPFLAGS variable
2013-04-08 15:42:03 +02:00
CodingStyle
Documentation: remove depends on CONFIG_EXPERIMENTAL
2013-01-11 11:38:03 -08:00
cpu-hotplug.txt
doc: Add x86 CPU0 online/offline feature
2012-11-14 09:39:44 -08:00
cpu-load.txt
cputopology.txt
crc32.txt
crc32: move long comment about crc32 fundamentals to Documentation/
2012-03-23 16:58:37 -07:00
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
devices.txt
firmware: remove last vestiges of dabusb
2012-11-21 13:03:01 -08:00
digsig.txt
DMA-API-HOWTO.txt
Documentation/DMA-API-HOWTO.txt: fix typo
2013-02-27 19:10:23 -08:00
DMA-API.txt
dma-debug: New interfaces to debug dma mapping errors
2012-10-24 17:06:43 +02:00
DMA-attributes.txt
common: DMA-mapping: add DMA_ATTR_FORCE_CONTIGUOUS attribute
2012-11-29 03:30:34 -08:00
dma-buf-sharing.txt
dma-buf: replace dma_buf_export() with dma_buf_export_named()
2013-05-01 16:35:36 +05:30
DMA-ISA-LPC.txt
dmaengine.txt
dmatest.txt
dmatest: append verify result to results
2013-04-15 09:51:18 +05:30
dontdiff
x86: remove offsets.h from .gitignore and dontdiff
2012-11-19 14:10:53 +01:00
dynamic-debug-howto.txt
dynamic_debug: dynamic hex dump
2013-01-17 12:19:09 -08:00
edac.txt
Merge branch 'devel'
2012-07-29 21:11:05 -03:00
eisa.txt
MCA: delete all remaining traces of microchannel bus support.
2012-05-17 19:06:13 -04:00
email-clients.txt
flexible-arrays.txt
futex-requeue-pi.txt
gcov.txt
gpio.txt
Remove GENERIC_GPIO config option
2013-04-16 18:47:19 +09:00
highuid.txt
HOWTO
HOWTO: fix double words typo
2012-12-10 15:54:27 +01:00
hw_random.txt
hwrng: Fix a wrong comment in Documentation/hw_random.txt
2013-03-10 18:16:36 +08:00
hwspinlock.txt
init.txt
initrd.txt
Documentation/initrd.txt: Change the location of util-linux
2012-05-25 16:18:34 +02:00
Intel-IOMMU.txt
intel_txt.txt
Documentation: remove depends on CONFIG_EXPERIMENTAL
2013-01-11 11:38:03 -08:00
io-mapping.txt
io_ordering.txt
iostats.txt
iostats.txt: add easy-to-find description for field 6
2013-04-29 15:18:50 +02:00
IPMI.txt
ipmi: add options to disable openfirmware and PCI scanning
2013-02-27 19:10:21 -08:00
IRQ-affinity.txt
IRQ-domain.txt
irqdomain: update documentation
2012-12-05 23:52:10 +00:00
IRQ.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
Kernel-doc: Convention: Use a "Return" section to describe return values
2012-11-27 21:08:57 +01:00
kernel-docs.txt
kernel-parameters.txt
xen/tmem: Don't use self[ballooning|shrinking] if frontswap is off.
2013-05-15 10:27:50 -04:00
kernel-per-CPU-kthreads.txt
kthread: Document ways of reducing OS jitter due to per-CPU kthreads
2013-04-27 16:52:47 -07:00
kmemcheck.txt
kmemleak.txt
kobject.txt
Documentation: Fix "struct kobj_type" to include newer members.
2012-09-04 16:06:34 -07:00
kprobes.txt
kref.txt
kref: Add kref_get_unless_zero documentation
2012-11-28 18:36:06 +10:00
ldm.txt
local_ops.txt
lockdep-design.txt
lockstat.txt
locking/stat: Fix a typo
2013-02-19 08:42:37 +01:00
lockup-watchdogs.txt
logo.gif
logo.txt
magic-number.txt
wanrouter: completely decouple obsolete code from kernel.
2013-01-31 19:20:33 -05:00
Makefile
mei: move doc files Documentation/misc-devices/mei
2012-05-09 13:59:09 -07:00
ManagementStyle
Documentation: ManagementStyle: fixed typo
2012-06-28 12:03:15 +02:00
md.txt
MD: Fix typos in MD documentation
2013-04-24 11:42:42 +10:00
media-framework.txt
[media] Documentation/media-framework.txt: fix a sentence
2013-02-08 13:27:13 -02:00
memory-barriers.txt
Documentation: Memory barrier semantics of atomic_xchg()
2013-01-08 14:14:55 -08:00
memory-hotplug.txt
hotplug: update nodemasks management
2012-12-12 17:38:33 -08:00
mono.txt
Documentation: remove references to /etc/modprobe.conf
2012-03-30 16:03:15 -07:00
mutex-design.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt
padata.txt
parport-lowlevel.txt
parport.txt
Documentation: remove references to /etc/modprobe.conf
2012-03-30 16:03:15 -07:00
percpu-rw-semaphore.txt
percpu-rw-semaphore: fix documentation typos
2012-09-26 19:56:15 +02:00
pi-futex.txt
pinctrl.txt
pinctrl: document the "GPIO mode" pitfall
2013-03-18 11:03:29 +01:00
pnp.txt
preempt-locking.txt
printk-formats.txt
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2013-04-30 13:47:37 -07:00
pwm.txt
pwm: add devm_pwm_get() and devm_pwm_put()
2012-09-10 17:05:45 +02:00
ramoops.txt
pstore/ftrace: Convert to its own enable/disable debugfs knob
2012-09-06 22:16:58 -07:00
rbtree.txt
rbtree: move augmented rbtree functionality to rbtree_augmented.h
2012-10-09 16:22:40 +09:00
remoteproc.txt
remoteproc: add rproc_report_crash function to notify rproc crashes
2012-09-18 12:53:22 +03:00
rfkill.txt
robust-futex-ABI.txt
robust-futexes.txt
rpmsg.txt
Documentation: remove __dev* attributes.
2013-01-03 15:57:16 -08:00
rt-mutex-design.txt
rt-mutex.txt
rtc.txt
rtc-proc: permit the /proc/driver/rtc device to use other devices
2012-10-06 03:05:01 +09:00
SAK.txt
SecurityBugs
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
SM501.txt
smsc_ece1099.txt
mfd: smsc: Add support for smsc gpio io/keypad driver
2012-10-01 15:27:48 +02:00
sparse.txt
Documentation/sparse.txt: document context annotations for lock checking
2012-12-17 17:15:23 -08:00
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt
stable: Allow merging of backports for serious user-visible performance issues
2012-06-25 12:11:58 -07:00
static-keys.txt
Documentation: Fix typo in multiple files in Documentation
2012-04-16 14:37:13 +02:00
SubmitChecklist
SubmittingDrivers
SubmittingPatches
checkpatch: add Suggested-by as a standard signature
2013-04-29 18:28:20 -07:00
svga.txt
sysfs-rules.txt
sysrq.txt
Documentation/sysrq: fix inconstistent help message of sysrq key
2013-04-30 17:04:10 -07:00
this_cpu_ops.txt
percpu: add documentation on this_cpu operations
2013-04-04 10:24:53 -07:00
unaligned-memory-access.txt
unicode.txt
unshare.txt
vfio.txt
vfio: Trivial Documentation correction
2012-09-21 10:48:03 -06:00
VGA-softcursor.txt
vgaarbiter.txt
video-output.txt
vme_api.txt
VME: Move API documentation to Documentation folder
2012-05-08 16:01:34 -07:00
volatile-considered-harmful.txt
workqueue.txt
workqueue: reimplement WQ_HIGHPRI using a separate worker_pool
2012-07-13 22:24:45 -07:00
xz.txt
zorro.txt