It has been observed in the wild that some individual instances of
ISP10[24]0 controllers don't seem to like getting a 64-bit DMA address
from our driver (at least, there seems to be some sort of incorrect
handling vis a vis the RQSTYPE_A64 message in isp_intr()).
Upon inspection, it was noted that in isp_pci_dmasetup(), the decision
to use RQSTYPE_T3RQS vs RQSTYPE_T2RQS was conditional on sizeof(bus_addr_t)
being larger than sizeof(uint32_t).
However, this isn't the correct predicate; instead, the choice should
be dependent on what the largest value that bus_addr_t will have. As
it happans, the PCI layer makes a distinction between 32-bit and 64-bit
DMA windows, and isp_pci's use of the regular "pa->pa_dmat" would ensure
that the DMA address always fits within 32-bits. Therefore, there was
never a reason to use RQSTYPE_T3RQS, regardless of the size of bus_addr_t.
As such, we tweak the code to depend explicitly on a new isp_use_dma64
flag, which is initialized by the bus front-end according to the DMA
window selection that's been made.
[4 lines not shown]
Support for the 21142/21143 internal NWay block is structured like a
PHY driver, but it was overlooked when the ifmedia/mii layer gained a
locking protocol. Update it to avoid a recursive mutex acquisition
that can occur if the autonegotiation completes (very) quickly.
PR kern/60494
Always use snprintf for MPI_EVENT_INTEGRATED_RAID output. Keep better
track of the amount that we've already printed and increase the max
length to handle all string combinations (even if they shouldn't happen).
From a suggestion by kre.
Move the text noting the 4Gb boot restriction from the BUGS section
to the main text and expand it, as it not restricted to UltraSPARC 1
and 2 machines.
Minor grammar fix whilst here.
gcc/arm: For -mtp=soft, ensure stack alignment even in leaves.
The option -mtp=soft, which is the default on earmv5, makes queries
to the thread pointer, for access to static (`initial-exec')
thread-local storage, go through the C runtime subroutine
__aeabi_read_tp. (For earmv>=6, we use the cp15 register via a
single instruction.)
Thus procedures which gcc thinks of as leaf procedures that use
__aeabi_read_tp are not really leaf procedures -- and even though
__aeabi_read_tp itself doesn't use the stack pointer at all,
resolving the symbol may take a detour through the dynamic linker,
which does rely on an aligned stack pointer.
Without this change, code like
__thread int x = 0;
int *
get_x(void)
[92 lines not shown]
gdb: Disable emoji in output by default.
NetBSD users may be more likely than others to be using a physical
DEC VT420 as their console, or at the very least the standard x86
BIOS text console while debugging the system. Both of these would
rather display a garbled mess than an emoji.
Besides, this is the system debugger, so we want to keep things
usable in a minimal environment.
Users can still re-enable emoji output with "set style emoji on"
if they are using kalacrittyology7 with an utf-8 locale. Or uxterm
with symbola-ttf installed (monochrome only).
PR bin/60497 gdb prints garbled gibberish in an attempt to show
cutesy emoji
hdaudio(4): Apply access checks to ioctl routines.
This way the permissions on /dev/hdaudioN actually do something.
Sort includes while here.
PR kern/60492: hdaudio(4): setconfig is allowed unprivileged