svn commit: r360944 - in head: sys/amd64/amd64 sys/arm/arm sys/arm64/arm64 sys/fs/fuse sys/fs/unionfs sys/i386/i386 sys/kern sys/mips/mips sys/powerpc/powerpc sys/riscv/riscv sys/sys tools/coccinelle
Cy Schubert
Cy.Schubert at cschubert.com
Tue May 12 03:28:34 UTC 2020
In message <202005112257.04BMvMx2096445 at repo.freebsd.org>, Conrad Meyer
writes:
> Author: cem
> Date: Mon May 11 22:57:21 2020
> New Revision: 360944
> URL: https://svnweb.freebsd.org/changeset/base/360944
>
> Log:
> copystr(9): Move to deprecate [2/2]
>
> Unlike the other copy*() functions, it does not serve to copy from one
> address space to another or protect against potential faults. It's just
> an older incarnation of the now-more-common strlcpy().
>
> Add a coccinelle script to tools/ which can be used to mechanically
> convert existing instances where replacement with strlcpy is trivial.
> In the two cases which matched, fuse_vfsops.c and union_vfsops.c, the
> code was further refactored manually to simplify.
>
> Replace the declaration of copystr() in systm.h with a small macro
> wrapper around strlcpy.
>
> Remove N redundant MI implementations of copystr. For MIPS, this
> entailed inlining the assembler copystr into the only consumer,
> copyinstr, and making the latter a leaf function.
>
> Reviewed by: jhb
> Differential Revision: https://reviews.freebsd.org/D24672
>
> Added:
> head/tools/coccinelle/
> head/tools/coccinelle/copystr9.cocci (contents, props changed)
> Deleted:
> head/sys/arm64/arm64/copystr.c
> head/sys/powerpc/powerpc/copystr.c
> head/sys/riscv/riscv/copystr.c
> Modified:
> head/sys/amd64/amd64/support.S
> head/sys/arm/arm/copystr.S
> head/sys/fs/fuse/fuse_vfsops.c
> head/sys/fs/unionfs/union_vfsops.c
> head/sys/i386/i386/support.s
> head/sys/kern/subr_csan.c
> head/sys/mips/mips/support.S
> head/sys/sys/systm.h
>
Hi Conrad,
This is causing a failure to boot with geom_mirror:
GEOM_MIRROR: Device mirror/gm0 launched (2/2).
GEOM_MIRROR: Device mirror/gm1 launched (2/2).
GEOM_MIRROR: Device mirror/gm2 launched (2/2).
GEOM_MIRROR: Device mirror/gm3 launched (2/2).
mountroot: waiting for device /dev/mirror/gm0a...
Mounting from ufs:/dev/mirror/gm0a failed with error 2; retrying for 3 more
seconds
exec /sbin/init: error 20
exec /sbin/init.bak: error 20
exec /rescue/init: error 20
init: not found in path /sbin/init:/sbin/oinit:/sbin/init.bak:/rescue/init
panic: no init
cpuid = 1
time = 1589225852
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame
0xfffffe004df51ba0
vpanic() at vpanic+0x182/frame 0xfffffe004df51bf0
panic() at panic+0x43/frame 0xfffffe004df51c50
start_init() at start_init+0x23c/frame 0xfffffe004df51cf0
fork_exit() at fork_exit+0x7e/frame 0xfffffe004df51d30
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe004df51d30
--- trap 0, rip = 0, rsp = 0, rbp = 0 ---
Uptime: 9s
acpi0: reset failed - timeout
Automatic reboot in 15 seconds - press a key on the console to abort
--> Press a key on the console to reboot,
--> or switch off the system now.
Rebooting...
cpu_reset: Restarting BSP
cpu_reset_proxy: Stopped CPU 1
Anticipating you might ask if r360941 is the problem. It is not. Reverting
this r360944 (not r360941) resolves the boot problem. System is amd64.
--
Cheers,
Cy Schubert <Cy.Schubert at cschubert.com>
FreeBSD UNIX: <cy at FreeBSD.org> Web: https://FreeBSD.org
NTP: <cy at nwtime.org> Web: https://nwtime.org
The need of the many outweighs the greed of the few.
More information about the svn-src-head
mailing list