[PATCH] gcc 3.1 breaks wchan

Anton Blanchard
2002-04-25T01:46:03Z

Hi,

I noticed on a ppc64 kernel compiled with gcc 3.1 that context_switch
was left out of line. It ended up outside of the
scheduling_functions_start_here/end_here placeholders which breaks
wchan.

This is one place where we require the code to be inline, so we should use
extern.

Anton

--- linux-2.5/kernel/sched.c Tue Apr 23 16:00:33 2002
+++ linux-2.5_work/kernel/sched.c Thu Apr 25 11:38:45 2002
@@ -405,7 +405,8 @@
}
#endif

-static inline void context_switch(task_t *prev, task_t *next)
+/* This must end up inline or our wchan handling will break, so use extern */
+extern inline void context_switch(task_t *prev, task_t *next)
{
struct mm_struct *mm = next->mm;
struct mm_struct *oldmm = prev->active_mm;