[PATCH] UBI: Fix possible deadlock in erase_worker()

Artem Bityutskiy dedekind1 at gmail.com
Wed Sep 17 01:43:41 PDT 2014


On Wed, 2014-09-17 at 10:40 +0200, Richard Weinberger wrote:
> /*
>  * nested locking. NOTE: rwsems are not allowed to recurse
>  * (which occurs if the same task tries to acquire the same
>  * lock instance multiple times), but multiple locks of the
>  * same lock class might be taken, if the order of the locks
>  * is always the same. This ordering rule can be expressed
>  * to lockdep via the _nested() APIs, but enumerating the
>  * subclasses that are used. (If the nesting relationship is
>  * static then another method for expressing nested locking is
>  * the explicit definition of lock class keys and the use of
>  * lockdep_set_class() at lock initialization time.
>  * See Documentation/lockdep-design.txt for more details.)
>  */
> 
> In this case the same task is taking the same lock multiple times,
> which is not allowed according to rwsem.h.

Yes, this part was missed, thanks.

-- 
Best Regards,
Artem Bityutskiy




More information about the linux-mtd mailing list