![]() | ||||||||||
Messages in this thread |
On Thu, Oct 06, 2005 at 10:10:55AM +0200, Ingo Molnar wrote: > > * Steven Rostedt <rostedt@goodmis.org> wrote: > > > Found the problem. You're using a 64 bit machine and flags in the > > acpi code is defined as u32 and not unsigned long. Ingo's tests put > > some checks in the flags at the MSBs and these are being truncated. > > ahh ... I would not be surprised if this caused actual problems on x64 > in the upstream kernel too: using save_flags() over u32 will corrupt a > word on the stack ... > > Andi? Yes it should be using unsigned long. The actual flag word is still only 32bit, but the inline assembly expects 64bit. And save_flags might corrupt the target if it's too small. Normally you should get a warning from warn_if_not_ulong() though. You didn't get it in that case? I don't remember any such warnings from the ACPI code. Which code does it exactly? -Andi - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | |||||||||
| Last update: 2005-10-06 07:38 [W:0.251 / U:0.040 seconds] ©2003-2008 Jasper Spaans | ||||||||||