Messages in this thread | | | Date | Tue, 29 Aug 2000 14:08:22 -0700 | From | "David S. Miller" <> | Subject | Re: [patch] scheduler bugfix, SMP, 2.4.0-test7 |
| |
Date: Tue, 29 Aug 2000 16:13:22 +0100 (BST) From: Alan Cox <alan@lxorguk.ukuu.org.uk>
> Ingo, the local flags stuff on Sparc, remember?
Maybe its time to have FASTCALLFLAGS that is different for sparc ?
The problem not FASTCALL, which is a NOP on sparc anyways. The problem is the fact that people expect the following to work:
void foo(unsigned long flags) { restore_flags(flags); }
void bar(void) { unsigned long flags;
save_flags(flags); foo(flags); }
And it doesn't on Sparc because the flags are stored in the same CPU register as the current register window.
Therefore you cannot restore irq flags in a different function than the one in which you obtained them.
Later, David S. Miller davem@redhat.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
| |