aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2006-10-19 03:20:25 -0400
committerPaul Mundt <lethal@linux-sh.org>2006-10-19 03:30:32 -0400
commit1f666587dbf6bc660b23d8dd8abb6c572ce3eae5 (patch)
tree5fe9fc801e01a2feed7d1b7e65cafe6d4f23df84 /include
parent082c44d20eb4c6c4aa60ae7429ea184854cb0610 (diff)
sh: Fix exception_handling_table alignment.
With the recent change ripping out interrupt_table, explicit padding of the table was missing, causing bad things to happen when manually inserting handlers in to the table. This problem particularly showed up in relation to do_fpu_state_restore() which was inserted quite deeply in to the table and ended up scribbling over a slab object. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-sh/system.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/asm-sh/system.h b/include/asm-sh/system.h
index 6c1f8fde5ac4..3340126f4e0f 100644
--- a/include/asm-sh/system.h
+++ b/include/asm-sh/system.h
@@ -353,6 +353,13 @@ static inline unsigned long __cmpxchg(volatile void * ptr, unsigned long old,
353 (unsigned long)_n_, sizeof(*(ptr))); \ 353 (unsigned long)_n_, sizeof(*(ptr))); \
354 }) 354 })
355 355
356extern void *set_exception_table_vec(unsigned int vec, void *handler);
357
358static inline void *set_exception_table_evt(unsigned int evt, void *handler)
359{
360 return set_exception_table_vec(evt >> 5, handler);
361}
362
356/* XXX 363/* XXX
357 * disable hlt during certain critical i/o operations 364 * disable hlt during certain critical i/o operations
358 */ 365 */