Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 296255 Details for
Bug 432979
[RHEL5 RT] kernel-rt-debug hangs while booting
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
fix to rt_mutex code for printk in atomic (don't really take locks if in printk)
printk-in-atomic-hack-fix.patch (text/x-patch), 1.80 KB, created by
Jon Masters
on 2008-02-28 20:33:54 UTC
(
hide
)
Description:
fix to rt_mutex code for printk in atomic (don't really take locks if in printk)
Filename:
MIME Type:
Creator:
Jon Masters
Created:
2008-02-28 20:33:54 UTC
Size:
1.80 KB
patch
obsolete
>From: Steven Rostedt <srostedt@redhat.com> >Subject: fix printk in atomic hack > >The printk in atomic hack had a slight bug. This but was triggered >by debug locking options. The hack prevents grabbing sleeping spin >locks in printk console drivers if we are in atomic (can't sleep). >But the unlock had a bug where it incorrectely assumed that if >we are in printk and atomic, that we didn't grab the lock. The debug >locking can encapsulate these options and cause unlocks to be in atomic >when the lock was not. This means we would not release the lock after >it was taken. > >The patch only skips releasing the lock if in printk - atomic *and* >not the lock owner. > >Special thanks goes to Jon Masters for digging his head deep into >this crap and narrowing it down to a problem with printks and locks. > >Signed-off-by: Steven Rostedt <srostedt@redhat.com> >--- > kernel/rtmutex.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > >Index: linux-2.6.24.3-rt3/kernel/rtmutex.c >=================================================================== >--- linux-2.6.24.3-rt3.orig/kernel/rtmutex.c 2008-02-27 13:42:10.000000000 -0500 >+++ linux-2.6.24.3-rt3/kernel/rtmutex.c 2008-02-27 14:11:06.000000000 -0500 >@@ -634,7 +634,7 @@ rt_spin_lock_fastlock(struct rt_mutex *l > void fastcall (*slowfn)(struct rt_mutex *lock)) > { > /* Temporary HACK! */ >- if (!current->in_printk) >+ if (likely(!current->in_printk)) > might_sleep(); > else if (in_atomic() || irqs_disabled()) > /* don't grab locks for printk in atomic */ >@@ -651,7 +651,7 @@ rt_spin_lock_fastunlock(struct rt_mutex > void fastcall (*slowfn)(struct rt_mutex *lock)) > { > /* Temporary HACK! */ >- if (current->in_printk && (in_atomic() || irqs_disabled())) >+ if (unlikely(rt_mutex_owner(lock) != current) && current->in_printk) > /* don't grab locks for printk in atomic */ > return; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 432979
: 296255 |
304428