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