chat/ejabberd: Update to 26.01
Drop NetBSD su patch because upstream merged it!
## Version 26.01
#### Compile and Start
- Remove dependencies, macros and code for Erlang/OTP older than 25
- Require Elixir 1.14 or higher, that's the lowest we can test automatically
- `ejabberdctl`: Support NetBSD and OpenBSD `su` ([#4320](https://github.com/processone/ejabberd/issues/4320))
- `ejabberdctl.template`: Show meaningful error when `ERL_DIST_PORT` is in use
- `ejabberd_app`: Print address and port where listens for erlang node connections
- `Makefile.in`: Add `make relivectl` similar to `relive` but using `ejabberdctl`
#### Databases
- Add db_serialize support in mnesia modules
- Add db serialization to `mod_muc_sql`
[64 lines not shown]
x86: Distinguish first and second lapic calibration passes in logs.
Prompted last year by trying to debug:
PR port-amd64/59424: hardclock ticks run at breakneck pace under qemu
CodeGen, Driver: Add -fsanitize-trap-loop option.
This option may be used to opt into infinite loops for failed UBSan and
CFI checks. It causes Clang to generate an llvm.cond.loop intrinsic call
instead of a conditional branch to a trap instruction when generating
code for a conditional trap.
Part of this RFC:
https://discourse.llvm.org/t/rfc-optimizing-conditional-traps/89456
Reviewers: fmayer, vitalybuka
Reviewed By: vitalybuka, fmayer
Pull Request: https://github.com/llvm/llvm-project/pull/177688
Add llvm.cond.loop intrinsic.
The llvm.cond.loop intrinsic is semantically equivalent to a conditional
branch conditioned on ``pred`` to a basic block consisting only of an
unconditional branch to itself. Unlike such a branch, it is guaranteed
to use specific instructions. This allows an interrupt handler or
other introspection mechanism to straightforwardly detect whether
the program is currently spinning in the infinite loop and possibly
terminate the program if so. The intent is that this intrinsic may
be used as a more efficient alternative to a conditional branch to
a call to ``llvm.trap`` in circumstances where the loop detection
is guaranteed to be present. This construct has been experimentally
determined to be executed more efficiently (when the branch is not taken)
than a conditional branch to a trap instruction on AMD and older Intel
microarchitectures, and is also more code size efficient by avoiding the
need to emit a trap instruction and possibly a long branch instruction.
On i386 and x86_64, the infinite loop is guaranteed to consist of a short
conditional branch instruction that branches to itself. Specifically,
[9 lines not shown]
LinuxKPI: 802.11: catch possible NULL pointer deref with mt76
With mt76 we, for the first time, see that txstat->skb or
txstat->info may not be filled in linuxkpi_ieee80211_tx_status_ext().
Guard for these cases checking for skb and info to be not NULL and
assume a TX failure in case info is NULL.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
LinuxKPI: 802.11: catch possible NULL pointer deref with mt76
With mt76 we, for the first time, see that txstat->skb or
txstat->info may not be filled in linuxkpi_ieee80211_tx_status_ext().
Guard for these cases checking for skb and info to be not NULL and
assume a TX failure in case info is NULL.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
LinuxKPI: 802.11: set extra tx info flag for EAPOL for mt76
mt76 requires IEEE80211_TX_CTL_USE_MINRATE to be set for EAPOL, so
add it.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
mt76: fix a check wrongly giving us random ether addresses all the time
Do not cover the is_valid_ether_addr() check under CONFIG_OF.
Unclear if this is an initial porting or a merging error before the
driver hit the FreeBSD src tree.
The end result was that we always got a random link-layer address,
while the individual drivers may have setup phy->macaddr and this
function would only overwride if given in device tree.
Only if both, driver and and the OF backup, fail then go and use
the random link-layer address.
While here adjust printing the random link-layer address using
a FreeBSD format specifier and not the unsupported Linux one.
Fixes: 6c92544d7c97
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
LinuxKPI: 802.11: set extra tx info flag for EAPOL for mt76
mt76 requires IEEE80211_TX_CTL_USE_MINRATE to be set for EAPOL, so
add it.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
LinuxKPI: 802.11: make sure we are scheduled before wake_tx_queue()
If we are not scheduled before calling wake_tx_queue() packets may
never go out, which at first will look like EAPOL fails (as
wpa_supplicant suggest possibly with a wrong key). Using monitor
mode it will be clear what is going on.
Pass a flag down to wake_tx_queue() to call ieee80211_schedule_txq()
in case (*wake_tx_queue)() is supported or not, which solves the
problem for the lkpi_80211_txq_tx_one() which was failing.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
mt76: fix a check wrongly giving us random ether addresses all the time
Do not cover the is_valid_ether_addr() check under CONFIG_OF.
Unclear if this is an initial porting or a merging error before the
driver hit the FreeBSD src tree.
The end result was that we always got a random link-layer address,
while the individual drivers may have setup phy->macaddr and this
function would only overwride if given in device tree.
Only if both, driver and and the OF backup, fail then go and use
the random link-layer address.
While here adjust printing the random link-layer address using
a FreeBSD format specifier and not the unsupported Linux one.
Fixes: 6c92544d7c97
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
LinuxKPI: 802.11: make sure we are scheduled before wake_tx_queue()
If we are not scheduled before calling wake_tx_queue() packets may
never go out, which at first will look like EAPOL fails (as
wpa_supplicant suggest possibly with a wrong key). Using monitor
mode it will be clear what is going on.
Pass a flag down to wake_tx_queue() to call ieee80211_schedule_txq()
in case (*wake_tx_queue)() is supported or not, which solves the
problem for the lkpi_80211_txq_tx_one() which was failing.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
mt76: module Makefiles fix .PATH
The common Makefile.inc had the .PATH set for the common code.
That .PATH is only needed for the mt76_core module, which shares
code for all other drivers. We leave the COMMONDIR variable defined
in Makefile.inc as we need it for CFLAGS+= -I for each driver but
migrate the .PATH to avoid drivers picking up the wrong files.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
mt76: sort out MODULE_DEPEND for PCI and USB
It is not enough to depend on mt76_core which then depends on linuxkpi
and linuxkpi_wlan. Given each mt76 driver is its own module, each
also needs to depend on these linuxkpi modules.
In addition the core module usb part also has to depend on linuxkpi_usb.
This in addition to the previously sorted PCI drivers, allows (or will
allow) the individual chipsets (drivers) to load on systems with USB,
if compiled in, as well.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
mt76: mt7925: add missing LINUXKPI_PARAM_PREFIX
There is a module_param_named() in the file so we need to set
LINUXKPI_PARAM_PREFIX to get it a uniq sysctl name. mt7921
has the exact same option. Without their individual prefixes
the names would clash on systems with both chipsets and not
work for both.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
mt76: sort out MODULE_DEPEND for PCI and USB
It is not enough to depend on mt76_core which then depends on linuxkpi
and linuxkpi_wlan. Given each mt76 driver is its own module, each
also needs to depend on these linuxkpi modules.
In addition the core module usb part also has to depend on linuxkpi_usb.
This in addition to the previously sorted PCI drivers, allows (or will
allow) the individual chipsets (drivers) to load on systems with USB,
if compiled in, as well.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
mt76: module Makefiles fix .PATH
The common Makefile.inc had the .PATH set for the common code.
That .PATH is only needed for the mt76_core module, which shares
code for all other drivers. We leave the COMMONDIR variable defined
in Makefile.inc as we need it for CFLAGS+= -I for each driver but
migrate the .PATH to avoid drivers picking up the wrong files.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
mt76: mt7925: add missing LINUXKPI_PARAM_PREFIX
There is a module_param_named() in the file so we need to set
LINUXKPI_PARAM_PREFIX to get it a uniq sysctl name. mt7921
has the exact same option. Without their individual prefixes
the names would clash on systems with both chipsets and not
work for both.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days