mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: JaeGwon Go <ceo@logictree.app>
Cc: linux-usb@vger.kernel.org, westeri@kernel.org,
	andreas.noever@gmail.com, YehezkelShB@gmail.com,
	linux-kernel@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH] thunderbolt: Send header-only XDomain properties changed response
Date: Mon, 2 Nov 2026 15:19:28 +0100	[thread overview]
Message-ID: <20261102141928.GX158991@black.igk.intel.com> (raw)
In-Reply-To: <20261029081834.91559-1-ceo@logictree.app>

Hi,

On Thu, Oct 29, 2026 at 05:18:34PM +0900, JaeGwon Go wrote:
> Commit 19813551701d ("thunderbolt: xdomain: Avoid potential stack OOB
> read") turned struct tb_xdp_properties_changed_response into a union of
> struct tb_xdp_error_response and struct tb_xdp_header, so that
> tb_xdp_handle_error() can safely read the error field of a received
> response. tb_xdp_properties_changed_response() still sends sizeof(res),
> so since that commit the response Linux sends is 36 bytes instead of
> 32: it carries the zeroed error field, and its XDomain length field
> says 6 dwords instead of 5. The other responses changed by that commit
> are not affected, because their non-error members are already larger
> than struct tb_xdp_error_response.
> 
> macOS sends this response as the header only. macOS 27.2 (26B123) keeps
> re-sending PROPERTIES_CHANGED_REQUEST when it gets the longer response:
> after link-up it repeats the request every 1.5 s, ten times, and then
> resets the link, about 15 seconds after it came up. thunderbolt-net
> logs in and passes traffic before the reset. The same host stayed
> connected to the same Mac for about 23 hours while the Mac ran macOS
> 27.0.1, so the change in behavior came with macOS 27.2.
> 
> Send only the header again, as before that commit. The union stays, so
> a received response still has room for the error field. Linux
> requesters accept the shorter response: tb_xdomain_match() requires
> only frame.size >= response_size / 4, and tb_xdp_handle_error() reads
> the error field only when the type is ERROR_RESPONSE.
> 
> Tested on an ASMedia ASM4242 USB4 host running an Ubuntu 7.0.0-38
> kernel, connected to a Mac17,6 running macOS 27.2. With this change
> macOS stops re-sending after the first answers, and tracing shows an
> 8-dword response with length 5, the same as the response macOS sends.
> The link has stayed up for over 1.5 hours, about 80 minutes of which
> carried a multi-gigabyte transfer every few minutes. Not tested: a
> Linux peer, the error response path, and macOS releases other than
> 27.2.
> 
> The analysis, the fix and the tests were done with an AI coding
> assistant.
> 
> Fixes: 19813551701d ("thunderbolt: xdomain: Avoid potential stack OOB read")
> Cc: stable@vger.kernel.org
> Assisted-by: Claude:claude-opus-5-5
> Signed-off-by: JaeGwon Go <ceo@logictree.app>

Applied to thunderbolt.git/fixes, thanks!

      reply	other threads:[~2026-11-02 14:20 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-29  8:18 JaeGwon Go
2026-11-02 14:19 ` Mika Westerberg [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=20261102141928.GX158991@black.igk.intel.com \
    --to=mika.westerberg@linux.intel.com \
    --cc=YehezkelShB@gmail.com \
    --cc=andreas.noever@gmail.com \
    --cc=ceo@logictree.app \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=westeri@kernel.org \
    /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

all inboxes | Powered by JetHome®