[Bug 268835] Use BUS_PASS_INTERRUPT+BUS_PASS_ORDER_LATE for bcm_dma (for RPi* contexts)

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 13 Feb 2023 18:34:56 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268835

--- Comment #4 from Mark Millard <marklmi26-fbsd@yahoo.com> ---
(In reply to Mitchell Horne from comment #3)

There is a history of my messages to the lists about the
problem, going back into 2022-Apr, mostly freebsd-arm for
the problem and, more recently, freebsd-hackers asking for
help in solving the problem. (No replies.) From knowing crash
details published in in 2022-Apr to knowing the fix here took
me something like 8 months of trying to figure it out.

The 2022-Apr freebsd-arm messages are somewhat messy as I
explored firmware versions and made operator errors.

Crash here means the attempt to dereference a small offset
from a NULL pointer.

https://lists.freebsd.org/archives/freebsd-arm/2022-April/001274.html
has the original report with many console logs with
backtraces, various firmware versions being tested. (Later
messages for a while repeated this material.)

https://lists.freebsd.org/archives/freebsd-arm/2022-April/001278.html
is where I first showed the failing behavior at the source
code level and the related (textual form of) DTB content
for what was different between older firmware that did not
lead to a crash vs. newer firmware that did.

The message sequence also has material about other issues
as I isolated things. (Part of the messy status.) Also a
false report from accidentally deleting a file without
noticing at the time --followed later by message(s) about
that mistake.

There is nothing to show for how I figured out the change.
With what I'd gradually partially understood, a message
about some other fix that I read turned out to be somewhat
related in how it fixed something (not at all specific to
RPi*'s). It lead to me the technique and that it applied
to Device Tree (fdt) contexts for having resources ready
in time. So: Found by analogy to something else that I saw.

My first try was too early and produced messages about that.
I then figured out the BUS_PASS_INTERRUPT dependency and
and that BUS_PASS_ORDER_LATE was no longer too early.

-- 
You are receiving this mail because:
You are the assignee for the bug.