From nobody Sat Jun 20 17:34:50 2026 Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) (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 CAAA12DC792 for ; Sun, 12 Apr 2026 16:53:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776012810; cv=none; b=gyZ16H9rdbwgqst6knKXRGda2Uigo3gDdZdp+iA+PONR/7kd3Ksdv7yxU2uKlfZCTt3G10Eiwy8M73mvvZoU7NGyfQTaFJTCLcRgLm2KwjMFVkrmVH9KdMQ8VvVnfxllEonFquHH/UwNRP1qHNejYBbstxYez+uHrmVp3G5HMRA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776012810; c=relaxed/simple; bh=MOPO5wfn7Q3HWfymgJrVMz+WptlVpp+6qfHmgyBDKsA=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=SAce7v2FuBXgDX1JNiwQidraG7Cc79EIHpt573PrnhayWjUkYNtHjaB1AdGwubPYTqz0g3yDdoqJ15hO79MF1AgbLcrrqcYcvoYP/iiyO2EWBymFqGcT5wnfN/tXYINmj9+/n1yQb72coSfGzMCNeBNgJk+FwneeIIABTWMQFog= 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=UAtEcCxh; arc=none smtp.client-ip=209.85.216.53 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="UAtEcCxh" Received: by mail-pj1-f53.google.com with SMTP id 98e67ed59e1d1-35691a231a7so2361978a91.3 for ; Sun, 12 Apr 2026 09:53:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776012807; x=1776617607; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Rl2owXRkWl9OSU4yU3CKzA/toNE+OIFlfE2UaXgvdSI=; b=UAtEcCxh1lZwFG0DvrCRK6w9UOmELd2kIpLtbN/4+ksoTZczL9PGLZHJwT4jafyDxO GDS/pfRZMc75tdzHHLVfMfQDDBZynPQ5gvUwi3+oHBTdBcoF1ybw0zTZe63Yp9YcywDn ybU+PEbjGHC7GRcytLXYrSA7W649Njn3EXyH8u+AzimQwu3DluPJvLwajLVcEUjNs4so pLhIaZg9SkXCr9AmPP0ns+HU0+fzPNIV+jUD+gUoulrYYlNhykqihvHP8VCM1bkpPApm gzLcbWq7nsxtAyYYQHDPFqg5J11dJ0atY7bwy3dqzvRwlk+jNGtUFwW1i7GfHCJLhw70 VZEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776012807; x=1776617607; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Rl2owXRkWl9OSU4yU3CKzA/toNE+OIFlfE2UaXgvdSI=; b=fa+nrNjlPSPhUqsDFiICZRdob3aAjKy914JrhppmA4GV+HJkDO/Lq/HLb3R98Pxks/ EEa3WtgzPa0Ws5WVlR9pMZEKASqQADAseysWwlcoA01zW2mkaTj7UOvvFs2TTXpVsrcl 4LelmJuuqyl3GELnJa+TkbxJAuVOp7ycrcJ6DdLilQL6YAecksPnFyp5TeGN6+Ycqaiv zIPTVudvBbWx7ILIas5JET+lP3mkHJlatgaSF08XfGhg0/CiE3NPHbfQkrr7ohS/s78u bzI3Gx3cjnpb/qIXoeYdumkBU3qHyiIehrveNn02lrlx6kIapoel6KNjOVtav+35nSfQ T6Jg== X-Forwarded-Encrypted: i=1; AFNElJ9QNvAHJi4/DFzIS9kBTDNCZynFXTqZxU23MNB9HJh/I6mLOILSkGw1DHhBxJh3lLRyiu8xOnNNqDVckys=@vger.kernel.org X-Gm-Message-State: AOJu0Yxr4U6c+akR1U9ULxJ2c1xgAgvtpPEoI18XVCa55snxsovaeWWA Qc18j0x4WQruQiT8I2U2ZDsH4uqFx1QAwkLAuay1qlDwKU1jAswcaRc0 X-Gm-Gg: AeBDievKPFgElHtdqwkJE1Ggd8VNDXlnyGZNhGclZes3GoVWxOezZ24P6bbuPUX3T3t UtPIGLEH7OfmNSrqSadmf4WUnr16wBANAtMnhUyDrSxZDmOv+4hDerRDShD4jEwDZraeG/gVs9i 74ZlGOVJ8GL2DiLerxQAahOG5mmW46Fo0IX9yDgG0mlrvi/fkXi7M99nClPhUKJoUnvySO0pwWI +zl4lUQMhpTlWpq5niJxWD0nO5y1bleCcNedyC6y6uP8BY9j7MDLEjgqK+j7q86XaszLB/Zqhkt D3aIst17otAV23P7ns8C6RYZ8BODl9s+rKWTMuXm8wZ4E0VeTEhDT9Nwe0ACuhpehvDJdZIodvm LUgfHzSGdBkXbSssVHrRVbowN3jHfk5hH9Hu766iIG2/99AUr24uj5C7D5GvC1z9Hc3Q5oDCUMK DxCFaAGUp7SSNv2w== X-Received: by 2002:a17:90b:3bcc:b0:35f:b64f:bf99 with SMTP id 98e67ed59e1d1-35fb64fc0eemr931236a91.29.1776012807196; Sun, 12 Apr 2026 09:53:27 -0700 (PDT) Received: from lgs.. ([101.32.189.54]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35e5755ea3csm1635448a91.1.2026.04.12.09.53.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:53:26 -0700 (PDT) From: Guangshuo Li To: Johan Hovold , Greg Kroah-Hartman , Alan Stern , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Guangshuo Li , stable@vger.kernel.org Subject: [PATCH] usb-serial: fix port device refcount leak when device_add() fails Date: Mon, 13 Apr 2026 00:53:11 +0800 Message-ID: <20260412165311.2578501-1-lgs201920130244@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" usb_serial_probe() initializes each port device with device_initialize() before registering it with device_add(). If device_add() fails, the current code only logs an error and continues, but does not drop the reference acquired by device_initialize(). This leaves the failed port device referenced until a later teardown path, if any. Fix it by calling put_device() when device_add() fails. Also clear serial->port[i] after put_device() so destroy_serial() will not try to put the same device again. Fixes: 41bd34ddd7aa ("usb-serial: change referencing of port and serial str= uctures") Cc: stable@vger.kernel.org Signed-off-by: Guangshuo Li --- drivers/usb/serial/usb-serial.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-seria= l.c index c78ff40b1e5f..78e3eaf2874b 100644 --- a/drivers/usb/serial/usb-serial.c +++ b/drivers/usb/serial/usb-serial.c @@ -1148,8 +1148,11 @@ static int usb_serial_probe(struct usb_interface *in= terface, device_enable_async_suspend(&port->dev); =20 retval =3D device_add(&port->dev); - if (retval) + if (retval) { dev_err(ddev, "Error registering port device, continuing\n"); + put_device(&port->dev); + serial->port[i] =3D NULL; + } } =20 if (num_ports > 0) --=20 2.43.0