pci: Only re-route IRQs based on firmware on x86
There is a (very historical) call to pci_assign_interrupt for the
purpose of routing IRQs which may have been set up wrong by x86 BIOS
or firmware. On non-x86 systems, this is unnecessary; and on INTRNG
systems it results in a (synthetic) IRQ leak and ultimately a kernel
panic after many hotplug/unplug cycles.
Suggested by: jhb
Reviewed by: jhb
MFC after: 2 weeks
Sponsored by: Amazon
Differential Revision: https://reviews.freebsd.org/D49560
Correctly track index of first free irq map entry
Any time an IRQ map entry was removed, irq_map_first_free_idx was being
set to the index of the removed entry; this caused problems when
entries were removed in random order since irq_map_first_free_idx was
set to a larger value than the index of the first free map entry, and
in 9beb195fd9fd ("Continue searching for an irq map from the start")
the IRQ map allocation code was adjusted to use irq_map_first_free_idx
as a starting point but ultimately scan the entire map if necessary,
including values less than irq_map_first_free_idx.
Remove that workaround and instead make irq_map_first_free_idx do what
the name suggests -- tracking the index of the first free map entry --
by only setting to the index of a newly-freed entry if that index is
lower than the existing irq_map_first_free_idx value.
Reviewed by: imp, mhorne
Sponsored by: Amazon
Differential Revision: https://reviews.freebsd.org/D49543
linuxkpi: Define `MAX_PAGE_ORDER` and `NR_PAGE_ORDERS`
The TTM component of the DRM drivers started to use the latter in Linux
6.8.
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49387
linuxkpi: Add `pwm_apply_might_sleep()`
The i915 DRM driver started to use it in Linux 6.8.
Reviewed by: emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49386
tests: xfail readelf phdr count test w/LLVM binutils
LLVM readelf does not (yet) support phdr counts that overflow 16 bits.
Temporarily xfail this test until fixed; see upstream issue 132216 for
more details https://github.com/llvm/llvm-project/issues/132216.
PR: 285547
Reported by: markj
Reviewed by: dim, markj
Sponsored by: The FreeBSD Foundation
Fixes: 1cae7121c667 ("Enable LLVM_BINUTILS by default")
Differential Revision: https://reviews.freebsd.org/D49561
pf: Remove some state pointer indirection
Several subroutines take a pointer to a pointer to a pf state, but never
modify the input pointer. As in commit 9f9cf83f114a, let's remove the
indirection, making the code easier to read. No functional change
intended.
Reviewed by: kp, glebius
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D49519
pf: Use a macro to get the hash row in pf_find_state_byid()
This seems a bit preferable to open-coding it. No functional change
intended.
Reviewed by: kp, glebius
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D49518
intro.5: Crossreference ascii(7)
Since the beginning, Unix has included an ASCII chart. Over the last
half a century to this day, the most common format for lexographical
organization in files is according to ASCII. Consistency is maintainable
and for that reason, crossreference ascii(7) promenently in the
introduction to the File Formats Manual. Additionally, this demonstrates
the often softer style of bullet lists in the manual tradition.
PR: 248562
MFC after: 3 days
Reviewed by: mhorne
Approved by: mhorne (mentor)
Pull Request: https://github.com/freebsd/freebsd-src/pull/1534
(cherry picked from commit a6175f28da7018ba9f824f48fe6db732bd9cb501)
intro.5: More verbose introductory sentence
Explain a little about everything is a file,
matching the style of earlier intro pages.
PR: 248562
MFC after: 3 days
Approved by: mhorne (mentor)
Reviewed by: imp, mhorne, Lexi Winter <lexi at le-fay.org>
Pull Request: https://github.com/freebsd/freebsd-src/pull/1534
(cherry picked from commit 37508388d066826d0a36b5ec646c95a9ffb00d28)
intro.5: Import description table from OpenBSD
Looking around at how everyone else is doing it, this list seems nearly
perfect to me and we should just import it from them. I have added "and
streams" because we have some explanations of those in this section too.
PR: 248562
MFC after: 3 days
Obtained from: OpenBSD
Approved by: mhorne (mentor)
Reviewed by: imp, mhorne, Lexi Winter <lexi at le-fay.org>
Pull Request: https://github.com/freebsd/freebsd-src/pull/1534
(cherry picked from commit 26ec376536622e8fec8f40847aa9b2d1121d585d)
intro.5: Add local to files, minor maintenence
New users are sometimes confused about the difference between /etc/ and
/usr/local/etc. Explain this in the manual as we did in intro(1). Link
hier(7) which now lists base system configuration files in /etc/. Add a
section number to HISTORY for clarity.
PR: 248562
MFC after: 3 days
Approved by: mhorne (mentor)
Reviewed by: imp, mhorne, Lexi Winter <lexi at le-fay.org>
Pull Request: https://github.com/freebsd/freebsd-src/pull/1534
(cherry picked from commit 8d65152cbfc8861f6920846dea6f540c673ab7b6)
powerpc/trap: Change prediction of NOFAULTING in trap_pfault()
This was probably intended to match the amd64 check, but that tests
NOFAULTING against non-zero, while this checks against 0. We're most
likely to end up in this function when faulting is allowed, so
predict_true is the better option.
ixgbe: fix mailbox ack handling
Check if CTS bit is set in the mailbox message before waiting for ACK.
Otherwise ACK will never be received causing the function to timeout. Add
a note for ixgbe_write_mbx that it should be called while holding a lock.
Fixes: 6d243d2 ("net/ixgbe/base: introduce new mailbox API")
Cc: stable at dpdk.org
Signed-off-by: Norbert Ciosek <norbertx.ciosek at intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
Obtained from: DPDK (1f119e4)
MFC after: 1 week
libc/getaddrinfo(2): return EAI_AGAIN on nameserver timeout
A nameserver timeout is a soft failure, future attempts may succeed.
Returning EAI_AGAIN is crucial for API users to tell a soft name
resolution failure from negative resolution result.
Before the change we would return EAI_ADDRFAMILY, which I believe, is a
regression from 144361386696, and before that revision we used to return
EAI_NONAME in most of the cases.
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D49411
libc/tests: enable getaddrinfo(1) tests from NetBSD
Enable running of contrib/netbsd-tests/lib/libc/net/getaddrinfo without
modifications to the test program itself. However, create our own version
of expected results files. They are produced from the NetBSD files, with
the following list of changes:
o AF_INET6 value is different, hence: s/family 24/family 28/.
o SCTP result (socktype 5 protocol 132) needs to be added to many queries
results.
o NetBSD libc sorts multiple results first by protocol, then by address
family. FreeBSD first sorts on address family, then on protocol. Some
results need to be reordered.
o Error strings need to be fixed:
s/hostname nor servname provided, or not known/Name does not resolve/
s/ai_family not supported/Address family not recognized/
s/servname not supported for ai_socktype/\
Service was not recognized for socket type/.
[2 lines not shown]
libc/tests: add getaddrinfo test
A test suite for getaddrinfo(3) written in C. Unlike NetBSD test, this
one will be mostly focused on what the API should return when something
isn't good with your DNS. Test emulates bad DNS servers in resolv.conf
intercepting fopen(2) and emulates downed network intercepting send(2).
Initial version covers three main scenarios: all good, server(s) timed
out, network down. For each scenario we test hostname with trailing dot
and without, since libc resolver uses quite different code paths,
sometimes even yielding with different error codes. All current error
codes in the test are what our libc returns right now, meaning the test
documents what we have, not what there should be.
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D49410
mount_nfs: make temporary DNS failure non-fatal with background mode
Typical problem with network mounts is remote equipment not being
available when our host boots up after a power failure. Even if you
properly configure boot order of all local services and wait for link
coming up on your NIC, you still may boot faster than some intermediate
switch on the network or the DNS server itself. Let's refer to this as a
"server room boot race". For NFS mounts with hostname in hosts(5) the
race is addressed by a retry loop on NFS mount timeout. However, a DNS
resolution timeout is treated differently to NFS mount timeout. We fail
on the former and keep retrying on the latter.
With feedback received on current@, I see that the problem is so old, that
people got used to it and see it as a desired behavior rather than a
problem. And for those who is affected by the problem, they suggest
hosts(5) as a solution. Note that using hosts(5) isn't scalable, and
using bare IP addresses is neither scalable, nor compatible with
Kerberized mounts.
[7 lines not shown]
athpoke: Use a format string with err()
Don't do err(1, ptr); that's a very old security risk turned warning.
Differential Revision: https://reviews.freebsd.org/D49546
Reviewed by: thj
ath: fix athtools common code to correctly init state
Check req->s instead of s to know if the state needs to be
cleaned up first.
This error is from a refactor I did years ago. Oops!
Differential Revision: https://reviews.freebsd.org/D49545
Reviewed by: thj
net80211: document the 802.11 specification for ieee80211_getcapinfo()
Add a reference to the 802.11 specification for the management frame
capability info field.
Differential Revision: https://reviews.freebsd.org/D49513
Reviewed by: thj
mtw: fix compilation with IEEE80211_SUPPORT_SUPERG enabled
It looks like this was missed during the driver development and
porting.
Differential Revision: https://reviews.freebsd.org/D49512
Reviewed by: thj
release/azure: Update instruction of publishing to Azure Marketplace
Using Compute Gallery as the source is the preferred method now.
Reviewed by: brooks, emaste
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49528
hier.7: Storage partitions are not filesystems
I recommended the incorrect text to the submitter.
MFC after: 3 days
Fixes: f47cbb29e1c2 (Add /dev/gpt)
Reported by: Mark Millard <marklmi at yahoo.com>
Reviewed by: imp, mhorne
Approved by: mhorne (mentor)
Differential Revision: https://reviews.freebsd.org/D49523
top: Sync usage and synopsis
Switching between io and cpu sorting uses a great example in the usage.
[-m io | cpu]. Use that everywhere.
MFC after: 3 days
Reviewed by: mhorne
Approved by: mhorne (mentor)
Differential Revision: https://reviews.freebsd.org/D49515
arm64: Fix off-by-one in its_init_cpu_lpi
The low bits of GICR_PROPBASER are defined as
The number of bits of LPI INTID supported, minus one, by the LPI
Configuration table starting at Physical_Address.
but flsl(1 << n) returns n + 1; use ilog2_long instead.
PR: 285677
Reported by: Julien Grall
Reviewed by: andrew
Sponsored by: Amazon
Differential Revision: https://reviews.freebsd.org/D49542