From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) (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 811C83D9050 for ; Mon, 27 Jul 2026 19:55:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785182132; cv=none; b=ghOKPb/RBUsAcYBPBZB1SgCGdyzBMjhPiN5btCSjSwTHzAC+tCL9g716DsZ8Tj5bM6ODt5COZpN78iv8vn+jrOGIuiPOMzlq/gcwfqvyeHZr8jWDag8OFGYYoA9h3tJ0+LmpTaiqGp6Qdl+J+n/sjA/y2TFW6b+Gvg9ccqoD8ek= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785182132; c=relaxed/simple; bh=AfVtfPVQw7E6qtXV1Ata9mBOVITuY92MDLgL+hWYNZY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DIMcqpbcoD8tGRjTnFNJbf15nOFnCYOKuTSBQzRCjZTvHcOMM7n5FqzlEyVKr+81f5/5gz5IbLPPVUkP5jkfOCBVdpD10TzU7zNqEoD9OartKZzdcCOhUbooxtljCy0f4o/nwQzt0myjUIt0jdAE5FPwADiVR38miNyeUTWR++E= 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=pKNbcBJz; arc=none smtp.client-ip=209.85.215.173 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="pKNbcBJz" Received: by mail-pg1-f173.google.com with SMTP id 41be03b00d2f7-c9ef3e1337fso2157270a12.2 for ; Mon, 27 Jul 2026 12:55:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785182127; x=1785786927; 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=tFl/DVQhUlBRx9yESRcf7Z0LveRZ9ahPl9d1n+zCKZ8=; b=pKNbcBJzKZj20Yz2fbOoSB9neQpJiJaQpVc/kxA5R/nQeoHD8hlhxsQSwQC9u3QwXX UXp+aMDhQFY9C2J56uegR0+a67gvyy7Xq1Nj/8QsQOwRr9BSnXGN9X8mcWklkpa4Cxmh RPxawkJld9OrMmkOCnWxBuaM/RJMf9b9fHvud6+jdDVEB0jiL4Wq51nF7J51/bBb0H+z jtmiVD4Qc9N5gdKwkzr5Qg+xUWVQXK5xZWpDLPF49DJjP2BJRlBZK8c3kCldOB98YhFE oAuPfdxSz4K//7U+JWXvnFVOIU2Pj6xekeIT9wH/An88UO2oK7d7sJx5ZtBJjc4LzSs0 Hubw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785182127; x=1785786927; 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=tFl/DVQhUlBRx9yESRcf7Z0LveRZ9ahPl9d1n+zCKZ8=; b=qkjp8MD/x0vy8P1xD7+3vdv4ZsMcI/Z4eORKMCJcCaLiU9JbN2bGs/0MY/3EIOjkQf qTAipE0e6RG7uSuVFcluBH3qKBlDBL5KEshFO5O/noSpY9A1i+hH9m/PN3d1fsu+O9QX ZsIt3ciBcusUaYzy01Ozw+uKoem2ts9FpnIMGRgBl+mKDyeMsX4FMMDCbc4rOfGFOOPP OKqgp4JobxjUYDJte8k3LUfNUOJEfxaZ9yWvzVXMUHQ3EJfWm11zT3CbLbLR2AwKJbcC 9HGA3mOaVeVi/3+eOqIcYJLPXFdVNmVToOGoXbgcCtnL/SBmPQz47cBZEPZEH7/XW0/L IgoQ== X-Forwarded-Encrypted: i=1; AHgh+RqkHV2m3yqhJK0/E27Ny5Gc1tdPSB+NYoVA7M8sLaHN+2dCZm4DcuT190mpOxcz0u290t/vgZ2DADYG18M=@vger.kernel.org X-Gm-Message-State: AOJu0YzN935max5EU+e0Gnk5oTrC53wHSLpe25vIJq0aaaWqhRWQzB84 tWsZvmfFe+a1nEaaPh5ZEskB8cGaC27hILYNjt6Cn8SaFJ4+xjkJXVnWE7kr+a5m X-Gm-Gg: AR+sD12n7TdR22UWS75WkTRm9p9BOZ0drpGweH33O0VCGr2Q/mZRqpVBRqBrTluZKHd fDYctM9xkqlcxZN+pzzWZvjyC6JUBsNaTenBV+ZzpJC9aDjNmPbxeIQr+MngNFavcqWGES5fSOc uNF/5AsfdkL3gT9UtAf79mRfe9V/LgorD0C2zmOWdsuAjM32KatB3lLBNq0SZrU+HpP10wZbXPR UbFpcKxFYEzdv2CdDvdGw0RHL/CkOv0kvXb5Jao71BEbLO0VKE1A0ZaHjD7Ywi+1QwmTpI7Ml8p HjwFKsu+DUIjfGH1PeU0OanIgrOWDYPdY2lj4q8AYTMntcKZkHsDAyv4kVjzFgpL023mwG8jZZL a41UvsubuGXFuYPKynSpQgKiHwGi4yetbwC1YHaTVkus7ld3lJXiGFMDLJV+mpbuZpBPlknrstq Pjvl0hmU9gSvzEQincZpWd45WS6EfXcbcEC7yHrMgIicD42ymJ06cBK9J4kKb9xiv55g== X-Received: by 2002:a05:6a20:1590:b0:3bf:96c6:78a9 with SMTP id adf61e73a8af0-3c6c7b71895mr1111190637.2.1785182127125; Mon, 27 Jul 2026 12:55:27 -0700 (PDT) Received: from localhost ([103.170.252.6]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13e6461ef84sm18743257c88.14.2026.07.27.12.55.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jul 2026 12:55:26 -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, Nikhil Solanke Subject: [PATCH v4 2/2] usb: hub: Split announce_device() to log device identity before enumeration Date: Tue, 28 Jul 2026 01:24:34 +0530 Message-ID: <20260727195434.14626-3-nikhilsolanke5@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260727195434.14626-1-nikhilsolanke5@gmail.com> References: <20260727195434.14626-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 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