Comment 34 for bug 415353

Stefan Bader (smb) wrote :

So the main issue with the patch is actually not the referencing but plainly the locking. Problem is that there are a number of other patches upstream that modified the way one mutex is held. Basically rewriting a lot of code to avoid holding it over a long time. So the patch to fix the "gave up waiting" issue grabs the lock and releases it in one function (where I missed the grad in the backport). But even with that added, nothing would be gained as the mutex is held the whole time and not expected to be released while waiting.

I would really like to avoid pulling in even more patches from upstream. So v2 tries what seemed to have been one of the first approaches but Linus did not like. That is , to release and regrab the mutex before and after waiting. Maybe (but hopefully not) that could open a small window for another race and that is the reason it was frowned upon.

Trying the v2 kernel myself, I did not see something failing (but neither did I with the last one). It probably requires some hardware triggering a module load which in turn requests another module. (Kernels again at http://people.canonical.com/~smb/lp415353/)