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

From: Artem Bityutskiy
Date: Wed Sep 17 2014 - 04:43:52 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/