Commit graph

5107 commits

Author SHA1 Message Date
Austin Shafer
d95675349a linuxkpi: Provide a non-NULL value for THIS_MODULE
THIS_MODULE is used to differentiate modules on Linux. We currently
completely stub out any Linux struct module usage, but THIS_MODULE
is still used to populate the "owner" fields of various drivers.
Even though we don't actually dereference these "owner" fields they
are still used by drivers to check if devices/dmabufs/etc come
from different modules. For example, during DRM GEM import some
drivers check if the dmabuf's owner matches the dev's owner. If
they match because they are both NULL drivers may incorrectly think
two resources come from the same module.

This adds a general purpose __this_linker_file which will point to
the linker file of the module that uses it. We can then use that
pointer to have a valid value for THIS_MODULE.

Reviewed by:	bz, jhb
Differential Revision:	https://reviews.freebsd.org/D44306

(cherry picked from commit 28a59100b54ff245a45fbd328266266f1c14eb8c)
2024-11-30 08:55:57 -05:00
John Baldwin
13e770f1f0 uio: Use switch statements when handling UIO_READ vs UIO_WRITE
This is mostly to reduce the diff with CheriBSD which adds additional
constants to enum uio_rw, but also matches the normal style used for
uio_segflg.

Reviewed by:	kib, emaste
Obtained from:	CheriBSD
Differential Revision:	https://reviews.freebsd.org/D45142

(cherry picked from commit 473c90ac04cec0abbb414978c53e9c259c9129e8)
2024-11-30 08:55:57 -05:00
Mark Johnston
91a8054473 linux sendfile: Fix handling of non-blocking sockets
FreeBSD sendfile() may perform a partial transfer and return EAGAIN if
the socket is non-blocking.  Linux sendfile() expects no error in this
case, so squash EAGAIN.

PR:		282495
Tested by:	pieter@krikkit.xyz
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D47447

(cherry picked from commit a43b745aaf4f5bbc96875d2ab3ec9bea8024eda4)
2024-11-20 21:41:08 +00:00
Bjoern A. Zeeb
a27b3695d1 LinuxKPI: 802.11: improvements to (*ampdu_action)() callers
Annotate lkpi_ic_recv_action(), lkpi_ic_send_action(), and
lkpi_ic_ampdu_enable() with HT specifc debug logging as we only hook
them up currently for debug tracing but later should not need them
anymore.

Start the implementation for lkpi_ic_addba_request(),
lkpi_ic_addba_response(), and lkpi_ic_addba_stop().

Improve the implementation of lkpi_ic_ampdu_rx_start() and
lkpi_ic_ampdu_rx_stop().

Sponsored by:	The FreeBSD Foundation (commit)

(cherry picked from commit 310743c4ccc545d58401cb9fb7761432e12a9fb5)
2024-11-14 01:53:12 +00:00
Bjoern A. Zeeb
ce5b0b7b99 LinuxKPI: 802.11: hookup net80211 callbacks dependent on (*ampdu_action)()
If a LinuxkPI base wireless driver does not support the (*ampdu_action)()
ieee80211_ops function for offloading parts to firmware there is no
reason for us to hook into the net80211 callbacks either but simply
to let software (net80211) handle this.

Sponsored by:	The FreeBSD Foundation (commit)

(cherry picked from commit 86bc7259d3d558495511a0a23d137b4a6cd030f3)
2024-11-14 01:53:12 +00:00
Bjoern A. Zeeb
8d9b4e219f LinuxKPI: 802.11: improve lladdr change to not use ifnet internals
The changes from 4aff4048 were based on net80211 which is still using
if_private.h details.  Adjust the code to no longer depend on internal
details of ifnet.  We also switch the "check"-functionn from if_init to
if_transmit which we can query.  Given we do have a per-vif eventhandler
we could do without that check but would still need to check
if_getflags() for IFF_UP.

