1
0
Fork 0
alistair23-linux/arch/m68k
Greg Ungerer 0b98027122 m68knommu: fix user a5 register being overwritten
On no-MMU systems the application a5 register can be overwitten with the
address of the process data segment when processing application signals.
For flat format applications compiled with full absolute relocation this
effectively corrupts the a5 register on signal processing - and this very
quickly leads to process crash and often takes out the whole system with
a panic as well.

This has no effect on flat format applications compiled with the more
common PIC methods (such as -msep-data). These format applications reserve
a5 for the pointer to the data segment anyway - so it doesn't change it.

A long time ago the a5 register was used in the code packed into the user
stack to enable signal return processing. And so it had to be restored on
end of signal cleanup processing back to the original a5 user value. This
was historically done by saving away a5 in the sigcontext structure. At
some point (a long time back it seems) the a5 restore process was changed
and it was hard coded to put the user data segment address directly into a5.
Which is ok for the common PIC compiled application case, but breaks the
full relocation application code.

We no longer use this type of signal handling mechanism and so we don't
need to do anything special to save and restore a5 at all now. So remove the
code that hard codes a5 to the address of the user data segment.

Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
2016-08-08 12:38:47 +10:00
..
68000 m68k: Use vsprintf %pM extension 2015-06-16 16:45:38 +10:00
amiga char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
apollo char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
atari m68k/atari, m68k/sun3: Fix SCSI platform device registration when driver is modular 2016-01-10 13:56:40 +01:00
bvme6000 char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
coldfire m68k: Assorted spelling fixes 2016-07-03 14:05:28 +02:00
configs m68k/defconfig: Update defconfigs for v4.7-rc2 2016-07-19 09:35:54 +02:00
emu block: change ->make_request_fn() and users to return a queue cookie 2015-11-07 10:40:46 -07:00
fpsp040 Fix common misspellings 2011-03-31 11:26:23 -03:00
hp300 char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
ifpsp060 m68k: Assorted spelling fixes 2016-07-03 14:05:28 +02:00
include RTC for 4.8 2016-08-05 09:48:22 -04:00
kernel m68knommu: fix user a5 register being overwritten 2016-08-08 12:38:47 +10:00
lib m68k: Remove FSF address 2015-03-15 10:23:30 +01:00
mac RTC for 4.8 2016-08-05 09:48:22 -04:00
math-emu m68k: Assorted spelling fixes 2016-07-03 14:05:28 +02:00
mm mm: do not pass mm_struct into handle_mm_fault 2016-07-26 16:19:19 -07:00
mvme16x char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
mvme147 char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
q40 char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
sun3 char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
sun3x char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
tools/amiga Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
Kconfig dma-mapping: always provide the dma_map_ops based implementation 2016-01-20 17:09:18 -08:00
Kconfig.bus m68k/atari: ROM port ISA adapter support 2013-04-16 21:08:11 +02:00
Kconfig.cpu Merge branch 'hash' of git://ftp.sciencehorizons.net/linux 2016-05-28 16:15:25 -07:00
Kconfig.debug m68knommu: remove obsolete 68360 support 2016-03-07 10:07:17 +10:00
Kconfig.devices Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2014-10-08 05:40:17 -04:00
Kconfig.machine m68knommu: remove obsolete 68360 support 2016-03-07 10:07:17 +10:00
Makefile m68knommu: remove obsolete 68360 support 2016-03-07 10:07:17 +10:00
install.sh kbuild: use INSTALLKERNEL to select customized installkernel script 2009-09-20 12:18:14 +02:00