Netdev List
 help / color / mirror / Atom feed
From: Matthew Schwartz <matthew.schwartz@linux.dev>
To: Gal Pressman <gal@nvidia.com>
Cc: Dragos Tatulea <dtatulea@nvidia.com>,
	Jakub Kicinski <kuba@kernel.org>,
	regressions@lists.linux.dev, netdev@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: Mon, 11 May 2026 17:20:06 -0700	[thread overview]
Message-ID: <abe0ffb6-0c46-4e6f-87e6-bd8be1407469@linux.dev> (raw)
In-Reply-To: <677976cf-d438-4997-bfc6-2691e5579d2c@nvidia.com>

On 5/10/26 5:38 AM, Gal Pressman wrote:
> On 06/05/2026 17:20, Gal Pressman wrote:
>> On 06/05/2026 10:49, Matthew Schwartz wrote:
>>>
>>>
>>>> On May 5, 2026, at 8:05 AM, Gal Pressman <gal@nvidia.com> wrote:
>>>>
>>>> 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?
>>>
>>> Sorry for the delay. I applied this diff and I’m able to stream from my host to clients again without any issues.
>>>
>>> If you send this version upstream, feel free to add my Tested-by to it.
>>
>> Thanks for verifying!
>>
>> I will finalize this and submit a proper patch soon.
> 
> Hey Matthew,
> 
> I made a small change to the patch, can you please verify it still fixes
> the issue?

Yes, this diff also fixes the issue.

> 
> diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c
> index a0813d425b71..71df45f9488a 100644
> --- a/net/ipv4/udp_offload.c
> +++ b/net/ipv4/udp_offload.c
> @@ -604,7 +604,7 @@ struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb,
>  		       seg->data_len);
>  	check = csum16_add(csum16_sub(uh->check, uh->len), newlen);
> 
> -	uh->len = newlen;
> +	uh->len = skb_is_gso(seg) ? msslen : newlen;
>  	uh->check = check;
> 
>  	if (seg->ip_summed == CHECKSUM_PARTIAL)


      reply	other threads:[~2026-05-12  0:20 UTC|newest]

Thread overview: 8+ 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
2026-05-06  7:49       ` Matthew Schwartz
2026-05-06 14:20         ` Gal Pressman
2026-05-10 12:38           ` Gal Pressman
2026-05-12  0:20             ` Matthew Schwartz [this message]

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=abe0ffb6-0c46-4e6f-87e6-bd8be1407469@linux.dev \
    --to=matthew.schwartz@linux.dev \
    --cc=dtatulea@nvidia.com \
    --cc=gal@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --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