Sponsored by:	The FreeBSD Foundation
Reported by:	jhibbits
Fixes:		4aff4048
Reviewed by:	jhibbits
Differential Revision: https://reviews.freebsd.org/D47490

(cherry picked from commit edab5a280e0b4a53d0f3e34957075c7efe048e8d)
2024-11-14 01:53:12 +00:00
Bjoern A. Zeeb
06733ceca6 LinuxKPI: lockdep fix #includes
Add sys/sytm.h for __diagused which unbreaks compilation of
drm-kmod 5.10-lts on main.

Sponsored by:	The FreeBSD Foundation
Reported by:	Evgenii Khramtsov
PR:		282479
Fixes:		5c92f84bb607

(cherry picked from commit 9b2705121ba230bf71a1509cc928f0481dfbf31c)
2024-11-14 01:52:01 +00:00
Bjoern A. Zeeb
d964b9d8ed LinuxKPI: 802.11: adjustments for v6.11 iwlwifi, rtw88 and rtw89
Bring ing the LinuxKPI 802.11 compat bits which are not altering
the mac80211 ops KPI.

* Add various functions for driver updates.
* Add functions (some compat code to I assume cleanup some
  mac80211 ops) emulating chanctx changes doing (*config) updates.
* Adjust structs and defines.
* Deal with an enum growing more than 32 bits in printf.
* Add a mtx to struct wiphy which is exposed to the drivers.
  Handle initialization and destruction for now.
* Implementation of wiphy_work and wiphy_delayed_work.
* Set was_assoc for deassoc/deauth in prep_tx_info.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit ac1d519c01ca8beb59f27962c7052d09a03f72c8)
2024-10-31 14:33:57 +00:00
Bjoern A. Zeeb
8341284368 LinuxKPI: update rcu_dereference_*() and lockdep_is_held()
Update rcu_dereference_{check,protected}() to call the check and log
once if it fails and if the RCU debug sysctl is turned on.
Also add proper checks for conditions passed in to these functions.
For that implement linux_rcu_read_lock_held() (lots of help from wulf).

(While here also remove extraneous extern for function prototypes).

Update lockdep_is_held() to always be an inline function with argument
annotation so that we do no longer have unused variables
in callers which only call lockdep_is_held().

Sponsored by:	The FreeBSD Foundation
Reviewed by:	wulf
Differential Revision:  https://reviews.freebsd.org/D46842

(cherry picked from commit 5c92f84bb607c692ce4fa762a7a3c4b86a2fa281)
2024-10-31 14:33:57 +00:00
Bjoern A. Zeeb
1579a25f0a LinuxKPI: pci: rename PCI_IRQ_LEGACY to PCI_IRQ_INTX
PCI_IRQ_LEGACY was added in 366d68f283 (likely) for rtw88 only.
The define now got renamed and I cannot find any other use but
rtw88 and rtw89.
We keep the old name as comapt while driver updates are in
progress enabling it defining LINUXKPI_VERSION for the two drivers.

Sponsored by;	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D46822

(cherry picked from commit 157e93e0e8138fbaa6ab5d5b20b0c23f903667a6)
2024-10-31 14:33:56 +00:00
Bjoern A. Zeeb
0dee359c09 LinuxKPI: netdevice: add alloc_netdev_dummy()
Add alloc_netdev_dummy() which is needed by an updated rtw88 driver.
Given we already call linuxkpi_init_dummy_netdev() ourselves allow the
setup function to be NULL to not initialize and start a tasq td twice.

Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D46802

(cherry picked from commit 105331f658e2f14fb4daa64dcd076c7369505295)
2024-10-31 14:33:56 +00:00
Zhenlei Huang
5942658cf3 LinuxKPI: Remove stray semicolons
MFC after:	1 week

(cherry picked from commit b4856b8e9d872ca6ee0c4ef43e7047693ef7645b)
2024-10-31 12:40:17 +08:00
Evgenii Khramtsov
089664a8db linuxkpi: chase spinlock_t in DECLARE_WAIT_QUEUE_HEAD
Remove member m to unbreak consumers, e.g. drm-kmod 5.10-lts branch.

