Commit graph

1114 commits

Author SHA1 Message Date
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
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
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
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
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
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
Vladimir Kondratyev
b5d03f42e9 LinuxKPI: Add kmalloc_size_roundup function
kmalloc_size_roundup reports allocation bucket size for the given size.

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

(cherry picked from commit ab1a5d8e2ade8c706ff8cd7aa3d5c88a95633228)
2024-08-02 00:15:04 +03:00
Vladimir Kondratyev
d8394e282f LinuxKPI: Add kvrealloc to linux/slab.h
Sponsored by:	Serenity Cyber Security, LLC
MFC after:	1 week
Reviewed by:	manu
Differential Revision:	https://reviews.freebsd.org/D45616

(cherry picked from commit ab6e1167909bf1e2792a2ba33000e13d33aaf551)
2024-08-02 00:14:10 +03:00
Vladimir Kondratyev
88ca9c8226 LinuxKPI: Add DEFINE_DEBUGFS_ATTRIBUTE_SIGNED to linux/debugfs.h
Sponsored by:	Serenity CyberSecurity, LLC
MFC after:	1 week
Reviewed by:	manu
Differential Revision:	https://reviews.freebsd.org/D45615

(cherry picked from commit 8c5c572125665e3fd8a033d1a8b0a370e5a43e24)
2024-08-02 00:09:41 +03:00
Vladimir Kondratyev
3eb0293692 LinuxKPI: Remove vmas argument from get_user_pages on KPI layer
To chase Linux kernel 6.5

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

(cherry picked from commit e1b0f431a109683ca7c232fb9282f3afabfdf12d)
2024-08-02 00:09:41 +03:00
Vladimir Kondratyev
f1f6228a66 LinuxKPI: Add linux/nodemask.h
and dummy num_possible_nodes() implementation.
We do not fully support NUMA in LinuxKPI yet.

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

(cherry picked from commit 889f74af66b82e4401fb69ed8af6b9b4f48ce53b)
2024-08-02 00:09:41 +03:00
Vladimir Kondratyev
c0b32a4ea4 LinuxKPI: Remove linux/sched.h include from linux/kernel.h header
This include prevents usage of any kernel.h helpers in sched.h and
all of dependencies. Linux does not have it too.
Fix building of kernel and drm-kmod after than.

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

(cherry picked from commit 256eb8d5361143b7d436a195530e0eefe1450e6d)
2024-08-02 00:09:41 +03:00
Vladimir Kondratyev
fe431f8c08 LinuxKPI: Add header polution to compile linux/numa.h
Sponsored by:	Serenity CyberSecurity, LLC
MFC after:	1 week
Reviewed by:	manu, bz, emaste
Differential Revision:	https://reviews.freebsd.org/D45612

(cherry picked from commit d21316ff22b1468304b6db9c336f66a09c4f7be8)
2024-08-02 00:09:41 +03:00
Vladimir Kondratyev
1e30fc5d7f LinuxKPI: Remove owner argument from class_create function on KPI layer
to chase Linux 6.4

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

(cherry picked from commit 460908ea55e67baf85d5cd1b6093154739cc0b9a)
2024-08-02 00:09:40 +03:00
Vladimir Kondratyev
ddde8df293 LinuxKPI: Add kmap_local_page function
kmap_local_page maps a page for temporary usage

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

(cherry picked from commit 73f3589120e61b4b9df1ef60c5be12ccd81878f2)
2024-08-02 00:09:40 +03:00
Vladimir Kondratyev
4f0f1f1a6e LinuxKPI: Add rb_add_cached function
rb_add_cached inserts node into the leftmost cached tree

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

(cherry picked from commit a5cac2e672a7d94c0391076e7452d6a487f7b5c1)
2024-08-02 00:09:40 +03:00
Vladimir Kondratyev
ad02fbb036 LinuxKPI: Convert Linux integer types to ISO C99 in linux/kstrtox.h
Sponsored by:	Serenity Cyber Security, LLC
MFC after:	1 week
Reviewed by:	bz, emaste
Differential Revision:	https://reviews.freebsd.org/D45465

(cherry picked from commit db42bd1f71b1a29b392aacbd5b7aaca4c8d7e85d)
2024-08-02 00:09:40 +03:00
Vladimir Kondratyev
89e36e9f29 LinuxKPI: Add kstrtoll to linux/kstrtox.h
kstrtoll converts a string to a long long.

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

(cherry picked from commit d207a2dee332706c352bf35c7e6ecea5240b1ceb)
2024-08-02 00:09:40 +03:00
Vladimir Kondratyev
fb884c7244 LinuxKPI: Move kstrto* functions to linux/kstrtox.h
from linux/kernel.h to match Linux and
allow direct linux/kstrtox.h inclusion.

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

(cherry picked from commit a97f3a9ec96a2de542326a158d1ab8e65ad4fe5f)
2024-08-02 00:09:40 +03:00
Vladimir Kondratyev
42aeb3866c LinuxKPI: Add abs_diff to linux/math.h
It returns absolute value of the difference between the arguments.

Add LinuxKPI version check as the macro was moved from drm-kmod to
linux/math.h in Linux kernel commit 46f12960aad (6.6 timeframe).

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

(cherry picked from commit afc450fac9f04f11cd916916ac28ffc52a973e1e)
2024-08-02 00:09:40 +03:00
Vladimir Kondratyev
9cc3f82da4 LinuxKPI: Move linux/math.h content out of linux/kernel.h
To match Linux and allow direct linux/math.h inclusion.

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

