[PATCH v2 0/2] usb: gadget: avoid warnings during configuration transitions

From: Keisuke Tsukuda

Date: Tue Sep 08 2026 - 16:35:26 EST


Rapidly alternating SET_CONFIGURATION requests can overtake the
mass-storage function's asynchronous configuration work. This exposes two
states that are handled safely but currently produce kernel warnings: a
delayed-status completion after reset_config() cleared its counter, and a
class request while common->fsg is not installed.

The first patch keeps the obsolete completion as a dynamic-debug
diagnostic. The second avoids the warning only in fsg_setup(), where the
request is already rejected with -EOPNOTSUPP; warnings in other internal
f_mass_storage paths remain unchanged.

Both reports reproduce on an ARM64 Ubuntu 6.8 VM using dummy_hcd. With both
patches loaded, five 10-second, four-thread runs produced no WARNING, BUG,
or Oops. In a separate run, a kprobe observed five calls to
usb_composite_setup_continue() with delayed_status == 0 while the target
warning remained absent.

syzbot tested the v1 code on usb-testing commit
edc1518454f6439e50a9220e9a3ba09044ea8d8b and reported OK after a
50-minute run:

https://syzkaller.appspot.com/bug?extid=a83a5a1ba9ff57935171

Changes in v2:
- Add a comment in fsg_setup() explaining why fsg_is_set() must not be
used for this check, as requested by Alan Stern.
- No executable code changes; patch 1 is unchanged.

Keisuke Tsukuda (2):
usb: gadget: composite: avoid warning on aborted delayed status
usb: gadget: f_mass_storage: ignore class requests while inactive

drivers/usb/gadget/composite.c | 2 +-
drivers/usb/gadget/function/f_mass_storage.c | 7 ++++++-
2 files changed, 7 insertions(+), 2 deletions(-)

--
2.50.1 (Apple Git-155)