[...]
/tmp/drm-kmod/drivers/gpu/drm/ttm/ttm_module.c:38:8: error: no member named 'm' in 'struct mtx'
   38 | static DECLARE_WAIT_QUEUE_HEAD(exit_q);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/src/sys/compat/linuxkpi/common/include/linux/wait.h:113:33: note: expanded from macro 'DECLARE_WAIT_QUEUE_HEAD'
  113 |         MTX_SYSINIT(name, &(name).lock.m, spin_lock_name("wqhead"), MTX_DEF)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/src/sys/sys/mutex.h:528:4: note: expanded from macro 'MTX_SYSINIT'
  528 |                 (mtx),                                                  \
      |                  ^~~
/tmp/drm-kmod/drivers/gpu/drm/ttm/ttm_module.c:38:8: error: no member named 'm' in 'struct mtx'
   38 | static DECLARE_WAIT_QUEUE_HEAD(exit_q);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/src/sys/compat/linuxkpi/common/include/linux/wait.h:113:33: note: expanded from macro 'DECLARE_WAIT_QUEUE_HEAD'
  113 |         MTX_SYSINIT(name, &(name).lock.m, spin_lock_name("wqhead"), MTX_DEF)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[...]

Fixes:		ae38a1a1bfdf ("linuxkpi: spinlock: Simplify code")
MFC after:	?

(cherry picked from commit 84f46335ab5da086c74032579799c0a74aa27447)
2024-10-24 09:24:52 +02:00
Bjoern A. Zeeb
75ac24a7df LinuxKPI: add cleanup.h for guard DEFINE_GUARD/guard.
iwlwifi v6.11 started to use guard().  _T in the implementation needs
to be exposed to the driver which uses it in DEFINE_GUARD().

Given this is the first instance of attribute(cleanup) in the tree:
- gcc has support for it since at least 2003-06-04
  (0bfa5f65bfb186f10d43304946fd7fcd69988732)
- llvm gained support on 2009-01-31
  (d277d790e0f6f23043397ba919619b5c3e157ff3, llvm-svn 63462).

Sponsored by:	The FreeBSD Foundation
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D46843

(cherry picked from commit fa81baa307da9a0055d7d08f6d141ea310f067ed)
2024-10-16 21:50:37 +00:00
Bjoern A. Zeeb
f9c867bf4e LinuxKPI: add new dummy headers visibility.h and of_net.h
Those files are required by updated wireless drivers.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 6621842ccfb4dd01470e9085697b553d10634eb0)
2024-10-16 21:50:30 +00:00
Bjoern A. Zeeb
0804848403 LinuxKPI: add time_is_before_jiffies()
Add time_is_before_jiffies() as needed by iwlwifi from v6.11.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D46841

(cherry picked from commit 8f9567628cb2ccb335640c4bb044df2ebf45d83a)
2024-10-16 21:49:40 +00:00
Austin Shafer
65de0f1855 LinuxKPI: 802.11: fix ieee80211_schedule_txq() to avoid rtw89 panic
rtw89 TX path was faulting in linuxkpi_ieee80211_next_txq() due to a
"double scheduling" check in linuxkpI_ieee80211_schedule_txq() being
incorrect:
the next pointer may be NULL there if the element is the last in the
tailq, so correctly check tqe_prev.  Without the fix we may have queued
the same element to the tailq twice, and because it was the last element
and had a NULL tqe_next, that NULL value would get propogated into
another node's tqe_prev on removal, and other such nastiness.

With this rtw89 no longer panics.

Reviewed by:	bz
Differential Revision: https://reviews.freebsd.org/D47006

(cherry picked from commit 41b746e05231b44c87f3a3087a7fe29966af6d0f)
2024-10-16 21:46:19 +00:00
Mikhail Pchelin
a92626b33e linux80211: fix default deflink.rx_nss
Native Linux implementation sets this as a maximum between 1 and
ht/vht/eht rx SS'es, FreeBSD does the same, but uses 0 as a minimum,
which leads setting it to 0 if we're not in ht/vht case.

