From: Gal Pressman <gal@nvidia.com>
To: Matthew Schwartz <matthew.schwartz@linux.dev>,
Dragos Tatulea <dtatulea@nvidia.com>,
Jakub Kicinski <kuba@kernel.org>
Cc: regressions@lists.linux.dev, netdev@vger.kernel.org,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [REGRESSION] aquantia: Sunshine/Moonlight UDP video streaming broken since 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL")
Date: Tue, 5 May 2026 18:05:22 +0300 [thread overview]
Message-ID: <980382a2-3b8c-4da1-ac9b-efd8c0d2c1be@nvidia.com> (raw)
In-Reply-To: <cdce7fbb-671d-48b0-95ff-56b882d3e9a5@linux.dev>
On 27/04/2026 21:26, Matthew Schwartz wrote:
> On 4/27/26 11:09 AM, Gal Pressman wrote:
>> Hello Matthew,
>>
>> On 27/04/2026 2:20, Matthew Schwartz wrote:
>>> Hello,
>>>
>>> When using a previously working setup of remote streaming from my workstation to another device via Sunshine (the host server) and Moonlight (the client app) on my home network, I no longer receive any video output on the client app after upgrading my host workstation to kernel 7.0. Reverting back to kernel 6.19 on the host restored my setup to a working state.
>>>
>>> After bisecting, I landed on 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") as the first bad commit. I confirmed this by moving the cable to my second on-board NIC (Intel) on the same workstation, which restored video output without any other kernel changes. My affected on-board NIC is Aquantia AQC113 [1d6a:04c0] (rev 03), atlantic driver, firmware 1.3.34, MTU 1500.
>>>
>>> Looking into it a bit further, ethtool -K enp97s0 tx-udp-segmentation off also serves as a workaround on my Aquantia port without changing to my other ethernet port. The working Intel NIC reports tx-udp-segmentation as "off [fixed]", so traffic falls back to software UDP segmentation on there.
>>>
>>> Please let me know if there's any additional info I can provide.
>>>
>>> Thanks,
>>> Matt
>>>
>>> #regzbot introduced: 5b4015ad833c
>>
>> Thank you for the report and the bisect!
>>
>> I will take a look and try to figure out what's wrong (though I don't
>> have real hardware to test on).
>> Is the userspace app open source? can I see its code and try to run it
>> myself?
>
> Thanks for the reply. The code for Sunshine is available here: https://github.com/LizardByte/Sunshine and the code for Moonlight is here: https://github.com/moonlight-stream/moonlight-qt.
>
> I have been using the Arch Linux Sunshine package which I installed by following the Linux instructions here: https://docs.lizardbyte.dev/projects/sunshine/latest/md_docs_2getting__started.html, but there are also binaries for other distros or it's buildable from source. For Moonlight, I have been using the Flatpak distributed on Flathub because the client device runs an atomic rootfs, but you can also use any other device that Moonlight supports.
>
>>
>> I will be OOO for the rest of the week, hope to have some meaningful
>> reply by the end of next week.
>
I think I see the issue, do you mind testing the following diff?
index a0813d425b71..5bd1706b11b0 100644
--- a/net/ipv4/udp_offload.c
+++ b/net/ipv4/udp_offload.c
@@ -599,10 +599,22 @@ struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb,
uh = udp_hdr(seg);
}
- /* last packet can be partial gso_size, account for that in checksum */
- newlen = htons(skb_tail_pointer(seg) - skb_transport_header(seg) +
- seg->data_len);
- check = csum16_add(csum16_sub(uh->check, uh->len), newlen);
+ if (skb_is_gso(seg)) {
+ newlen = msslen;
+ } else {
+ /* last packet can be partial gso_size, account for that in
+ * checksum.
+ */
+ newlen = htons(skb_tail_pointer(seg) -
+ skb_transport_header(seg) + seg->data_len);
+ check = csum16_add(csum16_sub(uh->check, uh->len), newlen);
+ }
uh->len = newlen;
uh->check = check;
next prev parent reply other threads:[~2026-05-05 15:05 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-26 23:20 [REGRESSION] aquantia: Sunshine/Moonlight UDP video streaming broken since 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") Matthew Schwartz
2026-04-27 18:09 ` Gal Pressman
2026-04-27 18:26 ` Matthew Schwartz
2026-05-05 15:05 ` Gal Pressman [this message]
2026-05-06 7:49 ` Matthew Schwartz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=980382a2-3b8c-4da1-ac9b-efd8c0d2c1be@nvidia.com \
--to=gal@nvidia.com \
--cc=dtatulea@nvidia.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matthew.schwartz@linux.dev \
--cc=netdev@vger.kernel.org \
--cc=regressions@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox