linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [BUG] OpenRISC exec init fails, bisected to 0886551 ("initramfs: finish fput() before accessing any binary from initramfs")
@ 2017-05-04  7:11 Stafford Horne
  2017-05-04  7:45 ` Lokesh Vutla
  0 siblings, 1 reply; 11+ messages in thread
From: Stafford Horne @ 2017-05-04  7:11 UTC (permalink / raw)
  To: lokeshvutla, LKML; +Cc: Murali Karicheri, Al Viro

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.

BOOT LOG

  Compiled-in FDT at c03b9100
  Linux version 4.10.0-10351-g0886551 (shorne@lianli.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

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-05-06  8:23 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-04  7:11 [BUG] OpenRISC exec init fails, bisected to 0886551 ("initramfs: finish fput() before accessing any binary from initramfs") Stafford Horne
2017-05-04  7:45 ` Lokesh Vutla
2017-05-04  8:35   ` Stafford Horne
2017-05-04  9:09     ` Lokesh Vutla
2017-05-04  9:41       ` Stafford Horne
2017-05-04 12:47         ` [PATCH] initramfs: Always do fput() and load modules after rootfs populate Stafford Horne
2017-05-04 18:41           ` Al Viro
2017-05-05  7:43             ` Stafford Horne
2017-05-06  7:02           ` Andrei Vagin
2017-05-06  8:17             ` Stafford Horne
2017-05-06  8:23               ` Stafford Horne

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).