[PATCH 3/3] UBI: Fix possible deadlock in erase_worker()
Richard Weinberger
richard at nod.at
Mon Sep 29 15:22:56 PDT 2014
Am 26.09.2014 12:40, schrieb Artem Bityutskiy:
> On Mon, 2014-09-22 at 10:45 +0200, Richard Weinberger wrote:
>> If sync_erase() fails with EINTR, ENOMEM, EAGAIN or
>> EBUSY erase_worker() re-schedules the failed work.
>> This will lead to a deadlock because erase_worker() is called
>> with work_sem held in read mode. And schedule_erase() will take
>> this lock again.
>>
>> Signed-off-by: Richard Weinberger <richard at nod.at>
>
> Did you manage to test it?
>
> Why no -stable this time? Not that important, or just something
> theoretical and you never actually hit this bug?
It is something theoretical, I was only able to trigger it by injecting
ENOMEM by hand.
Thanks,
//richard
More information about the linux-mtd
mailing list