[PATCH v3] initramfs: finish fput() before accessing any binary from initramfs

Tero Kristo t-kristo at ti.com
Fri Feb 3 09:19:11 PST 2017


On 02/02/17 00:12, Andrew Morton wrote:
> On Wed, 1 Feb 2017 19:35:40 +0530 Lokesh Vutla <lokeshvutla at ti.com> wrote:
>
>> commit 4a9d4b024a31 ("switch fput to task_work_add") implements a
>> schedule_work() for completing fput(), but did not guarantee calling
>> __fput() after unpacking initramfs. Because of this, there is a
>> possibility that during boot a driver can see ETXTBSY when it tries
>> to load a binary from initramfs as fput() is still pending on that
>> binary. This patch makes sure that fput() is completed after unpacking
>> initramfs and removes the call to flush_delayed_fput() in kernel_init()
>> which happens very late after unpacking initramfs.
>
> There's not really enough info here for others to be able to decide
> which kernel versions need the fix.  How serious is the bug?  Given
> that it's been there for 4 years, I assume "not very"?

I think the issue only surfaces with certain timing conditions, and for 
some reason it has been masked for at least us until we noticed this 
with 4.9-lts kernel. The same issue was not detected with earlier 
4.4-lts kernel.

-Tero



More information about the linux-arm-kernel mailing list