Linux USB
 help / color / mirror / Atom feed
* [PATCH v6 0/3] driver core: add enumeration failure uevent helper
@ 2026-08-02 23:31 Akshay Gujar
  2026-08-02 23:31 ` [PATCH v6 1/3] driver core: add device_enumeration_failure_notify() helper Akshay Gujar
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Akshay Gujar @ 2026-08-02 23:31 UTC (permalink / raw)
  To: gregkh; +Cc: Akshay.Gujar, linux-kernel, linux-usb, naveen.v, oneukum, stern

Hotpluggable buses can detect that a device is physically present, but 
enumeration may still fail early due to protocol-level errors. Today,
such failures are only reported via kernel log messages, with no
structured userspace notification.
 
This series adds a small generic helper in the driver core that emits a
KOBJ_CHANGE uevent when enumeration fails, and wires it into the USB hub 
enumeration failure path as an initial user.
 
On emitting the event from the port device itself: I tried adding
usb_port to usb_bus_type and hit an oops in driver_sysfs_add(), seen on
an OTG host-mode switch. usb_port_driver is assigned directly to
port_dev->dev.driver but never registered through driver_register(), so
drv->p is NULL by the time the driver core creates the "driver" symlink.

Putting ports on the bus also exposes them to udev rules matching
SUBSYSTEM=="usb" on every system, which I would prefer to send
separately where it can get the review it deserves. 
 
This version therefore emits from the hub interface with the port named
in the payload, which is tested and working.

---
Changes in v6:
- Split helper into (dev, failed_id) arguments
- Return kobject_uevent_env() error to caller
- Reject NULL or empty failed_id
- Update ABI doc (date, DEVPATH, wording, newline at EOF)
- usb: hub: log warning if uevent fails

Changes in v5: 
- Update ABI doc (date, version)

Changes in v4:
- Remove duplicate kerneldoc from device.h; keep only in core.c
- Clarify @dev description
- Update ABI doc (date)

Changes in v3:
- Rename 'parent' to 'dev'
- Remove 'id_name'; derive identifier via dev_name()
- Improve comments and commit messages
- Add kernel-doc in device.h
- Update ABI doc (date, version, example)
- usb: hub: pass &port_dev->dev directly

Changes in v2:
- Move helper from USB-specific code into driver core
- Add ABI documentation
- Split into a 3-patch series

v5: https://lore.kernel.org/all/20260715114028.3627807-1-Akshay.Gujar@harman.com/
v4: https://lore.kernel.org/all/2026071012-hesitancy-doornail-3dab@gregkh/
v3: https://lore.kernel.org/all/0b39693a-d8b0-4c95-97ee-07b3882c4b6a@rowland.harvard.edu/
v2: https://lore.kernel.org/all/2026010726-grimy-variably-b10e@gregkh/
v1: https://lore.kernel.org/all/2025022131-silo-impeach-3f24@gregkh/

Akshay Gujar (3):
  driver core: add device_enumeration_failure_notify() helper
  Documentation: ABI: document DEVICE_ENUMERATION_FAILURE uevent
  usb: hub: send enumeration failure uevent

 Documentation/ABI/testing/sysfs-uevent | 37 ++++++++++++++++++++++++++
 drivers/base/core.c                    | 35 ++++++++++++++++++++++++
 drivers/usb/core/hub.c                 | 14 +++++++++-
 include/linux/device.h                 |  2 ++
 4 files changed, 87 insertions(+), 1 deletion(-)

base-commit: 02dc699f83d04069fdabc996fc22d47cda47a4a9
-- 
2.19.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-08-02 23:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-02 23:31 [PATCH v6 0/3] driver core: add enumeration failure uevent helper Akshay Gujar
2026-08-02 23:31 ` [PATCH v6 1/3] driver core: add device_enumeration_failure_notify() helper Akshay Gujar
2026-08-02 23:31 ` [PATCH v6 2/3] Documentation: ABI: document DEVICE_ENUMERATION_FAILURE uevent Akshay Gujar
2026-08-02 23:31 ` [PATCH v6 3/3] usb: hub: send enumeration failure uevent Akshay Gujar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox