lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9860c33a-c940-6a63-3736-64f864b6d602@ti.com>
Date:   Thu, 4 May 2017 13:15:23 +0530
From:   Lokesh Vutla <lokeshvutla@...com>
To:     Stafford Horne <shorne@...il.com>,
        LKML <linux-kernel@...r.kernel.org>
CC:     Murali Karicheri <m-karicheri2@...com>,
        Al Viro <viro@...iv.linux.org.uk>
Subject: Re: [BUG] OpenRISC exec init fails, bisected to 0886551 ("initramfs:
 finish fput() before accessing any binary from initramfs")



On Thursday 04 May 2017 12:41 PM, Stafford Horne wrote:
> Hello,
> 
> While booting the v4.11 kernel I found the below issue.
> 
> The summary of the issue mentions
> 
>     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.
> 
> It seems this patch (0886551) introduces that issue though?
> 
> I am looking into it, but any suggestions would be helpful.

Can you check if flush_delayed_fput() is being called? Do you have
CONFIG_INITRAMFS_FORCE enabled?

Can I see complete boot log?

Thanks and regards,
Lokesh

> 
> BOOT LOG
> 
>   Compiled-in FDT at c03b9100
>   Linux version 4.10.0-10351-g0886551 (shorne@...nli.shorne-pla.net) (gcc version 5.4.0 (GCC) ) #223 Thu May 4 16:01:02 JST 2017
>   CPU: OpenRISC-0 (revision 0) @20 MHz
>   ...
>   Freeing unused kernel memory: 2856K
>   This architecture does not have kernel memory protection.
>   Failed to execute /init (error -26)
>   Starting init: /sbin/init exists but couldn't execute it (error -26)
>   Starting init: /bin/sh exists but couldn't execute it (error -26)
>   Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance.
>   ---[ end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance.
> 
> 
> TO REPRODUCE
> 
> The failure is intermittent.
> 
> Using some tools:
>   - initramfs: https://github.com/stffrdhrn/or1k-utils
>   - compiler: https://github.com/openrisc/or1k-gcc/releases (or1k-linux-5.4.0-20170218.tar.xz)
>   - qemu: version 2.9
> 
> Make and run using:
>   make ARCH=openrisc defconfig
>   make -j5 ARCH=openrisc CROSS_COMPILE=or1k-linux- \
>   CONFIG_INITRAMFS_SOURCE="../openrisc/or1k-utils/initramfs ../openrisc/or1k-utils/initramfs.devnodes"
> 
>   qemu-system-or1k -cpu or1200 -M or1k-sim -kernel vmlinux -serial stdio \
>   -nographic -monitor none
> 
> -Stafford
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