<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/compat, branch releng/13.4</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F13.4</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F13.4'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2024-08-01T23:12:32Z</updated>
<entry>
<title>Revert "LinuxKPI: Automatically enable drm support for devices named "drmn""</title>
<updated>2024-08-01T23:12:32Z</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2024-08-01T23:12:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5eb1ab19a359a9639627686ba6af6c02d6ce1cf8'/>
<id>urn:sha1:5eb1ab19a359a9639627686ba6af6c02d6ce1cf8</id>
<content type='text'>
This reverts commit 85da0abada244f90dc6e9ce36c75492f0aa9bf02.

It is based on other not MFC-ed commit.
</content>
</entry>
<entry>
<title>LinuxKPI: Automatically enable drm support for devices named "drmn"</title>
<updated>2024-08-01T22:31:06Z</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2024-07-21T13:02:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=85da0abada244f90dc6e9ce36c75492f0aa9bf02'/>
<id>urn:sha1:85da0abada244f90dc6e9ce36c75492f0aa9bf02</id>
<content type='text'>
This allows replace linux_pci_(un)register_drm_driver calls with driver
renaming to FreeBSD name.

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

(cherry picked from commit 5d20075f8b9f7107aa0a246e5165d9816e816a44)
</content>
</entry>
<entry>
<title>LinuxKPI: 802.11: make sure we can send DISASSOC or DEAUTH frames</title>
<updated>2024-06-14T14:55:16Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2024-06-05T22:54:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=07da0ad63aa52999c0a381440104122a770decb5'/>
<id>urn:sha1:07da0ad63aa52999c0a381440104122a770decb5</id>
<content type='text'>
The "Invalid TXQ" error from iwlwifi seems to be triggered by a
frame being sent for a sta which is no longer known to the driver/fw.

While we make sure to trigger the sending of the frame in net80211
early enough (by calling (*iv_newstate)() early on rather than at
the end), TX in LinuxKPI is run in a deferred task.  When we drop the
net80211 ic lock again and re-acquire the LHW lock the packet may not
yet have made it to the driver.
Work around this between the (ic and lhw) locks by making sure
(a) no new packets get queued after we return from (*iv_newstate)(),
and (b) the TX task has run or gets cancelled and we manually push
any remaining packets out (or let lsta_free() clean them up).
The disabled packet queuing now also needs to be re-enabled in
scan_to_auth() in case an lsta is staying in service or gets re-used.

Also make sure that any following lkpi_wake_tx_queues() calls no
longer ignore queues which have not seen a prior dequeue.
This former workaround "feature" (ltxq-&gt;seen_dequeue) should be
fully garbage collected in a later change on its own.

Sponsored by:	The FreeBSD Foundation
PR:		274382
Tested by:	emaste, lwhsu, thj, rkoberman at gmail.com
Accepted by:	adrian
Differential Revision: https://reviews.freebsd.org/D45508

(cherry picked from commit 886653492945f7e945eb9bdaf5bc2ae26df96236)
</content>
</entry>
<entry>
<title>LinuxKPI: 802.11: close race lkpi_sta_scan_to_auth()/(*iv_update_bss)()</title>
<updated>2024-06-14T14:55:16Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2024-02-18T20:57:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=cafefba481250d7b270bb9fa54a0aa255fea0289'/>
<id>urn:sha1:cafefba481250d7b270bb9fa54a0aa255fea0289</id>
<content type='text'>
We have to unlock the net80211 ic lock in order to be able to call
sleepable downcalls to the driver/firmware; a 2nd thread may go through
net80211::join1() and (*iv_update_bss)() after we checked and unlocked.
Re-check status at the end of the function under the ic lock so that we
do not accidentally set lvif_bss_synched to true again despite it no
longer being true.

This should fix a race where we lost the (*iv_update_bss)() state
during startup where one SCAN-&gt;AUTH is followed by a (then) AUTH-&gt;AUTH
and lkpi_sta_a_to_a() did the wrong thing.

Once we re-consider net80211 state and allowing a second join
on a different node or iv_bss update without previously tearing down
the older node we can likely undo a lot of these extra checks and
workarounds.

Sponsored by:	The FreeBSD Foundation (updated version)
Tested by:	emaste (on and off)
Reviewd by:	cc
Differential Revision: https://reviews.freebsd.org/D43967

(cherry picked from commit 105b9df26ee0286f3a5a7d191075e068dee1c4a2)
</content>
</entry>
<entry>
<title>LinuxKPI: 802.11: lock MO tx/wake_tx_queue() downcalls</title>
<updated>2024-06-14T14:55:16Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2024-02-18T21:07:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=66627e5c1345aa46d0ea4cafb0280b942bbe86b4'/>
<id>urn:sha1:66627e5c1345aa46d0ea4cafb0280b942bbe86b4</id>
<content type='text'>
Lock the two TX MO downcalls into driver/firmware in
lkpi_80211_txq_tx_one() to make sure they cannot happen in the
middle of other (net80211 triggered) updates calling down into
the driver/firmware.

Sponsored by:	The FreeBSD Foundation (commit)
Reviewed by:	cc
Differential Revision: https://reviews.freebsd.org/D43966

