From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
To: Jiasheng Jiang <jiashengjiangcool@gmail.com>
Cc: Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
"andrzej.p@samsung.com" <andrzej.p@samsung.com>,
"bigeasy@linutronix.de" <bigeasy@linutronix.de>,
"chenyufeng@iie.ac.cn" <chenyufeng@iie.ac.cn>,
"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
"nab@linux-iscsi.org" <nab@linux-iscsi.org>
Subject: Re: [PATCH] usb: gadget: f_tcm: Fix NULL pointer dereferences in nexus handling
Date: Thu, 19 Feb 2026 02:13:12 +0000 [thread overview]
Message-ID: <20260219021310.e5aycj3h5rijq45w@synopsys.com> (raw)
In-Reply-To: <20260219014804.14705-1-jiashengjiangcool@gmail.com>
On Thu, Feb 19, 2026, Jiasheng Jiang wrote:
> On Thu, 19 Feb 2026 01:30:16 +0000, Thinh Nguyen wrote:
> > On Wed, Feb 18, 2026, Sebastian Andrzej Siewior wrote:
> >> On 2026-02-18 05:22:21 [+0000], Thinh Nguyen wrote:
> >> > > Fixes: 08a1cb0f65fd ("usb: gadget: tcm: factor out f_tcm")
> >> > > Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
> >> …
> >> > While the patch itself is fine, we should prevent this situation from
> >> > occurring in the first place. That is, we should enforce the config
> >> > dependency and prevent the users from removing the nexus if the gadget
> >> > driver is bound. Likewise, we should prevent the gadget driver from
> >> > binding if no nexus is established.
> >>
> >> Is this an actual problem or just something that looks like it could
> >> happen? My memory is that the tcm holds a reference on it and the
> >> referenced commit just split/moved the code. So if it is a problem then
> >> it should have been there longer than that.
> >>
> >
> > Looks like we only hold the reference to the session cmds, and we track
> > the tpg_port_count if there's an established link. But we don't guard or
> > deactivate the f_tcm usb function when we unregister the tcm and remove
> > the nexus. As far as the host can tell, the device is still connected
> > and the function is still active.
> >
> > This exists since the beginning. The Fixes tag should have pointed to
> > c52661d60f63 ("usb-gadget: Initial merge of target module for UASP + BOT")
> >
> > We can guard against unlinking the port while the gadget_driver is bound
> > or we can just deactivate the usb function when that happens. The latter
> > is probably a better option.
> >
> > BR,
> > Thinh
>
> Thanks for the clarification.
>
> I understand your point about "The latter" option: we should deactivate
> the USB function when the nexus is dropped to stop new traffic from the
> host.
>
> However, even if we implement the deactivation logic in
> tcm_usbg_drop_nexus, there could still be a race condition where pending
> work items (e.g., bot_cmd_work) are already scheduled but haven't executed
> yet.
Yes, we'd need to sync and cancel them properly.
>
> Therefore, I believe the if (!tv_nexus) checks in this patch are still
> necessary as a safeguard to drain pending requests safely without
> crashing.
>
> My Proposal:
> Can we proceed with this patch (adding the NULL checks and fixing the
> Fixes tag) to close the immediate panic? The architectural change to
> deactivate the function could then be handled in a separate follow-up
> patch, as it might require more extensive testing.
>
> Does that sound reasonable to you?
Sounds reasonable to me. As I noted previously, this patch itself is
fine. However, please update your "Fixes" tag to point to the correct
commit. You should also add Cc stable.
Thanks,
Thinh
next prev parent reply other threads:[~2026-02-19 2:13 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-16 20:48 Jiasheng Jiang
2026-02-18 5:22 ` Thinh Nguyen
2026-02-18 7:29 ` Sebastian Andrzej Siewior
2026-02-19 1:30 ` Thinh Nguyen
2026-02-19 1:44 ` Jiasheng Jiang
2026-02-19 2:17 ` Thinh Nguyen
2026-02-19 2:38 ` [PATCH v3] " Jiasheng Jiang
2026-02-19 22:57 ` Thinh Nguyen
2026-02-19 1:48 ` [PATCH] " Jiasheng Jiang
2026-02-19 2:13 ` Thinh Nguyen [this message]
2026-02-19 2:18 ` [PATCH v2] " Jiasheng Jiang
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=20260219021310.e5aycj3h5rijq45w@synopsys.com \
--to=thinh.nguyen@synopsys.com \
--cc=andrzej.p@samsung.com \
--cc=bigeasy@linutronix.de \
--cc=chenyufeng@iie.ac.cn \
--cc=gregkh@linuxfoundation.org \
--cc=jiashengjiangcool@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=nab@linux-iscsi.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®