From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) (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 6DBFC374A1B for ; Mon, 24 Aug 2026 04:41:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.48 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787546505; cv=none; b=Rrb5xaiDcQk3qv5NmpnHTeTqy75WKY3tCMhqPpTdR2IQdyYckDiOdGJq+0+lfKVJ/CBMmTMYBpYCZVMNreoBXK4db2hB1wU4HplMfD6zoHv6OOzQXzSlI746TKZ6F5OS2NW8iRoegQgxK2aLzpf7dE8kHaocXfQPDm/iyhPmO+8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787546505; c=relaxed/simple; bh=Qp/Qo50gT+ULoYvMdbBWvICXZmTPOc/Gxpuj7vBLL2A=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=t5sl7yWycocQnWjHhdQc1vhzBW3I8j1ahRdi2kB+IWvbODVlqJNUzSsBLUN7ecIQro0onoDjOeWcZP8fw1VWFP/8qj7WRHnAUBc6mqw6cHeVheo8LeoIX02CE9R5zyoOaiCSfDYqvWKEAtKvKz/wbvQyPCcG6YA+M8vf7VRVoys= 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=frhXAyrk; arc=none smtp.client-ip=209.85.216.48 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="frhXAyrk" Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-38e347638adso2682373a91.0 for ; Sun, 23 Aug 2026 21:41:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787546504; x=1788151304; 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:content-type; bh=Qp/Qo50gT+ULoYvMdbBWvICXZmTPOc/Gxpuj7vBLL2A=; b=frhXAyrkD2B0+vox8lN4kVYFXdQUQzMh1DcyqiFSPsyMloguXJX567r0imziVkcmjg y6cJZIuU00GaLWDjsr4RQsLE7ZGU6/KU5McNTyzlXr/BxgYEYdWi0LmSbVT6BOuFNzF2 Pq/+94c5GA6B1/MTqSFyjPOVklCH8BPJLJnh6hSFoMS2vJBagqrTQlNAYeg/qLtMNIVL YRlWWfKpDoe727CZZv8N6z30z4CilH2CQRVeqS2MFf7mDxco8GoCKzzOU90ZlFv7Oj8R GpSvBmSPtpjQDsGMi0r7wTnUmzOsfyv2ZAMZQxtQy26d0EHx0V5mYlVH1QH7Cd+VXCcl eeAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787546504; x=1788151304; 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:content-type; bh=Qp/Qo50gT+ULoYvMdbBWvICXZmTPOc/Gxpuj7vBLL2A=; b=JhbAFI3t3QjLNk1jgBRSEgOCoDJICXvlx73gKGjHm6Z0g7A01sJAvfzRXIsgq61YYg 2ZXfudcWd2oO7fLtEbmjlH0nO6nKN59Z1J5fGE3u5OOC6YyYSuX8heTOUDAsJf5Jk2dS 2LaZIkVFAvPDHA/6WTSKqx08Fd7D1nAa3hd4u+DzcMVX9yk9/H8VaCtcaxRZs3BbQIsM EuZiCJFt7hkpJnR2IAuVwq9+keDCcfWhAAeDASQ45cbwvKJWxKP2bLl4tYyEkAMrKFfP 6t4gCsaRIRqvVIjJToxMmdxbBrVL0Na7lI6TNJc3Q5sBUOTqMheJdkHMMGVKEGAY7nXN 6JZw== X-Forwarded-Encrypted: i=1; AHgh+Rq0E0WBleWY0c/y6NWcGvi9os1JH2Z+DhsSNqyf6mpN2YVo7Z5oZFCXPA1gp0XVFlzbhZzwgwAPVkNiGD4=@vger.kernel.org X-Gm-Message-State: AFuF++kS5VFLav9m1ttkjAU6Kp8IfDdTJq2nejf9Q0GvKrGCgPks6Tr/ HV87dTyU4mNWmW3OCgaHHQHOAqdK1nOz8UNXotcDCBOl6RZBkGn87EzT X-Gm-Gg: AR+sD13NiH5QWqoEKSvcz5qaswOoq3PoiswsTEu+hoOeXf5XjI1ZhH2XpAp3DOGV+fe dCT5etDoGZPOqkSn+RKSvLf31q1F10PmWF+G00dW7WElwD9gRYQO/A6p7IgBhficfddmN/jU0KB YlusapWEFcMXKcZj8TMH6lK53zy+ZNVD/Mhd8a/yONO+VKbdP/EjBc35LzefGFt9gaCVWxSBi9l IjgYKzvhfg55hfErzg5cPf8FL9Gvp8VQrna26Zegjr5LHAJ+yNZh3WetN7b3XkaxcnbGyqPQr1E rzSVgG6VJ/o6CPAsdHdVVlIfir9uNdNOfjg5INK1UXO6PKZlwRz7vTeqwPTc/xd9DlWE17CHmo3 acqbttJhVqTw5toSvistkOPzHk2Ux/uPbG5bQwRvjPS/JxYmt24GuUdHXbLTTgpu4bOclgDyQjn RMhCCh3lUB21qPFqEwT5DEduFb1Hjwcu/oTU7Y+nGTxztpCx9ed5WeiBP4tqX+0t2ntyBzwTq6G dL3x6vNM9ju6g== X-Received: by 2002:a17:90b:4a82:b0:38d:dfd1:7a8 with SMTP id 98e67ed59e1d1-395dee5610fmr24191059a91.2.1787546503376; Sun, 23 Aug 2026 21:41:43 -0700 (PDT) Received: from ML-GYSUBT565.ECARX.COM.CN ([101.47.164.95]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-395e4a4e5ecsm8584132a91.16.2026.08.23.21.41.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2026 21:41:42 -0700 (PDT) From: Nguyen Quang Le Kien To: linux-usb@vger.kernel.org Cc: Nguyen Quang Le Kien , Danilo Krummrich , Alan Stern , Greg KH , "Rafael J . Wysocki" , driver-core@vger.kernel.org, linux-kernel@vger.kernel.org, syzbot+87188222c77c0dbbdb4d@syzkaller.appspotmail.com, stable@vger.kernel.org Subject: Re: [PATCH v4] driver core: avoid klist_remove() on unattached knode_driver Date: Mon, 24 Aug 2026 12:41:38 +0800 Message-Id: <20260824044138.42965-1-khiemtranzo532001@gmail.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit In-Reply-To: References: On Fri, Aug 21, 2026 at 03:54:44AM +0200, Danilo Krummrich wrote: > usb_driver_claim_interface() is the only callsite in the kernel that > does set dev->driver without a subsequent device_bind_driver(). Small correction, I think there are a few more. usb_port (drivers/usb/core/port.c:782) sets dev->driver before device_register(), and usb_port_driver has no ->match and no ->probe, so it depends entirely on the __device_attach() dev->driver path to get bound. ccwgroup (drivers/s390/cio/ccwgroup.c:385) and pata_parport (drivers/ata/pata_parport/pata_parport.c:515) do the same. So that path doesn't look USB-claim-specific, and if we ever want to remove it, usb_port would need a ->match() first. For the root cause, what about this: in usb_driver_claim_interface(), when the interface isn't registered yet, just don't set dev->driver -- record the claim on struct usb_interface instead. Then, once the interface gets added in usb_set_configuration(), bind it explicitly with device_bind_driver(). That skips ->probe, which is exactly what usb_audio's claim-now-bind-later needs, and it also attaches knode_driver so teardown is safe. The __device_attach() path can stay for w1/ccwgroup/pata_parport. Does that sound reasonable?