[RFC] breakage either in arch/sh/Kconfig or arch/sh/kernel/process.c?
Al Viro <[email protected]> Thu, 29 Sep 2005 07:12:39 +0100
| Newsgroups | gmane.linux.kernel,gmane.linux.ports.sh.general |
|---|---|
| Message-ID | <[email protected]> |
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...