linux-stable/arch/m68k/include/asm
Greg Ungerer e95c3f7a09 m68knommu: fix trap on execing /bin/init
As of commit fea82210 ("m68k: switch to saner kernel_execve() semantics")
the non-mmu m68k targets have trapped on booting. The execing of /bin/init
causes the exec path to try and return through a 0x0 return address - thus
trapping or otherwise hanging or crashing.

The problem isn't in the exec path as such though, but rather in the
m68knommu start_thread() macro. It is trying to clear the a6 register that
it assumes is part of a struct switch_stack below the thread registers on
our stack. But that is not what the stack frames look like when this is run.
So it ends up corrupting our call stack and zeroing out a function return
address that is sitting there.

The clearing of a6 was introduced many years ago in commit 7bf9a37d8d
("m68knommu: force stack alignment on ColdFire"). It used to work because
the kernel init exec code path had a short cut back to the exception return
code, and it didn't need to return through the calls on the stack.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
2013-02-06 11:13:23 +10:00
..
a.out-core.h
adb_iop.h
amigahw.h m68k: Remove dead GG2 config option 2010-10-22 09:43:22 +02:00
amigaints.h
amigayle.h m68k: amiga - Amiga Gayle IDE platform device conversion 2010-05-26 19:51:09 +02:00
amipcmcia.h
apollohw.h m68k/apollo: Remove disabled definitions in apollohw.h 2012-08-18 15:15:56 +02:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atafd.h
atafdreg.h
atari_joystick.h
atari_stdma.h
atari_stram.h m68k/atari: Reserve some ST-RAM early on for device buffer use 2011-07-30 21:21:39 +02:00
atarihw.h m68k/atari: Move declaration of atari_SCC_reset_done to header file 2011-12-10 19:52:49 +01:00
atariints.h m68k/atari: Change VME irq numbers from unsigned long to unsigned int 2012-04-22 20:16:49 +02:00
atarikb.h input/atari: Use the correct mouse interrupt hook 2011-05-19 18:19:11 +02:00
atomic.h m68k: include asm/cmpxchg.h in our m68k atomic.h 2012-04-01 22:57:49 +02:00
barrier.h Disintegrate asm/system.h for M68K 2012-03-28 18:30:02 +01:00
bitops.h m68k: merge mmu and non-mmu bitops.h 2011-07-25 11:20:40 +10:00
blinken.h m68k/hp300: Export hp300_ledstate 2011-12-10 19:52:48 +01:00
bootinfo.h tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
bootstd.h Fix common misspellings 2011-03-31 11:26:23 -03:00
bug.h m68k: merge the mmu and non-mmu versions of bug.h 2009-03-24 15:17:44 +10:00
bugs.h m68k: merge the mmu and non-mmu versions of bugs.h 2009-03-24 15:17:45 +10:00
bvme6000hw.h
cache.h dma-mapping: rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN 2010-08-11 08:59:21 -07:00
cacheflush.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
cacheflush_mm.h m68k: fix ColdFire clear cache operation 2012-07-17 15:49:34 +10:00
cacheflush_no.h m68knommu: use "r", not "i" constraint in cacheflush asm's 2012-09-27 23:28:40 +10:00
checksum.h m68k: simpler m68k and ColdFire CPU's can use generic csum code 2011-12-24 21:47:57 +10:00
cmpxchg.h Disintegrate asm/system.h for M68K 2012-03-28 18:30:02 +01:00
coldfire.h m68knommu: remove ColdFire CLOCK_DIV config option 2011-03-15 21:01:57 +10:00
commproc.h Fix common misspellings 2011-03-31 11:26:23 -03:00
contregs.h
current.h m68k: merge the mmu and non-mmu versions of current.h 2009-03-24 15:17:45 +10:00
dbg.h
delay.h m68k: delay, muldi3 - Use CONFIG_CPU_HAS_NO_MULDIV64 2012-06-10 10:18:30 +02:00
div64.h m68k: handle presence of 64bit mul/div instructions cleanly 2011-12-24 21:47:57 +10:00
dma-mapping.h m68k: Provide dma_alloc_attrs()/dma_free_attrs() 2012-12-25 20:14:53 +01:00
dma.h m68k: common PCI support definitions and code 2012-07-17 15:49:41 +10:00
dsp56k.h
dvma.h
elf.h cross-arch: don't corrupt personality flags upon exec() 2012-10-06 03:04:47 +09:00
entry.h m68k: Correct the Atari ALLOWINT definition 2012-04-22 20:16:50 +02:00
fb.h m68k: merge the mmu and non-mmu versions of fb.h 2009-03-24 15:17:44 +10:00
fbio.h tree-wide: s/widht/width/g typo in comments 2010-02-05 12:22:42 +01:00
flat.h m68k: fix compiler warning by properly inlining flat_set_persistent() 2012-05-20 21:21:33 +10:00
floppy.h
fpu.h m68k: add ColdFire FPU support for the V4e ColdFire CPUs 2011-12-30 10:20:47 +10:00
ftrace.h tracing: make CALLER_ADDRx overwriteable 2009-03-02 16:49:37 -05:00
gpio.h m68knommu: Add support for the Coldfire m5441x. 2012-07-16 09:59:21 +10:00
hardirq.h m68k/irq: Add genirq support 2011-11-08 22:35:49 +01:00
hp300hw.h
hwtest.h
ide.h m68knommu: arch/m68k/include/asm/ide.h fix for nommu 2010-08-18 12:44:31 +10:00
idprom.h
intersil.h
io.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
io_mm.h m68k: add IO access definitions to support PCI on ColdFire platforms 2012-07-17 15:49:43 +10:00
io_no.h m68knommu: remove stubs for __ioremap() and iounmap() 2011-05-24 10:03:50 +10:00
irq.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2012-01-26 12:43:57 -08:00
irqflags.h m68k, m68knommu: Do not include linux/hardirq.h in asm/irqflags.h 2010-11-03 11:30:07 +10:00
Kbuild Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2012-12-13 13:23:33 -08:00
linkage.h
m52xxacr.h m68knommu: create optimal separate instruction and data cache for ColdFire 2011-01-05 15:19:20 +10:00
m53xxacr.h m68knommu: create optimal separate instruction and data cache for ColdFire 2011-01-05 15:19:20 +10:00
m54xxacr.h m68knommu: Add support for the Coldfire m5441x. 2012-07-16 09:59:21 +10:00
m54xxgpt.h m68knommu: clean up ColdFire 54xx General Timer definitions 2012-09-27 23:34:03 +10:00
m54xxpci.h m68k: add PCI bus support definitions for the ColdFire M54xx SoC family 2012-07-17 15:49:42 +10:00
m54xxsim.h m68knommu: clean up Pin Assignment definitions for the 54xx ColdFire CPU 2012-09-27 23:34:02 +10:00
m520xsim.h m68knommu: Add clk definitions for m520x. 2012-07-16 09:59:22 +10:00
m523xsim.h m68knommu: fix inconsistent formating in ColdFire 523x definitions 2012-09-27 23:34:04 +10:00
m525xsim.h m68knommu: merge ColdFire 5249 and 525x definitions 2012-12-05 10:51:21 +10:00
m527xsim.h m68knommu: fix inconsistent formating in ColdFire 527x definitions 2012-09-27 23:34:06 +10:00
m528xsim.h m68knommu: remove unused ColdFire 5282 register definitions 2012-09-27 23:33:55 +10:00
m532xsim.h m68knommu: use read/write IO access functions in ColdFire m532x setup code 2012-09-27 23:34:00 +10:00
m5206sim.h m68knommu: make ColdFire Chip Select register definitions absolute addresses 2012-09-27 23:33:51 +10:00
m5272sim.h m68knommu: fix inconsistent formating in ColdFire 5272 definitions 2012-09-27 23:34:05 +10:00
m5307sim.h m68knommu: fix inconsistent formating in ColdFire 5307 definitions 2012-09-27 23:34:07 +10:00
m5407sim.h m68knommu: fix inconsistent formating in ColdFire 5407 definitions 2012-09-27 23:34:08 +10:00
m5441xsim.h m68knommu: Add rtc device for m5441x. 2012-07-16 09:59:21 +10:00
m68360.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
m68360_enet.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
m68360_pram.h
m68360_quicc.h Fix common misspellings 2011-03-31 11:26:23 -03:00
m68360_regs.h
mac_asc.h
mac_baboon.h m68k/mac: cleanup forward declarations 2011-12-10 19:52:46 +01:00
mac_iop.h m68k/mac: cleanup forward declarations 2011-12-10 19:52:46 +01:00
mac_oss.h m68k/mac: oss irq fixes 2011-12-10 19:52:47 +01:00
mac_psc.h m68k/mac: cleanup forward declarations 2011-12-10 19:52:46 +01:00
mac_via.h m68k/mac: fix nubus slot irq disable and shutdown 2011-12-10 19:52:47 +01:00
machdep.h m68knommu: modify timer init code to make it consistent with m68k code 2012-03-05 09:43:04 +10:00
machines.h
machw.h mac68k: replace mac68k SCC code with platform device 2010-02-27 18:31:09 +01:00
macintosh.h m68k/mac: cleanup macro case 2011-12-10 19:52:48 +01:00
macints.h m68k/mac: oss irq fixes 2011-12-10 19:52:47 +01:00
math-emu.h locking, m68k/asm-offsets: Rename pt_regs offset defines 2009-08-31 18:08:49 +02:00
MC68EZ328.h m68k: fix comment typo 'occcured' 2011-04-10 17:01:05 +02:00
MC68VZ328.h m68k: fix comment typo 'occcured' 2011-04-10 17:01:05 +02:00
MC68328.h
mc146818rtc.h m68k: use the mc146818rtc.h for non-mmu setups as well. 2009-03-24 15:17:41 +10:00
mcf8390.h net: add support for NS8390 based eth controllers on some ColdFire CPU boards 2012-07-12 07:54:45 -07:00
mcf_pgalloc.h m68k: create ColdFire MMU pgalloc code 2011-12-30 10:20:40 +10:00
mcf_pgtable.h m68k: Add shared bit to Coldfire kernel page entries 2012-02-07 11:04:00 +10:00
mcfclk.h m68knommu: add clock creation support macro for other ColdFire CPUs 2012-12-05 10:51:24 +10:00
mcfdma.h m68knommu: move ColdFire DMA register addresses to per-cpu headers 2011-03-15 21:01:54 +10:00
mcfgpio.h m68knommu: Add support for the Coldfire m5441x. 2012-07-16 09:59:21 +10:00
mcfintc.h m68knommu: map ColdFire interrupts to correct masking bits 2009-09-16 09:43:52 +10:00
mcfmmu.h m68k: ColdFire V4e MMU paging init code and miss handler 2011-12-30 10:20:38 +10:00
mcfpit.h m68knommu: move ColdFire PIT timer base addresses 2011-03-15 21:01:54 +10:00
mcfqspi.h m68knommu: make 532x QSPI platform addressing consistent 2012-03-05 09:43:09 +10:00
mcfsim.h m68knommu: merge ColdFire 5249 and 525x definitions 2012-12-05 10:51:21 +10:00
mcfslt.h m68knommu: move ColdFire slice timer address defiens to 54xx header 2012-09-27 23:34:01 +10:00
mcftimer.h m68knommu: Add support for the Coldfire m5441x. 2012-07-16 09:59:21 +10:00
mcfuart.h m68knommu: Add support for the Coldfire 5251/5253 2012-07-16 09:59:21 +10:00
mcfwdebug.h
mmu.h m68k: merge the mmu and non-mmu versions of mmu.h 2009-03-24 15:17:42 +10:00
mmu_context.h m68k: ColdFire V4e MMU context support code 2011-12-30 10:20:34 +10:00
mmzone.h
module.h Make most arch asm/module.h files use asm-generic/module.h 2012-09-28 14:31:03 +09:30
motorola_pgalloc.h arch/m68k/include/asm/motorola_pgalloc.h: fix kunmap arg 2009-08-26 23:14:49 +02:00
motorola_pgtable.h m68k: use ColdFire MMU read/write bit flags when ioremapping 2011-12-30 10:20:37 +10:00
movs.h
mvme16xhw.h
mvme147hw.h
natfeat.h m68k/atari: Initial ARAnyM support 2011-03-16 19:10:41 +01:00
nettel.h m68knommu: fix wrong register offsets used for ColdFire 5272 multi-function pins 2012-09-27 23:33:54 +10:00
nubus.h
openprom.h
oplib.h
page.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
page_mm.h m68k: fix __page_to_pfn for a const struct page argument 2011-08-23 13:39:48 -07:00
page_no.h m68knommu: make non-MMU page_to_virt() return a void * 2012-12-05 10:51:22 +10:00
page_offset.h m68k: define PAGE_OFFSET_RAW for ColdFire CPU with MMU enabled 2011-12-30 10:20:31 +10:00
parport.h ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
pci.h m68k: common PCI support definitions and code 2012-07-17 15:49:41 +10:00
pgalloc.h m68k: create ColdFire MMU pgalloc code 2011-12-30 10:20:40 +10:00
pgtable.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
pgtable_mm.h m68k: add page table size definitions for ColdFire V4e MMU 2011-12-30 10:20:26 +10:00
pgtable_no.h m68knommu: add KMAP definitions for non-MMU definitions 2013-01-07 11:46:25 +10:00
processor.h m68knommu: fix trap on execing /bin/init 2013-02-06 11:13:23 +10:00
ptrace.h new helper: current_user_stack_pointer() 2012-12-19 18:07:39 -05:00
q40_master.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
q40ints.h m68k/irq: Remove obsolete m68k irq framework 2011-11-08 22:35:52 +01:00
quicc_simple.h
raw_io.h
rtc.h m68k: Hook up rtc-generic 2009-04-02 01:05:31 +00:00
segment.h m68k: use addr_limit checking for m68k CPUs that do no support address spaces 2011-12-30 10:20:22 +10:00
serial.h m68k/serial: SERIAL_PORT_DFNS only if CONFIG_ISA 2011-12-10 19:52:45 +01:00
setup.h UAPI: (Scripted) Disintegrate arch/m68k/include/asm 2012-10-09 09:47:06 +01:00
signal.h get rid of ptrace_signal_deliver() arguments 2012-11-29 00:01:24 -05:00
smp.h
string.h m68knommu: add optimize memmove() function 2011-02-16 09:43:16 +10:00
sun3-head.h
sun3_pgalloc.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
sun3_pgtable.h m68k/sun3: Kill pte_unmap() warnings 2011-01-05 21:17:19 +01:00
sun3ints.h
sun3mmu.h
sun3x.h
sun3xflop.h Disintegrate asm/system.h for M68K 2012-03-28 18:30:02 +01:00
sun3xprom.h
switch_to.h Disintegrate asm/system.h for M68K 2012-03-28 18:30:02 +01:00
thread_info.h m68k: add TIF_NOTIFY_RESUME and handle it. 2012-05-21 23:59:47 -04:00
timex.h m68knommu: fix ColdFire definition of CLOCK_TICK_RATE 2009-09-16 09:43:56 +10:00
tlb.h
tlbflush.h m68k: add TLB flush support for the ColdFire V4e MMU hardware 2011-12-30 10:20:30 +10:00
traps.h m68k: print memory layout info in boot log 2011-12-24 21:47:57 +10:00
uaccess.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
uaccess_mm.h m68k: Use generic strncpy_from_user(), strlen_user(), and strnlen_user() 2012-06-06 15:31:28 +02:00
uaccess_no.h
ucontext.h m68k: make fp register stores consistent for m68k and ColdFire 2011-12-24 21:47:57 +10:00
unaligned.h m68k: Introduce config option CPU_HAS_NO_UNALIGNED 2012-06-10 10:18:32 +02:00
unistd.h m68k: Wire up finit_module 2012-12-25 20:14:56 +01:00
user.h
vga.h m68k/video: Create <asm/vga.h> 2012-04-22 20:16:50 +02:00
virtconvert.h m68k: Eliminate unused variable in page_to_phys() 2010-02-27 18:31:18 +01:00
zorro.h