From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 68C313914EE for ; Fri, 17 Jul 2026 19:54:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784318056; cv=none; b=pOzrgPvNJXeAEHkDrveEl3p0iJRvGYiSqw5XBAYtrkgMaw1lFZnauqTj/kPKuxRFYDliXq25vKusQl7KScXu23wKFW5PAHq/F1+4CX5rZNOxWGskS7wPGPuTnynMdeDPZW2T7K3hHFuCreehuenJA/3EfO44msXpBjzuntoEZEM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784318056; c=relaxed/simple; bh=OovEX5j8oO9dt0RWb+VLsO7EVU4CwpJSCIQyuF/rK64=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n/PhWEgqee5hoWgOi8MVXZJfLRg0lwkszpZ7IMWWyWBHBY5f5gHUpSf0B2LO1OM8U4zF+380jUcztgUmCeTyfMYtLMcRRGDrn8YRqH5d3eENBGkL1GEFtAiU5LxvvCPeJxjy4yhde2HCFiM0Muz6A3DD+XyjF6FpPUkSkBPh8PM= 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=j42IAOvK; arc=none smtp.client-ip=209.85.214.178 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="j42IAOvK" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2cce6a0c9c3so75278205ad.1 for ; Fri, 17 Jul 2026 12:54:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784318054; x=1784922854; 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=V/QRLXFyC7iudgBp/aY0Qb4ATVQXu8Baj1/SfCLrVxo=; b=j42IAOvKxqnZj3n5K8PPiEyEA0/rceoW371CuW5G9lu3f/qPSxND06blwGg7s4FZbS EQaV2I4h1lKfnlVTC6EbUpi1Ktie8lvo7X2FmTAzBXdyfA0Yq6vrAZFVja0Hh6BKWx7P 5S663aYfl0Gn90Nurqh0STxP6pjYiRs1MRAytFPo6mNSe4IH5YqZ5csFbO9YVZ3JkAfo D9h74oJehVUcMpmtW6/rqIB7zqcHridhd/4OnUGN1C4fpknbS59mMjhFwhIOhMRH7Pei k8stnFdnz47EhWaZnCPZ8+eaZT0rvXkJ4ZxAFsbDdCQv6MxPB3N9tS6Af1mHQZ4XU9wW IhJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784318054; x=1784922854; 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=V/QRLXFyC7iudgBp/aY0Qb4ATVQXu8Baj1/SfCLrVxo=; b=RHIlB+h4bA4OieEcSX91evSPpOssmKEBWvADnH6YT92gmvMYtgeDmLIusVoTHFG6BZ fb2UeqpIiyQbwYu77nj/LS83IVp0tBhOArj+sgXJO3tZXUUA5D1SuCz65ipotg5dxJfl 1YWLxJi9hln+VrBIPT1/fOmmYeOn0SEgTqcUamNjAl9O4XkUtxBQBhnxTL68uRzDlR6L Be1F1OFScJKQaVHqLfSZwQv+YtTTOhXtE0151bIvqS/3qCwlKyDQ6B9H4bMdDiRgmpgR MTVDI0MmRh/Va5vR7ivsexTT0ybOXQAalKqzDjEdCwna8dvbD67KKxdnlNtjM4g41Zz8 qJbQ== X-Forwarded-Encrypted: i=1; AHgh+RpggLJ8k4XPPTZbKWsphaJc2uapAXUI4/DxzJSqD9y+El1/Grilsubh+vyFI4XIivyWadLzQng2NRNSE/U=@vger.kernel.org X-Gm-Message-State: AOJu0YxaH7Fb57ysf2R/nng+r0I2idgbcYmB0HK8hUZqx2+iFltNHnpv tkwg/iWJDzKN1WZpPpAy2SNqcnhvJkUSHmzjRKh69bxC+2nkYCx2DMGI X-Gm-Gg: AfdE7clD7u5CmFnSPBgRn1j9Lr7AGvEQvetbPUompq2LFQcdXH/pOBp+K+ak51QKvme cd4RgmcBhkTcCF6cjMYPD+cGThiCcca/lrj/IoP1XMOofSqQRyklGaljMDd8owYpdy0GToP+ycL NSDPDQm2OSnsjVXAtee59Cs2M4Ewk7iaacH487OfnZFoDu/G275DEUfIKVVTXDynph5qTuyfFiO eGuhkQ0UCA2r8Kp+PbHTHF36IEaqcsab9LTqNoCrVCZeL+ff4eNVJ77guo1iyupfLyYBmceycAb 1HUGlJzqhdfdFFht+05Cdsu2TNKwzbzaayzhYmEr6bWMakQBGnUta9dMallEg1O2Th25kIJyUte 1rlhYJLlE82IPDfWy+okqYQKoEibqjmJzGBH/VWZWgR1wJLTYED9vdZcCkr9E4M3FQkHAeRravl 5Rc2kfw+2LmZjYglnxDIgq1VTerRFw2sVglcD1GtJyvuHVlDpGgncspvI+DNu09TdqYA/9jILwu TSO X-Received: by 2002:a17:903:3d0f:b0:2cf:477d:8a87 with SMTP id d9443c01a7336-2cf477d8f76mr5826235ad.10.1784318054611; Fri, 17 Jul 2026 12:54:14 -0700 (PDT) Received: from ghost.localdomain ([103.170.252.7]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29c2dcdsm7103119c88.1.2026.07.17.12.54.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jul 2026 12:54:14 -0700 (PDT) Received: from ghost.localdomain (ip6-localhost [::1]) by ghost.localdomain (OpenSMTPD) with ESMTP id be1d25cf; Fri, 17 Jul 2026 19:54:03 +0000 (UTC) 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, linux-doc@vger.kernel.org, stable@vger.kernel.org, Nikhil Solanke Subject: [PATCH 2/2] USB: hub: Split announce_device() to log device identity before enumeration Date: Sat, 18 Jul 2026 01:23:36 +0530 Message-ID: <20260717195336.98500-3-nikhilsolanke5@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260717195336.98500-1-nikhilsolanke5@gmail.com> References: <20260717195336.98500-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.55.0