This 0 was breaking rtw89 driver, when it was trying to determine
SS number by subtracting 1 from rx_nss and passing the value to the
hardware.

After this patch rtw89 association and simple ping work reliably,
but more work is needed to make the driver robust with heavy traffic
(iperf3) and being long idle.

Reviewed by:	bz
Sponsored by:	Future Crew LLC
Differential Revision:	https://reviews.freebsd.org/D46528

(cherry picked from commit f5a58c2da23930ee4870f2eb54788f4669b9aa33)
2024-10-09 19:19:21 +00:00
Bjoern A. Zeeb
c8c12a517b LinuxKPI: 802.11: move functions between header files
Move some ieee8022_{is,has,get}_... functions working on header fields
from mac80211.h to ieee80211.h to avoid problems with #includes.

No functional changes.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 0b325167f60def621536632460caf68e2fab4fb8)
2024-10-09 19:18:58 +00:00
Konstantin Belousov
a23e9b154d Regen 2024-10-05 10:08:56 +03:00
Zhenlei Huang
7bea79c1ab LinuxKPI: 802.11: Stop checking for failures from malloc(M_WAITOK)
As a consequence lkpi_ieee80211_ifalloc() now does not fail. Remove
unneeded NULL check.

MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D45852

(cherry picked from commit 7bcb1228558b4325fab39616e2e3b2573a9e7da6)
2024-09-30 12:44:17 +08:00
Ed Maste
99d3ce80ba linuxulator: ignore AT_NO_AUTOMOUNT for all stat variants
Commit ff39d74aa9 ignored AT_NO_AUTOMOUNT for statx(), but did not
change fstat64() or newfstatat(), which also take an equivalent flags
argument.  Add a linux_to_bsd_stat_flags() helper and use it in all
three places.

PR:		281526
Reviewed by:	trasz
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D46711

(cherry picked from commit 3cf834d069d1dcdbe464ea74624930eaf916715d)
2024-09-29 18:37:02 -04:00
Bjoern A. Zeeb
70da94bb52 LinuxKPI: 802.11: add futher defines to ieee80211.h and nl80211.h
Upstream new defines, enum values, etc. for coming driver updates which
are non-conflicting with the current state.

The only notable change is the rename of the enum ieee80211_ap_reg_power
but the enum name had not been used so far by any driver in the tree
(only in mac80211.h) but an updated version of ath11k does use it so we
need to correct our initial naming.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit c1c989588df67396392edceb0e7e7028abc06c49)
2024-09-28 10:35:15 +00:00
Bjoern A. Zeeb
5ea0b01301 LinuxKPI: some additions for mt76
Add changes required for later mt76 drivers.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 4b972f77a16f9a217c211c8c4f28a41eca98554e)
2024-09-28 10:35:15 +00:00
Bjoern A. Zeeb
f00e737be0 LinuxKPI; add more defintions to netdevice.h
Add new enums to netdevice.h (including one which is referenced but
no value of it is used in a driver so we have to add a "dummy" value
to avoid an empty enum).

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 6ed447b51a9d6cf22aae2dfba6efce3922ae6d57)
2024-09-28 10:35:14 +00:00
Bjoern A. Zeeb
ea18ffdf6e LinuxKPI: add more fields to mhi.h
Add more fields required by updated wireless drivers to mhi.h.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit c12e3a05252ac9f43a6db379f88e4b4a07c06d46)
2024-09-28 10:35:14 +00:00
Bjoern A. Zeeb
286250daf5 LinuxKPI: add pci_err()
Add pci_err() as a wrapper to dev_err() as needed by an updated driver.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D46660

(cherry picked from commit 01e1131e4a20ea377d580ecce210aa86726e71c6)
2024-09-28 10:35:14 +00:00
Bjoern A. Zeeb
e138f36f64 LinuxKPI: add general module_driver(), use it for module_pci_driver()
Factor out module_pci_driver() from 366d68f283 into a general
module_driver() so other bus attachments can also use the same kind
of macro without duplicating all the lines.

