From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FFDB39E6F1 for ; Tue, 28 Jul 2026 19:52:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785268338; cv=none; b=cWDO+A58u7C0fp+QWu8tsIMGlWvvYG0FOyzvG3Yic0YWXqzI6bSSFyngCRW2mdslz25v0Rr8PHyEMzztj+Cs8qIITe1vnIITYWa0bFgU8urCJi1BQGApm6kVW01m5+ghfiZM1QGAdO2/xMTlkqJunnAXzcTBHgApGxiNhouG3Cc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785268338; c=relaxed/simple; bh=zr85cf5OM4ACF/oZP+D0He7J6hHB3ill7heyRNrcFAs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MZ6O31iXsaB4EzDNy9whZLLNVFp5ZP1UQ6DGSKdwWt46+PNtgGrE5hABY4XkzFK9GLxhAnXvhSfq2j0FZOlgiqxY/A2Vtq5aEWOUV0ZVobo6gwKc166bROExTBHY1tP09MvSsr9FqwvvbzdHdiTqpETQMb922UwqufYD0nTQPRE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=r8aQ+5NU; arc=none smtp.client-ip=209.85.216.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="r8aQ+5NU" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-381b831d535so290455a91.0 for ; Tue, 28 Jul 2026 12:52:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785268337; x=1785873137; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=K777BRooUawVspr/rUZWKDKbuSCg0hJqOA2h4aegueE=; b=r8aQ+5NUNsLqkdzeqQYTySi6Snbb7U2y/iHAMEhZYLdX78XlyLkDDZhw8K21HUgrCF EJdwj3L1LnlnsmECojQP82yhRTBlS8b12rQ/kiZCY65QAWFNz5c1AcF1iO7aAtyRI/W1 iJjJVbvaI8WgHhuurqo5oAMz7QujIo00jcd02p769NDGDAJ7lzL8J7BQyZyTejgLa66+ u1PNCsBqCT7YFbqTemc3zC9atIJsk/WLnwnJEJa6DaNpYuHoH4CAy59PAVUEer+57Ed7 fQshJxtQgUgJxVNcB9ZJ43eZbN4Q5A9IYoB6N0nBIW3bPAJwqn/GWvHqN53IsTcQD1Zr hZdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785268337; x=1785873137; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=K777BRooUawVspr/rUZWKDKbuSCg0hJqOA2h4aegueE=; b=PqZ91X6kZ3ZPaGU5dzoFOuFkSwXZJcavFv7ApXu+n2izq64soda3S5wtSx/ZVR4bF3 QZtmMPPsBDmzbedmY+3HW4st6NSs5l/zME4QKXUpKzaptykFmlLq7pUnYqYiLOpsbbNa 5LH8735q5Vxmb4DM3S1rcLJTlxoDFV/eFC9Jje8FeRWdeZkjDs3B2psoo1vB6aejeVVt hc2J6J61pi2oVrySttdkIEc1lvoHN8vmRtU+N28/Y60mwemHSxZ8O6BdjkgRZjRRkNz7 vBRfCN04i57pDBCwujfznQNdXFFPClh3afFIJ3mgrlFhc9iihdA+irc8E0zl0oJo8q4Z H87g== X-Forwarded-Encrypted: i=1; AHgh+Rr4RLBN2FVxaS2T+4u4xYd7nI6CePd+W5UAXppBUlMVURzLnfoHorS5OIV4OFZDt4919Q2iP7Q+rnVajOU=@vger.kernel.org X-Gm-Message-State: AOJu0YzEdBXuzOAfbtkPHSyO0ZHR0FqG7lv1ie5AG7KBU90le3hY3kVi SOXg6bsR4MPG+pVrQv31yxlcmau3pLc7+X3Usnm/MHni86ZI+XXFUV1r X-Gm-Gg: AR+sD12kPE0nCk8feH7Q/OZtdsfrDCKJm//JTwVK12J8eHoRPCY+oOWbe5YMzVqQ7Mt XB0jCzonn3GuSzl6bxILErphnzXdVdYYCsu03YWYACpeH3aaenmNaTpQY1KMaKU5yKJXellvfkA WphRbGqkbERoC9ms4FuZM/PUd28ceI/3dW4T7mdOgXKNmcfue7jDgzq7MIlt8tgqUKLgUlw9hcp BwsXltPbu7ZneYMan4BQDbVDozBNx12Ro0qkRQYe00mIKJznqv3spA1U+iMjVLbhfwm5s797Zwz 73pk6WeBtElvIWkh2OwzOpu+IX21sNU475Rw7n6joGM3jHmGnqUKyBRVZFbCUujA9Nh8O2YuXrz krOfo3TE19LOf+2NDajdHdzhI/T10GpbhJ65KnvsiJMq/rhw/N/QoaBz9ezxTlyLOlupdwy98iM yO0IdB1zVBDcO3ZLxuaHI8L4ge6Lsl6z4vvK6eed8tvVk60s9qljA8Hnn0HDnCYfjkLA== X-Received: by 2002:a17:90b:448c:b0:38e:a205:c84b with SMTP id 98e67ed59e1d1-38f6a4e2d36mr3992072a91.28.1785268336559; Tue, 28 Jul 2026 12:52:16 -0700 (PDT) Received: from localhost ([103.170.252.6]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31504d3250asm1448051eec.20.2026.07.28.12.52.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jul 2026 12:52:16 -0700 (PDT) From: Nikhil Solanke To: linux-usb@vger.kernel.org Cc: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, stern@rowland.harvard.edu, michal.pecio@gmail.com, corbet@lwn.net, skhan@linuxfoundation.org, stable@vger.kernel.org, linux-doc@vger.kernel.org, ishaan.dandekar@gmail.com, Nikhil Solanke Subject: [PATCH v5 2/2] usb: hub: Split announce_device() to log device identity before enumeration Date: Wed, 29 Jul 2026 01:21:58 +0530 Message-ID: <20260728195158.65162-3-nikhilsolanke5@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260728195158.65162-1-nikhilsolanke5@gmail.com> References: <20260728195158.65162-1-nikhilsolanke5@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit announce_device() currently logs the device VID:PID and string descriptors only after successful enumeration. This means that if enumeration fails, no identifying information about the device appears in the kernel log, making it difficult to diagnose failures. Split announce_device() into announce_device_ids(), which logs the VID:PID and bcdDevice immediately after the device descriptor is read, and announce_device_strings(), which logs the product, manufacturer, and serial number strings after successful enumeration. This ensures that a device's identity is always visible in the log regardless of whether enumeration succeeds or fails. Suggested-by: Michal Pecio Acked-by: Alan Stern Signed-off-by: Nikhil Solanke --- drivers/usb/core/hub.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 5262e11c12cd..d92bf887739d 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -2401,7 +2401,7 @@ static void show_string(struct usb_device *udev, char *id, char *string) dev_info(&udev->dev, "%s: %s\n", id, string); } -static void announce_device(struct usb_device *udev) +static void announce_device_ids(struct usb_device *udev) { u16 bcdDevice = le16_to_cpu(udev->descriptor.bcdDevice); @@ -2410,6 +2410,10 @@ static void announce_device(struct usb_device *udev) le16_to_cpu(udev->descriptor.idVendor), le16_to_cpu(udev->descriptor.idProduct), bcdDevice >> 8, bcdDevice & 0xff); +} + +static void announce_device_strings(struct usb_device *udev) +{ dev_info(&udev->dev, "New USB device strings: Mfr=%d, Product=%d, SerialNumber=%d\n", udev->descriptor.iManufacturer, @@ -2420,7 +2424,8 @@ static void announce_device(struct usb_device *udev) show_string(udev, "SerialNumber", udev->serial); } #else -static inline void announce_device(struct usb_device *udev) { } +static inline void announce_device_ids(struct usb_device *udev) { } +static inline void announce_device_strings(struct usb_device *udev) { } #endif @@ -2651,6 +2656,9 @@ int usb_new_device(struct usb_device *udev) device_init_wakeup(&udev->dev, 0); } + /* Announce the device identity */ + announce_device_ids(udev); + /* Tell the runtime-PM framework the device is active */ pm_runtime_set_active(&udev->dev); pm_runtime_get_noresume(&udev->dev); @@ -2672,8 +2680,8 @@ int usb_new_device(struct usb_device *udev) udev->dev.devt = MKDEV(USB_DEVICE_MAJOR, (((udev->bus->busnum-1) * 128) + (udev->devnum-1))); - /* Tell the world! */ - announce_device(udev); + /* Announce the device's product, manufacturer and serial number */ + announce_device_strings(udev); if (udev->serial) add_device_randomness(udev->serial, strlen(udev->serial)); -- 2.54.0