lkml.org 
[lkml]   [2005]   [Oct]   [6]   [last100]   RSS-feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Complete thread (EXPERIMENTAL)
/
DateThu, 6 Oct 2005 10:49:20 +0200
FromIngo Molnar <>
SubjectRe: 2.6.14-rc3-rt2
Digg This

* Steven Rostedt <rostedt@goodmis.org> wrote:
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 ...


Actually, it's still safe upstream. The locks are taken via a function defined as:

unsigned long acpi_os_acquire_lock(acpi_handle handle) {
unsigned long flags;
spin_lock_irqsave((spinlock_t *) handle, flags);
return flags;
}

So a u32 flags with

flags = acpi_os_acquire_lock(lock);

would be safe, unless a 64 bit machine stored the value of IR in the upper word, which I don't know of any archs that do that.

ok. But this still looks very volatile. Nowhere do we guarantee (or can we guarantee) that silently zeroing out the upper 32 bits of flags is safe!

Ingo
\
ISP Services
Valid XHTML 1.0!\ /
Valid CSS! Last update: 2005-10-06 08:51    [W:1.314 / U:0.000 seconds]
©2003-2005 Jasper Spaans