https://bugzilla.novell.com/show_bug.cgi?id=657978
https://bugzilla.novell.com/show_bug.cgi?id=657978#c2
Jiri Slaby changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |NEEDINFO
CC| |jslaby@novell.com
InfoProvider| |loebig@rz.uni-leipzig.de
--- Comment #2 from Jiri Slaby 2010-12-13 17:00:35 UTC ---
There are read/write locks all over the code of ns->lock but without disabling
irqs.
The problem is that put_cred_rcu is called from softirq context at any time and
put_cred_rcu might call write_lock, if refcnt is 0 in this chain:
security_cred_free -> apparmor_cred_free -> aa_free_task_context ->
aa_put_profile -(refcnt == 0)-> aa_free_profile_kref -> free_profile ->
write_lock
Hence sometimes this leads to deadlock -- if somebody hold the lock for R or W.
The option is to move the cleanup to a work queue into the process context.
Not a problem in upstream, in Kernel:HEAD or Kernel:stable, write_lock is not
called in free_profile there (the function is named free_aa_profile upstream).
Could you check e.g. Kernel:stable?
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.