[RFC] breakage either in arch/sh/Kconfig or arch/sh/kernel/process.c?

From: Al Viro
Date: Thu Sep 29 2005 - 01:12:56 EST


In process.c:
void flush_thread(void)
{
#if defined(CONFIG_SH_FPU)
struct task_struct *tsk = current;
struct pt_regs *regs = (struct pt_regs *)
((unsigned long)tsk->thread_info
+ THREAD_SIZE - sizeof(struct pt_regs)
- sizeof(unsigned long));
...
and
int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs)
{
struct pt_regs ptregs;

ptregs = *(struct pt_regs *)
((unsigned long)tsk->thread_info + THREAD_SIZE
- sizeof(struct pt_regs)
#ifdef CONFIG_SH_DSP
- sizeof(struct pt_dspregs)
#endif
- sizeof(unsigned long));

which is obviously inconsistent if we ever build with both SH_FPU and SH_DSP
set. Now, in arch/sh/Kconfig we see that SH_FPU depends on !CPU_SH3 and SH_DSP
on !CPU_SH4. Which leaves CPU_SH2 picking both options.

Comments? Looks like either Kconfig or flush_thread() needs fixing...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/