On Tue, Oct 08, 2024 at 02:57:25PM +0200, Frank Brodbeck wrote:
> Oct 8 13:28:14 quirm /bsd: OpenBSD 7.6 (RAMDISK_CD) #326: Mon Sep 30
> 09:00:03 MDT 2024
> Oct 8 13:28:14 quirm /bsd:
> [email protected]:/usr/src/sys/arch/amd64/compile/RAMDISK_CD
Kernel bsd.rd does not use relinking. So we can find the code from rip.
> Oct 8 13:28:14 quirm /bsd: root on rd0a swap on rd0b dump on rd0b
> Oct 8 13:28:14 quirm /bsd: WARNING: CHECK AND RESET THE DATE!
> Oct 8 13:28:14 quirm /bsd: uvm_fault(0xfffffd827dc3e810, 0x0, 0, 1) -> e
> Oct 8 13:28:14 quirm /bsd: fatal page fault in supervisor mode
> Oct 8 13:28:14 quirm /bsd: trap type 6 code 0 rip ffffffff81374c4c cs 8
> rflags 10246 cr2 0 cpl 0 rsp ffff80002f25dbb0
Sorted nm output of release bsd.rd says
ffffffff81374c2c T wsdisplaywrite
ffffffff81374c83 T wsdisplaytty
rip is ffffffff81374c4c, look at wsdisplaywrite+0x20
0000000000000fac <wsdisplaywrite>:
...
/usr/src/sys/dev/wscons/wsdisplay.c:1019
fcc: 48 8b 04 f8 mov (%rax,%rdi,8),%rax
/usr/src/sys/dev/wscons/wsdisplay.c:1024
So it happens here:
1010 int
1011 wsdisplaywrite(dev_t dev, struct uio *uio, int flag)
1012 {
1013 struct wsdisplay_softc *sc;
1014 struct tty *tp;
1015 int unit;
1016 struct wsscreen *scr;
1017
1018 unit = WSDISPLAYUNIT(dev);
* 1019 sc = wsdisplay_cd.cd_devs[unit];
1020
1021 if (ISWSDISPLAYCTL(dev))
1022 return (0);
1023
1024 if ((scr = sc->sc_scr[WSDISPLAYSCREEN(dev)]) == NULL)
> Oct 8 13:28:14 quirm /bsd: gsbase 0xffffffff81938ff0 kgsbase 0x0
> Oct 8 13:28:14 quirm /bsd: panic: trap type 6, code=0, pc=ffffffff81374c4c
> Oct 8 13:28:14 quirm /bsd: panic: trap type 6, code=0, pc=ffffffff81374c4c
> Oct 8 13:28:14 quirm /bsd: dump to dev 17,1 not possible
> Oct 8 13:28:14 quirm /bsd: rebooting...
bluhm