(cherry picked from commit 45bce6fa306fc3a211949f63c9bbb7932fe5a3bd)
</content>
</entry>
<entry>
<title>LinuxKPI: 802.11: rename chanctx_conf for consistency</title>
<updated>2024-06-14T14:55:16Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2024-05-13T21:03:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f70e21e70b1d2698b4b22942930c5db2ae603b31'/>
<id>urn:sha1:f70e21e70b1d2698b4b22942930c5db2ae603b31</id>
<content type='text'>
We used to call the struct ieee80211_chanctx_conf variable "conf"
in some places but that becomes confusing with bss_conf and other
"conf" bits.  On the vif it is already called chanctx_conf thus also
rename it on the internal struct lkpi_chanctx and for our variables
in the implementation.

This should not have any external visibility.
No functional changes intended.

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

(cherry picked from commit d1af434d99941d32a09c48fb3ef77ef83e203d29)
</content>
</entry>
<entry>
<title>LinuxKPI: 802.11: change teardown order to avoid iwlwifi firmware crashes</title>
<updated>2024-06-14T14:55:16Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2024-05-22T02:24:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=def43d8a4a3c0a2868fe74ef6aefe16c435ea19c'/>
<id>urn:sha1:def43d8a4a3c0a2868fe74ef6aefe16c435ea19c</id>
<content type='text'>
While the previous order worked well for iwlwifi 22000 and later chipsets
(AXxxx, BE200), earlier chipsets had trouble and ran into firmware crashes.
Change the teardown order to avoid these problems.  The inline comments
in lkpi_sta_run_to_init() (and lkpi_disassoc()) try to document the new
order and also the old problems we were seeing (too early sta removal or
silent non-removal) leading to follow-up problems.

There is a possible further problem still lingering but a lot harder to
trigger (see comment in review) and likely related to some other doings
so we'll track it separately.

Sponsored by:	The FreeBSD Foundation
PR:		275255
Tested with:	AX210, 8265 (bz); 9260 (Bakul Shah)
Differential Revision: https://reviews.freebsd.org/D45293

(cherry picked from commit 5a4d24610fc6143ac1d570fe2b5160e8ae893c2c)
</content>
</entry>
<entry>
<title>LinuxKPI: 802.11: disable early queue wakeup workaround; better classify</title>
<updated>2024-06-14T14:55:16Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2024-02-16T21:14:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b5e3a31ac050dd376d19682fe0e595692ec3379f'/>
<id>urn:sha1:b5e3a31ac050dd376d19682fe0e595692ec3379f</id>
<content type='text'>
We used to call lkpi_wake_tx_queues() for all queues early on in order
to make sure they are ready.  Turns out whatever logic in iwlwifi
startup is working correctly these days under LinuxKPI so this is no
longer needed.  As the comment indicated the "workaround" did not
always work.  Disable it for now.

The second part of the improvement is to properly classify Non-QOS
non-data frames (mgmt and ctl frames for now, unless we have to be
even more careful in the future about certain sub-types) as TID 7/VO.
Contrary to net80211 we must not promote PAE frames.

PR:		274382
Reviewed by:	cc
Differential Revision: https://reviews.freebsd.org/D43944

(cherry picked from commit 1665ef979d3adab05d178480077674ab5978e4f0)
</content>
</entry>
<entry>
<title>LinuxKPI: 802.11: remove unneeded re-lookup in lkpi_80211_txq_tx_one()</title>
<updated>2024-06-14T14:55:16Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2024-02-18T18:07:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=24cb6fe1589e6f74d36792845c9e4fb7eb556aea'/>
<id>urn:sha1:24cb6fe1589e6f74d36792845c9e4fb7eb556aea</id>
<content type='text'>
Given we are passed the lsta in as a function argument there is no
need to re-lookup the sta by ni and possibly not find it.
We know the sta and ni from the lsta and whether it is uploaded to
firmware or not we can check directly from the local lsta flag.

Reviewed by:	cc
Differential Revision: https://reviews.freebsd.org/D43965

(cherry picked from commit ac867c20e67423e5019ab90148c387ea127eeffb)
</content>
</entry>
<entry>
<title>LinuxKPI: 802.11: implement a deferred RX path</title>
<updated>2024-06-14T14:55:15Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2024-02-12T16:03:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2a12368e7ced1c103d5be14e545f3e0f25edf947'/>
<id>urn:sha1:2a12368e7ced1c103d5be14e545f3e0f25edf947</id>
<content type='text'>
Some calls, e.g., action frames cause us to call through all the
way down to firmware from the RX path without any deferral in
net80211.

For LinuxKPI and iwlwifi this goes (with omissions) like this:
lkpi_napi_task -&gt; linuxkpi_ieee80211_rx -&gt; ieee80211_input_mimo -&gt;
sta_input -&gt; ht_recv_action_ba_addba_request -&gt;
lkpi_ic_ampdu_rx_start -&gt; iwl_mvm_mac_ampdu_action -&gt;
iwl_trans_txq_send_hcmd.  At that point we are waiting for an
interrupt from the firmware but given the lkpi_napi_task has not
finished (and may have more to dispatch based on budget and what
was received) we will not see the new interrupt/fw response.
With no answer from the firmware, the software timeout in the
driver kills the command and the firmware and issues a complete
restart.

Implement the deferred RX path in LinuxKPI for the moment.
At a later point we should carefully shift this into net80211.

This fixes the hangs for (*ic_ampdu_rx_start)() calls with iwlwifi.

PR:		276083
Reviewed by:	cc
Differential Revision: https://reviews.freebsd.org/D43968

(cherry picked from commit 759a996d610d9354aac5c48a6bdc9cedcba2f48b)
</content>
</entry>
</feed>
