UBIFS errors when file-system is full

Stefan Agner stefan at agner.ch
Wed Sep 2 12:58:08 PDT 2015


On 2015-08-31 18:43, Brian Norris wrote:
> Why do you actually need to check the idle bit? If you need to read it
> to clear out some FIFO, then that's fine -- just read it, but don't use
> it as a second condition. The complete()/wait_for_completion()
> synchronization should be sufficient on its own. (If not, then I think
> you have other problems.)
> 
> The NFC_IRQ_STATUS-based condition looks like it could lead to races
> because your interrupt may fire between setting and checking
> the idle bit. So the IRQ handler will increment the completion struct
> (cmd_done), but you *won't* be doing the corresponding decrement via
> wait_for_completion(). If you don't do that... then the subsequent
> wait_for_completion() will immediately succeed.

Tested over night and did some additional tests today, I did not see any
issues for more than 2000 boots, so this really seems to fix the issue!
Thanks Brian, will send out v12 soon.

--
Stefan



More information about the linux-mtd mailing list