Redefine module_pci_driver() using the new general macro.

No functional changes intended.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	manu
Differential Revision: https://reviews.freebsd.org/D46467

(cherry picked from commit f5c7feee7129dc88a2e5dc3ce0a075cb5e4f534a)
2024-09-28 10:35:14 +00:00
Bjoern A. Zeeb
cedae002cb LinuxKPI: add no_printk
Add a version of no_printk(), which seems to be there to have format
string checking while never calling the printk.  It seems a very weird
thing and it needs a return code and for some reason my initial
while (0) { } version hadn't worked while porting over new code but
could have been further downstream format string problems.
if (0) seems to do the job though I would have expected that to more
likely simply get optimised out without any futher format checking.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D46463

(cherry picked from commit 1847e63d63f440cfcb2f4ee2c2ee8990f0272d88)
2024-09-28 10:35:14 +00:00
Bjoern A. Zeeb
6dedd620cf LinuxKPI: add eth_hdr()
Add an implementation of eth_hdr() needed by a wireless driver.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D46462

(cherry picked from commit 273cf7d36336eeed5fc2ad42e5e12a36e36650a0)
2024-09-28 10:35:13 +00:00
Bjoern A. Zeeb
8e5f4f5f75 LinuxKPI: add ENAVAIL error code
Used by an updated wireless driver.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D46461

(cherry picked from commit 8adb745dc9716e769ef0f7e993cea8a07735d5d8)
2024-09-28 10:35:13 +00:00
Bjoern A. Zeeb
d5025c4916 LinuxKPI: add get_random_u8()
Add a get_random_u8() implementation following the u36 and u64 versions.
We'll likely want to macro-ify them in the future and add all the types
which makes sense just to be done.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D46464

(cherry picked from commit f29e915bc0d216a87f222a208caeb2172c93e4ea)
2024-09-28 10:35:13 +00:00
Bjoern A. Zeeb
314069ff8c LinuxKPI: 802.11: support manual lladdr changes
Allow a user to change the "ether" address by ifconfig while a VAP is
not UP.  Compared to net80211 (given we have no callback) we register
an eventhandler per-vif (a global one would force us to use hacks to
derive if a vap is indeed also a lkpi_80211 vif).

Sponsored by:	The FreeBSD Foundation
PR:		277356
Tested by:	lwhsu
Differential Revision: https://reviews.freebsd.org/D46121

(cherry picked from commit 4aff4048f5b1b6ab0b905726853ba6083e37cc37)
2024-09-28 10:35:13 +00:00
Bjoern A. Zeeb
52fdc7dace LinuxKPI: 802.11: implement ieee80211_sn_*()
Implement ieee80211_sn_*() using the equivalent net80211 macros.
We need those implemented for at least 11n.
While here also sort all the BA functions together next to the
"sn" functions.

Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D45819

(cherry picked from commit db8b3578627b5be93eba019ab2bbe3c03f7366f4)
2024-09-28 10:35:13 +00:00
Bjoern A. Zeeb
78556119d5 LinuxKPI: 802.11: consistently spell TRACE-RX: as such
We have TRACE in one place and TRACE-RX in another.  Spell it
"TRACE-RX: %s: ..." everywhere.  Helps with pattern matching.

Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D45818

(cherry picked from commit bd206a6f4a87214ae8c1b32f1051b07362080361)
2024-09-28 10:35:13 +00:00
Bjoern A. Zeeb
d506ab946d LinuxKPI/lindebugfs: stop panicing in lindebugfs, fix simple_read_from_buffer
Trying to use lindebugfs for debugging wirless drivers two issues
became apparent:
(a) a panic in lindebugfs calling a hard coded release function if the
    caller had not provided one.  This seems to be based on assumptions
    that no longer hold up.  Remove the hard coded release function to
    prevent panics.