(cherry picked from commit 588064e658d32f037854dd852b988728197a28de)
2024-08-02 00:09:39 +03:00
Vladimir Kondratyev
ef2a82120f LinuxKPI: Add min_not_zero() to linux/minmax.h
It returns the minimum that is not zero, except both equals to zero.

Sponsored by:	Serenity Cyber Security, LLC
MFC after:	1 week
Reviewed by:	bz, emaste, ssaxena
Differential Revision:	https://reviews.freebsd.org/D45450
Differential Revision:	https://reviews.freebsd.org/D45451

(cherry picked from commit 07c7c41ca1e31c20c2e2d8fb68c148f521831e4d)
2024-08-02 00:09:39 +03:00
Vladimir Kondratyev
18a9913f9f LinuxKPI: Move linux/minmax.h content out of linux/kernel.h
To match Linux and allow direct linux/minmax.h inclusion.

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

(cherry picked from commit f79474c4e3eeb48c6acb0a9e3163195a50cef577)
2024-08-02 00:09:39 +03:00
Vladimir Kondratyev
80ade5b694 LinuxKPI: Move page_address definition from linux/gfp.h to linux/mm.h
To match Linux. Some future changes may depend on proper location.

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

(cherry picked from commit cb8bfc4db8ca8f4ed03406a554e77a013696c8e0)
2024-08-02 00:09:39 +03:00
Alvin Chen
0ce38f6c0c LinuxKPI: lockdep_assert: wrong 'cond' used in WARN_ON MACRO
'cond' in WARN_ON need be bracketed,
otherwise it is wrong for multiple conditions.

Reviewed by:	wulf
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D44604

(cherry picked from commit 21f4cf5ccf87fd15d4d71f89d4c3ecab13f26146)
2024-08-02 00:09:39 +03:00
Vladimir Kondratyev
eb3e82e917 LinuxKPI: Stub sysfs_remove_link in linux/sysfs.h
sysfs_create_link is stubbed already. Stub sysfs_remove_link too to be
feature-complete.

Sponsored by:	Serenity Cyber Security, LLC
Reviewed by:	emaste
MFC after:	1 week

(cherry picked from commit 4e7aa03b7076353af4b960ade67f093af5736d38)
2024-08-02 00:09:39 +03:00
Vladimir Kondratyev
1a045267a3 LinuxKPI: Add want_init_on_free to linux/mm.h
want_init_on_free returns if heap memory zeroing on free is enabled.
FreeBSD does not zeroes heap memory on free().

Sponsored by:	Serenity Cyber Security
Reviewed by:	emaste
MFC after:	1 week

(cherry picked from commit 56041ee817fff844e5b2de7eedc447e388ab988e)
2024-08-02 00:09:39 +03:00
Vladimir Kondratyev
8ce07593a9 LinuxKPI: Add ACPI_ID_LEN const to linux/mod_devicetable.h
Sponsored by:	Serenity Cyber Security, LLC
Reviewed by:	emaste
MFC after:	1 week

(cherry picked from commit f7ea333e2b20b5850d5be4eee1d26873111f47ff)
2024-08-02 00:09:39 +03:00
Vladimir Kondratyev
acfd6cea1f LinuxKPI: Add pci_dev_id to linux/pci.h
It returns bus/device/function number for given PCI device.
Also add intermediate PCI_DEVID macro used in some drivers.

Sponsored by:	Serenity Cyber Security, LLC
Reviewed by:	emaste
MFC after:	1 week

(cherry picked from commit f1206503e5a0073f56710bfebb6e503dcf612536)
2024-08-02 00:09:38 +03:00
Vladimir Kondratyev
33b5923a9d LinuxKPI: Add the accelerator PCIe class
Sponsored by:	Serenity Cyber Security, LLC
Reviewed by:	emaste
MFC after:	1 week

(cherry picked from commit e8f59f4d31b243a6f296e819a5912ba63789ae32)
2024-08-02 00:09:38 +03:00
Vladimir Kondratyev
fbb9ca960d LinuxKPI: Add PTR_IF macro
Sponsored by:	Serenity Cyber Security, LLC
Reviewed by:	emaste
MFC after:	1 week

(cherry picked from commit e0eeeca8b83a17aeebc4da525e813699bf3fabc2)
2024-08-02 00:09:38 +03:00
Vladimir Kondratyev
b4fb139e28 LinuxKPI: Add vm_flags_(clear|set) functions
Sponsored by:	Serenity Cyber Security, LLC
Reviewed by:	emaste
MFC after:	1 week

(cherry picked from commit 06902a447934e855dc8f7eaf95b4235c684b264d)
2024-08-02 00:09:38 +03:00
Vladimir Kondratyev
4242e224e6 LinuxKPI: Add get_random_u32_below function
get_random_u32_below returns a random integer in the interval [0, ceil),
with uniform distribution.

Sponsored by:	Serenity CyberSecurity, LLC
Reviewed by:	emaste
MFC after:	1 week

(cherry picked from commit 9289c1f6f1514e714b17026c50ec09282f079cba)
2024-08-02 00:09:38 +03:00
Vladimir Kondratyev
5496fab6a2 LinuxKPI: Add VM_ACCESS_FLAGS define to linux/mm.h
VM_ACCESS_FLAGS is a basic access permission flags.

Sponsored by:	Serenity CyberSecurity, LLC
Reviewed by:	emaste
MFC after:	1 week

(cherry picked from commit 38c276a43f2d55e19ff6bd15ab5730315d41e3a8)
2024-08-02 00:09:38 +03:00