Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 24 Mar 2024 19:11:01 -0700
From:      Chris Torek <chris.torek@gmail.com>
To:        freebsd-stable@freebsd.org
Subject:   14-stable on AMD7950X: Good and bad news
Message-ID:  <CAPx1GvdhhOvAt2TwwuqtUc9SAEyzjNgb0R5jLkFRwBjzN3E41g@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
I built and booted up the latest 14-stable tree on my
AMD7950X machine:

Good news: the mysterious AHCI adapter problem is gone, presumably
because of the new PCI range allocation code. So now both sets of SATA
ports work (at least, the drive I've left plugged in to the previously-failing
port now shows up).

Bad news: building drm-61-kmod, then loading amdgpu.ko,
causes a crash.

The immediate problem is that vm_phys_fictitious_unreg_range()
does this:

        rw_wlock(&vm_phys_fictitious_reg_lock);
        seg = RB_FIND(fict_tree, &vm_phys_fictitious_tree, &tmp);
        if (seg->start != start || seg->end != end) {

At line 1115, `seg` is NULL, so we die with a kernel segfault. It's probably
a good idea to add a NULL test here since RB_FIND can return NULL.
(Presumably just stick `sig == NULL ||` in front of the start/end tests.)

It's not clear why the unregister is failing though, as the drm code
seems correct at first glance.

It *is* clear why it's unregistering, though, as the console printed:

    drmn0: could not load firmware image 'amdgpu/psp_13_0_5_toc.bin'

and the expected subsequent cleanup messages (and now I've run
out of Stuff I Just Know Off-Hand at this point so I'll have to dig
into this more).

Chris



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPx1GvdhhOvAt2TwwuqtUc9SAEyzjNgb0R5jLkFRwBjzN3E41g>