(b) In LinuxKPI simple_read_from_buffer() would call copy_to_user() but
    buffers weren't setup for this (lindebugfs copies data from its
    own buffer) and then pseudofs will do another copyout to the user
    on this;  remove the copy_to_user() and simply copy the data over
    to the provided buffer; this works for as long as the only consumers
    remain debugfs callers (which currently seems to be the case).
    [the only out-of-tree consumers I am aware off are two drm-kmod
    drivers/gpu/drm/amd/pm/* debugfs functions I cannot test].

Sponsored by:	The FreeBSD Foundation
Tested by:	jfree
Differential Revision: https://reviews.freebsd.org/D45755

(cherry picked from commit 5668c22a13c6befa9b8486387d38457c40ce7af4)
2024-09-28 10:35:12 +00:00
Bjoern A. Zeeb
af034dcbb2 LinuxKPI: 802.11 compile in debugging based on IEEE80211 debugging
If IEEE80211 debugging is turned on in kernel configs also turn on
LinuxKPI 802.11 and SKB debugging (sysctls) to have them available.

Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D45820

(cherry picked from commit 59d262fe969af5a8a83f0ccd7586c9bd2c8fb1f3)
2024-09-28 10:35:12 +00:00
Bjoern A. Zeeb
f9edc5b3f6 LinuxKPI: move __kmalloc from slab.h to slab.c
In order to allow the allocator to change in the future move it into
the implementation file from being an inline function in the header.

While here factor out the size calculation and add a comment as-to why
this is done.  We will need the size (_s) in the future to make a
decision on how to allocate.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D45815

(cherry picked from commit 1f7df757017404011732196e65981d9325f7a89f)
2024-09-28 10:35:12 +00:00
Fernando Apesteguía
ddbbc129ae faccessat(2): Honor AT_SYMLINK_NOFOLLOW
Make the system call honor `AT_SYMLINK_NOFOLLOW`.

Also enable this from `linux_faccessat2` where the issue arised the first time.
Update manual pages accordingly.

PR:			275295
Reported by:		kenrap@kennethraplee.com
Approved by:		kib@
Differential Revision:	https://reviews.freebsd.org/D46267

(cherry picked from commit 5ab6ed93cd3680f8b69dd4d05823f4740a2bdef9)
2024-09-26 09:13:50 -04:00
Andrew Turner
d5e29c62e9 linux64: Fix the build on arm64 with bti checking
When we enable checking for BTI on arm64 we need to include an ELF
note in all object files linked into a module.

As using objcopy from a binary to an ELF object file doesn't add the
note switch to using .incbin from an assembly file. This allows us to
add the needed note without affecting the included object.

Reviewed by:	imp, kib, emaste
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D45468

(cherry picked from commit bed65d85c631c3a8e60a81a15a5a745c8ef92fbe)
(cherry picked from commit ec69d230933f82c7c142b053882255aa57475463)
2024-09-02 08:48:10 +00:00
Ed Maste
6fb0634bc4 linuxkpi: use canonical tests for is_{zero,broadcast}_ether_addr
They are functionally equivalent, but the updated form mirrors the tests
in sys/net/ethernet.h and avoids confusion.

Reviewed by:	kib
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D21037

(cherry picked from commit a1295b24842d209e6bf93a4823193d56ad2db064)
2024-08-11 19:01:51 -04:00
Vladimir Kondratyev
59d36b8969 LinuxKPI: update linuxkpi_video to Linux 6.6
disable hdmi_audio_infoframe_pack_for_dp function for now as it depends
on not imported yet drm sources and is not used by drm-kmod.

Reviewed by:	manu
Sponsored by:	Serenity CyberSecurity, LLC
Differential Revision:	https://reviews.freebsd.org/D46224

(cherry picked from commit c89d94ad5d95fd15e891b2723caae8a6104ee153)
2024-08-11 13:12:38 +03:00
Vladimir Kondratyev
a9a364864e LinuxKPI: Fix resource leak on pci_iounmap-ing of PCI BAR
If the resource was allocated with want_iomap_res flag set.

Sponsored by:	Serenity CyberSecurity, LLC
MFC after:	1 week
Reviewed by:	manu, bz
Differential Revision:	https://reviews.freebsd.org/D45905

(cherry picked from commit 14fc33ea3a0571ca70e609b6f9e67db39f7c6140)
2024-08-02 00:16:33 +03:00
Vladimir Kondratyev
7403f2c657 LinuxKPI: Add pci_iomap_range function
pci_iomap_range creates a virtual mapping cookie for a PCI BAR.
As compared with pci_iomap it got extra offset parameter.

Sponsored by:	Serenity CyberSecurity, LLC
MFC after:	1 week
Reviewed by:	manu, bz
Differential Revision:	https://reviews.freebsd.org/D45904

(cherry picked from commit fcc350c375f776318d0da8021109631492ab9261)
2024-08-02 00:16:23 +03:00
Vladimir Kondratyev
7cc3cbdaa1 LinuxKPI: Add linux/eventfd.h and linux/memremap.h dummy headers
Sponsored by:	Serenity Cyber Security, LLC
MFC after:	1 week
Reviewed by:	manu
Differential Revision:	https://reviews.freebsd.org/D45848

(cherry picked from commit 7774e08adf6c6364a0c7f07e8c40fb1ea7cc78e5)
2024-08-02 00:15:56 +03:00
Vladimir Kondratyev
d23c4b1a55 LinuxKPI: Add acpi_dev_get_first_match_dev and acpi_device_handle
acpi_dev_get_first_match_dev returns the first match of ACPI device
and acpi_device_handle returns its ACPI handle.

Sponsored by:	Serenity Cyber Security, LLC
MFC after:	1 week
Reviewed by:	manu
Differential Revision:	https://reviews.freebsd.org/D45847

(cherry picked from commit 3e90716331cdbdee7465213d389a33f90dad11cf)
2024-08-02 00:15:51 +03:00
Vladimir Kondratyev
ce2d721b9f LinuxKPI: Add pci_match_id to linux/pci.h
It finds out if a given PCI device matches a given pci_id table.

Sponsored by:	Serenity Cyber Security, LLC
MFC after:	1 week
Reviewed by:	manu
Differential Revision:	https://reviews.freebsd.org/D45846

(cherry picked from commit 5b1171a0b75fc88bffb5a67b0b02d8d59eb8d5c4)
2024-08-02 00:15:44 +03:00
Vladimir Kondratyev
b71e429d54 LinuxKPI: Add devm_device_add_group to linux/device.h
devm_device_add_group creates a managed attribute group for a device.

Sponsored by:	Serenity Cyber Security, LLC
MFC after:	1 week
Reviewed by:	manu
Differential Revision:	https://reviews.freebsd.org/D45845

(cherry picked from commit a1181662d3707d8165d7153a0aa5d76ea1ddc11a)
2024-08-02 00:15:28 +03:00
Vladimir Kondratyev
5a97344123 LinuxKPI: Add page_to_virt function
Sponsored by:	Serenity Cyber Security, LLC
MFC after:	1 week
Reviewed by:	manu
Differential Revision:	https://reviews.freebsd.org/D45843

(cherry picked from commit 80aa295a5272d01b7f21eff6719dcd45e14e8e09)
2024-08-02 00:15:22 +03:00
Vladimir Kondratyev
0ab568c2ff LinuxKPI: Add __diag macros
__diag macros turn individual warnings and errors on and off locally,
depending on version of compiler. Add dummy implementation as drm-kmod
set warnings separately for each file.

Sponsored by:	Serenity Cyber Security, LLC
MFC after:	1 week
Reviewed by:	manu, emaste
Differential Revision:	https://reviews.freebsd.org/D45842

(cherry picked from commit 742088d9fb545296c8677119757a967141ba7d4a)
2024-08-02 00:15:11 +03:00