Blackfin arch: Fix random crash issue found by Michael.
authorRobin Getz <robin.getz@analog.com>
Mon, 29 Oct 2007 10:14:15 +0000 (18:14 +0800)
committerBryan Wu <bryan.wu@analog.com>
Mon, 29 Oct 2007 10:14:15 +0000 (18:14 +0800)
commitaa770aa790f3a5f3ff568388d02aea2ef78773ec
treec100fc10a4cdbd9bc0104846795babcad915dd71
parent7728ec33faf88605fb871b9b0ecf8e45d4359678
Blackfin arch: Fix random crash issue found by Michael.

This is fixes a problem where we could jump to the wrong address. By
doing a "p0 = reti; jump (p0)". If a different, higher level interrupt
came in, just before, rather than returning to the calling function, we
would return to a random place in the kernel.

This very elegant fix from Bernd grabs the return location off the
stack, and places it into P0, so when we do a return, it goes to the
correct place.

Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
arch/blackfin/kernel/entry.S