| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add __deprecated decorator. This is for a deprecated interface. copystr
is tagged with this today in copy(9), but don't actually provide it or
use it. copystr is a #define so adding it will have to wait.
LinuxKPI was defining this away completely in compiler.h. Since this is
shared between Linux KPI consumers and OpenZFS, if it's already defined,
use the FreeBSD sys/cdefs.h version, otherwise define it away. For
OpenZFS this will retain it, while for Linux KPI it will tend to drop it
(I think always, but I didn't look at everything).
Sponsored by: Netflix
Reviewed by: jhb, emaste
Differential Revision: https://reviews.freebsd.org/D46137
(cherry picked from commit 16672453f12586703f1c51d909bd1900691bf884)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
| |
|
|
|
|
|
| |
MFC after: 1 week
(cherry picked from commit b4856b8e9d872ca6ee0c4ef43e7047693ef7645b)
(cherry picked from commit 5942658cf3573bc3df9c378b688beb7549754773)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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)
(cherry picked from commit 6fb0634bc4ce5fe32312a53031e56fe866b0b24d)
|
| |
|
|
|
|
|
|
|
|
|
| |
Rather than using the values and leaving net80211 names in a comment
define the LinuxKPI IEEE80211_HT_CAP_* to the net80211 IEEE80211_HTCAP_*
names. That way errors like the one fixed in 3e0915b7b685 are less
likely to happen.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 63a327b954a38ecd46934a2911321f3ea3d500b3)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
IEEE80211_HT_CAP_RX_STBC was set to 0x100 instead of 0x300.
Correct to get the expected behavior.
Sponsored by: The FreeBSD Foundation
Fixes: b0f73768220e9 LinuxKPI: 802.11 header updates
Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D45506
(cherry picked from commit 3e0915b7b6857afdbd283f2d448906e6a032ee07)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the SET_SYSTEM_SLEEP_PM_OPS() by factoring some other macro code
out in order to set the suspend/resume functions when the struct is
already given. Such is the case in iwlwifi d3.
Also add an initial implementation of device_can_wakeup(). Though
this is likely all we need we have no way of setting the flag for it
yet so leave a pr_debug() and a comment there as well. Until we want
to support WoWLAN this is likely not needed for wireless.
Doing it the proper way checking a bool in 'struct dev_pm_info' would
change 'struct device' and with that 'struct pci_dev' and break the
KBI. In favour of mergeability this version does not implement the
full functionality yet.
Both help to make an updated iwlwifi d3 compile.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D45358
(cherry picked from commit 3753988c5d22393fbdefb6aa16b5a5a699d05642)
|
| |
|
|
|
|
|
|
| |
Sponsored by: The FreeBSD Foundation
Reviewed by: emaste (earlier version, found another two)
Differential Revision: https://reviews.freebsd.org/D45386
(cherry picked from commit ecd1d1f1dac49c7ecbf1e7c5ffc64356c2851efd)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Add FIELD_PREP_CONST() like FIELD_PREP() without any extra checks likely
expected on this version in Linux. This is called by an updated wireless
driver.
Sposnored by: The FreeBSD Foundation
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D45180
(cherry picked from commit bb025df257386c5d1087b652e8ed951bceb89862)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add kvmemdup() as a variant of kmemdup(). While currently it could
just call kmemdup() we duplicate the code and use kvmalloc() in case
someone will change the implementation of kvmalloc/kvfree in slab.h.
This is used by an updated wireless driver.
Sponsored by: The FreeBSD Foundation
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D45181
(cherry picked from commit 8e4b8e9d807aa379d2a1c3aaac2537ba7d6bf0bf)
|
| |
|
|
|
|
| |
Reported by: markj (2023-05-24; sorry took me a while)
(cherry picked from commit 563c72e2137cb8cb9eb0eabf78319e8fe9c8aedd)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add checks for __counted_by(_x) and __nonstring as and depending
on compiler support enable the attribute/feature.
This is needed to make mtk76 and ath1xk drivers compile.
Sposnored by: The FreeBSD Foundation
Reviewed by: emaste, dim
Differential Revision: https://reviews.freebsd.org/D44587
(cherry picked from commit 2a8c50592f7fce8bceedf004f674a5a9eae0fd46)
|
| |
|
|
|
|
|
|
|
|
| |
mt76 calls devm_kfree() directly, so alias it to our
lkpi_devm_kmalloc_release() function.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D44589
(cherry picked from commit 170c2e0e2bb1b2d9a7661ba729f8264381c9d9d7)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
A newer version of iwlwifi requires a return value from napi_schedule();
unclear if the function always should have been bool. Add the bool to test
based on the napi_schedule_prep() result.
Also add napi_is_scheduled() for rtw89.
Sponsored by: The FreeBSD Foundation
Reviewed by: emaste (previous version)
Differential Revision: https://reviews.freebsd.org/D44591
(cherry picked from commit 21761f2ede4ebad13e78112b9409c1f20f946781)
|
| |
|
|
|
|
|
|
|
|
|
| |
Implement skb_queue_splice_tail_init() and SKB_DATA_ALIGN() as
needed by the mt76 wireless driver.
Sponsord by: The FreeBD Foundation
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D44590
(cherry picked from commit 3d3ec17825a124f0119d76c4d2523d73012fa226)
|
| |
|
|
|
|
|
|
|
|
|
| |
Add dev_alloc_pages() though it seems a weird KPI, not passing a dev
despite its name. Used by updated wireless driver.
Sponsored by: The FreeBSD Foundation
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D44588
(cherry picked from commit 738c02ba24c66391870067602f1c9c030d5c5e5d)
|
| |
|
|
|
|
|
|
|
|
| |
Just like BITS_TO_LONG() ... used in rtw89.
Sponsored by: The FreeBSD Foundation
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D44603
(cherry picked from commit f674f016c03d49e14f1c651ed088a6f2d01a62ee)
|
| |
|
|
|
|
|
|
| |
Sponsored by: The FreeBSD Foundation
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D44586
(cherry picked from commit 218b2ccf8cc90698487515c681f3e3453b0dcead)
|
| |
|
|
|
|
|
|
|
|
| |
Updated wireless drivers require more knowledge about PCI (BAR) bits.
Sponsored by: The FreeBSD Foundation
Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D44573
(cherry picked from commit a1cdddcf1596d258ce0b01b156dfd9921bd60e08)
|
| |
|
|
|
|
|
|
| |
Add PCI_VENDOR_ID_ITTIM as needed by mt76.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit ce707e674f7941c0743e72193c433fcf554a82b5)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The variable fileid stores the result from kern_kldload() but never gets
used. Since the third parameter `*fileid` of kern_kldload() can be NULL,
this unused variable can be safely removed.
No functional change intended.
Reviewed by: emaste, bz, #linuxkpi
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D44583
(cherry picked from commit 317cc829ee227cfdffe7b25125c070112ce0c2f1)
(cherry picked from commit d4d5aed66a3f4323cf23f1a849b98d8570b403bf)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Correct skb_queue_tail to queue the buffer at the tail of the skbuff.
The skbuff is a circular doubly-linked list, and we call with a pointer
to the head of the list. Thus queueing before the head gives us a
queueing at the tail.
As a motivating factor, the current behaviour (queueing at the head) was
causing frequent kernel panics from my RTL8822BE wireless card, which
uses the rtw88 driver. Interrupts can cause buffers to be added to the
rtwdev c2h_queue while the queue is being drained in rtw_c2h_work.
Queueing at the head would leave the nascent entry in the linked list
pointing to the old, now freed, memory for the buffer being processed.
When rtw_c2h_work is next called, we try reading this and so panic.
Reviewed by: emaste, bz
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D44192
(cherry picked from commit d3befb534b9c8cd80f1b8d75ce6451e3f62b8ba9)
(cherry picked from commit 95a7c6f18a6a28cf866384ff60b587ec30be1cd1)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
It seems during the initial buildup of the file, the defines were
either mixed or not flagged as "FIXME".
Define the values through to the net80211 definitions and also
annotate them by at least some standards reference.
Fixes: 6b4cac814e32f
Reviewed by: cc
Differential Revision: https://reviews.freebsd.org/D43658
(cherry picked from commit 53eb2c63c9628f7f19d88d759e1932c10c9f08af)
|
| |
|
|
|
|
|
|
|
|
| |
For iwlwifi(4) d3.c we need another struct in struct ieee80211_key_seq
and related WLAN_KEY_LEN_* defines in.
Reviewed by: cc, emaste
Differential Revision: https://reviews.freebsd.org/D43646
(cherry picked from commit 2f029bf911e29dc46c32ea142daba4f26a2078f4)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix defines and structures to use proper types.
Bring in basic ni->sta synchronization, some channel width handling,
and overload the net80211 functions so that we can talk to
driver/firmware to setup parameters. We will likely not need one
or two of those but it is good for tracing currently.
Cover HT and bits of VHT code in LinuxKPI behind apropriate #ifdef
which are currently not enabled (like LKPI_80211_HW_CRYPTO) until
confirmed to work.
Last, IEEE80211_AMPDU_RX_START made some firmware unhappy.
This will allow others to work on it and test as well.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 9fb914634eff85b3b36bcbf39c1faf2967b0aa9e)
|
| |
|
|
|
|
|
|
|
| |
memset_after() is needed by iwlwifi d3.c.
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D43644
(cherry picked from commit 2d9d35837d8ea3ee7d7447d63a8755d45ec2fd96)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Sort the dev_<loglevel> functions by loglevel order, add the dev_alert()
version and an indentation change.
No functional changes.
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D43719
(cherry picked from commit 70617458676eb0b0076aa19657d21f2a9f3b704a)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Substituting 'uma_align_cache' by the appropriately named accessor
uma_get_cache_align_mask() made apparent that dma_get_cache_alignment()
was off by one, since it was defined to be the mask derived from the
alignment value.
Reviewed by: markj, bz
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D42264
(cherry picked from commit 2c7dd66d09a1b92a4698232996cded6e5315b3bd)
Approved by: markj (mentor)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Create the uma_get_cache_align_mask() accessor and put it in a separate
private header so as to minimize namespace pollution in header/source
files that need only this function and not the whole 'uma.h' header.
Make sure the accessors have '_mask' as a suffix, so that callers are
aware that the real alignment is the power of two that is the mask plus
one. Rename the stem to something more explicit. Rename
uma_set_cache_align_mask()'s single parameter to 'mask'.
Hide 'uma_align_cache' to ensure that it cannot be set in any other way
then by a call to uma_set_cache_align_mask(), which will perform sanity
checks in a further commit. While here, rename it to
'uma_cache_align_mask'.
This is also in preparation for some further changes, such as improving
the sanity checks, eliminating internal resolving of UMA_ALIGN_CACHE and
changing the type of the 'uma_cache_align_mask' variable.
Reviewed by: markj, kib
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D42258
(cherry picked from commit dc8f7692fd1de628814f4eaf4a233dccf4c92199)
Approved by: markj (mentor)
|
| |
|
|
|
|
|
|
|
| |
It seems the mac_header can be set to offset 0 for frames received.
Remove the warning splattering messages to the console for each packet.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit f0e59b6903c881859d7f4eaf269b2336b774c7bc)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adjust and add structs, fields, functions to make more modern versions
of LinuxKPI based wireless drivers (based on wireless-testing (
wt-2023-06-09, wt-2023-07-24, and later)) compile.
Some of these changes can only be applied once all drivers get
updated to not break the old versions currently in the tree.
Mark those changes with __FOR_LATER_DRV_UPDATE for now and flip the
switch at a later point.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit adff403fe7a870c5b7a2d7e003d445c3b409bc0c)
|
| |
|
|
|
|
|
|
| |
Add dummy implementation of skb_cow_head().
Sponsored by: The FreeBSD Foundation
(cherry picked from commit e039b38d4652b6a68567f8d632c3dfa4f15c40f6)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 3e0856b63fe0e375a0951e05c2ef98bb2ebd9421 updated
__sg_alloc_table_from_pages to use the same API as linux, but modified
the loop condition when going over the pages in a sg list. Part of the
change included moving the sg_next call out of the for loop and into the
body, which causes an off by one error when traversing the list. Since
sg_next is called before the loop body it will skip the first element
and read one past the last element.
This caused panics when running PRIME with nvidia-drm as the off-by-one
issue causes a NULL dereference.
(cherry picked from commit 3f686532c9b4fd603d4ad2d3392232cff24188f4)
Commit 3f686532c9b4 tried to fix an issue with not properly starting
at the first page in the sg list to prevent a panic. This worked but
with the side effect of incrementing "s" during the final iteration
causing it to be NULL since the list had ended.
In cases non-DEBUG kernels this causes a panic with drm-5.15, since
"s" is NULL when we later pass it to sg_mark_end().
This change decouples the iteration sg from the return value so that
it is never incremented past the final page in the chain.
(cherry picked from commit 09b0401e91a92bcb58ea1873857b42f8211f660f)
|
| |
|
|
|
|
|
|
|
| |
Fix arguments to a trace line and remove another trace line until we
actually will have the skb to trace along with a future implementation.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 149c457de14a06a40e0419d7a4249b1a3b01ae7a)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement mul_u64_u64_div_u64() for an updated iwlwifi driver (though
we do not yet use it there; it is used for in-kernel ptp on wifi).
Sponsored by: The FreeBSD Foundation
(cherry picked from commit b80ea452375f52a3ab7d82a9aef10da0d89985d9)
Unbalanced parentheses broke the build; re-balance.
Fixes: b80ea452375f ("LinuxKPI: implement mul_u64_u64_div_u64()")
(cherry picked from commit dabbbebcb0f5ced163454cd08b78e551b4a365b5)
linuxkpi math: fix kassert in math64.h
Include <sys/systm.h> in math64.h, so that KASSERT and bool are
defined, to allow compilation to succeed after
b80ea452375f52a3ab7d82a9aef10da0d89985d9 and dabbbebcb0f5...
(cherry picked from commit b6a61d6836d90ff2756d804eb981a02b0828f496)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Replace FreeBSD native VM_PAGE_TO_PHYS() calls with page_to_phys()
allowing us to work on a struct page in the future using the one
single public Linux KPI interface to map to a native FreeBSD vm_page.
This should be a NOP.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit d1ea07642c47e26effec58f53b7369bf5f797252)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We currently define (Linux) page to (FreeBSD) vm_page.
Cleanup some of the direct struct vm_page and vm_page_t declarations
and usages in the Linux KPI and make them 'struct page' or
'struct page *' to prepare for more upcoming work.
This should be a NOP.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 9e9c682ff3a1aec20a7e5f5b1dd88ceaec7c3950)
|
| |
|
|
|
|
|
|
|
| |
Add two more PCI_EXP_LNKSTA_CLS constants to the compat defines
needed by wireless drivers.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit f74c09f3ec69a6cdba46aa821ab665d2f87142f7)
|
| |
|
|
|
|
|
|
|
| |
Implementation of get_random_u32_inclusive().
This is needed by an update for wireless drivers.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 1dcd1a539275fe69173bfc4dfc32c963fc7dcdbe)
|
| |
|
|
|
|
|
|
|
| |
Implement list_count_nodes() using a simple loop. This is needed by
an updated wireless driver.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 1b18fb7faa75cc6dfa2e253190b41e63a997ca9d)
|
| |
|
|
|
|
|
|
|
|
| |
jiffies_to_msecs() is expected to return an uint_t. In order to avoid
changing printf format strings, properly cast the result to the
expected type.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 08bc2cc4c4d8e94ad1db63f97d923dee18bee668)
|
| |
|
|
|
|
|
| |
While we deal with 0 returned, some drivers directly use and check for
DMA_MAPPING_ERROR. Add the case and check for both in dma_mapping_error().
(cherry picked from commit 0b9bc97342f98a911985ace5527aef97863dfd23)
|
| |
|
|
|
|
|
| |
Remove /^/[*/]\s*\$FreeBSD\$.*\n/
Similar commit in current:
(cherry picked from commit 71625ec9ad2a)
|
| |
|
|
|
|
|
| |
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
Similar commit in current:
(cherry picked from commit 95ee2897e98f)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
These are required by some linux driver like:
https://github.com/beckhoff/bbapi
Reviewed by: manu
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D39554
(cherry picked from commit 740d76544ad8a59f1be53584a0aa5bbbe00833ee)
|
| |
|
|
|
|
|
|
|
|
|
| |
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix
(cherry picked from commit 4d846d260e2b9a3d4d0a701462568268cbfe7a5b)
|
| |
|
|
|
|
|
|
|
|
|
| |
Implement timer_{delete,shutdown}_sync(), which do not seem to require
anything additional to the already existing del_timer_sync().
Sponsored by: The FreeBSD Foundation
Reviewed by: hselasky
Differential Revision: https://reviews.freebsd.org/D40124
(cherry picked from commit 2e07e885d65973f13d6111f7e0fcfb848a68082e)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Given we do not seem to support ioremap() do not support the "devm"
version either and simply return NULL, which means we do not have
to keep track of the memory to be freed on device free later.
Sponsored by: The FreeBSD Foundation
Reviewed by: hselasky
Differential Revision: https://reviews.freebsd.org/D40173
(cherry picked from commit 4cbd427788ec625f17c1ecdfccbb7b06c1c908d9)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Merge the original addition of stddef.h.
(cherry picked from commit 7c7419f60cafa4f666f5a22b5e5f090081516cd2)
Add a struct_group() macro needed by a wireless driver.
Sponsored by: The FreeBSD Foundation
Reviewed by: hselasky
Differential Revision: https://reviews.freebsd.org/D40138
(cherry picked from commit 7c0c69d1a0f3735e315a48436bffbd482f956270)
|
| |
|
|
|
|
|
|
|
| |
Add a wrapper for ktime_get_real_ts64() used by a wireless driver.
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D40246
(cherry picked from commit b889315da3009256c5078e629a28763d981b70ad)
|