From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) (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 E9F0242AA9 for ; Mon, 24 Aug 2026 04:46:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.45 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787546787; cv=none; b=toO2pWCKDJlsXC78JO92dayYfZhLscdnBhnlnpj4N562Kkhb4r5ql7keF5U+CTAnz/O8W+Y3KTpjyBfQn6dNcKYYjF1eZxj0JwIvvL3dL7hz5mLZ6tjISpCtB8pbGYK4vJRF+QN/ijz9j4ik1VR2JRxQIfUPGv1rpAI5U5EbPNU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787546787; c=relaxed/simple; bh=Qp/Qo50gT+ULoYvMdbBWvICXZmTPOc/Gxpuj7vBLL2A=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=WQ/9ri1TRyTitJojs3qAnCNMiDDI22pbozdNddx9L92aV4wQrX784no+1w+zjddRbr3czsZw+tyZixcFbyaqVVI+6OmyB0trcsY0Nfa+PN1GV9EnUptIp5LTyBUGiglO5oMosdYvGdhA1qkrWmcvTgTU8a5vZyAF0Ui2KnulHaU= 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=BfMPrd/O; arc=none smtp.client-ip=209.85.216.45 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="BfMPrd/O" Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-381c51fde6bso3527699a91.2 for ; Sun, 23 Aug 2026 21:46:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787546785; x=1788151585; 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=BfMPrd/OIuxcvoPVy4LOO/wwdmEo+PzPOJ1+1n1+mo30ADeE64jImWlDXDbbcmI/SR sejGXtvTbngWHlr45OHn9ghM1qO205ro0vmV+Vi8Je1X6xL4WJ9HNLssraB3vxIMroUT 9UEHfL9SeEfZwg8Zu7uzFLa9W1KYeVjqGQV5659aRPRGnIMxbnsbS/RK8mS0gCujCn9h 9IFNRFvFkiWrseqGfwb4opn+sHy0mmS0RP9+UngFwSBrT2Ewloo7+oGDFTU6mqTGuBr4 02lYv88jE4xdJT1dBl+JRNB0f7R0Eu3cqDcKxjGT0GKmgrAOg2+EEUF5gL2SBHb8DmnF qBog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787546785; x=1788151585; 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=nYiRMdEWlDQywK9mXGY9RGvPOj97s6d0JHpCr/OKOYTNr60aLdZJPGq/GZswD7mM8I VoqYvlrNwofwoA/HUKlPCgJLNHCO/VYb2i9snKEUlJ4R8qwoNxljjnzMw6Z0v7HeSIb2 bGm2MhMdRujm7oNcpyf+kOSk6aan6lGBKmkTJbpB91Zx6VMqort0cBQVH8rb0Ha7PwmK kJesGziHOraacEus2ny3yLMo17fX+HH20cGqBZ+Q5RXu+17vHMZzOMtkU94ywBlw7Bpa 9KnLWsXpzrtyuoM8U/TONGWtOQBuRg8PCDCB16fpWRcpYc8IRzgjfH5aOH6rmYILGhW8 ENDg== X-Forwarded-Encrypted: i=1; AHgh+Roc6WEcU/2rfophtqqwdVZ77MwACrnoZnGNgp0eD4v01OmtB8WqnPouXTm8vwaTiyV1vW9F03RwR8SORNI=@vger.kernel.org X-Gm-Message-State: AFuF++m5dFkRDxTkIO93cCwXeD6LhASOwMrfnqpunGNO2xKnwmv6t/Nw Ao6khc+O9coAWEnI6Lbck8XsdorVRj4gwmTMdVnl9BQ2BrAye9e5mzkISllXio/N9Io= X-Gm-Gg: AR+sD13x9m5hw3KlM+ykh3pixkrB/bZ7STrcdiKat49zZrq7tiAGlDxc4qoEzVjpOVj GCR4FiYs3jtSccr4BG21lXHTWTaIHbvFXwxv03H+w8l2ItfHPq2RF1gwwDae6qEleHJrZK/KR6f G0ExSezFN3jagtFDs0W5aB1HUt4jAc3y2Iyowsm3XDeV+Vv++3CPrrU/hNrY7B4NUG6rSwaXM4M 6MzOAzZqLtK1efpA86yChO27sCMF8Bg9wqU5gFrq+gj+fbroOTFAkDny2m3y84qNDbugJut1GuG kUnjFKYSK4XjtEx/OxtPadPtCR42n2MlCNB0YTIpEaAsM5i0z8L9w2Ob8KmxVOkSJ6Y/Bqnbr0M d2YcM2Og5+IbgvTUvlhH1SPaH66BiMB8QBW9/QNlwxu7y792vOMcxyHtFu7e9ev1zd7ckXFSveZ sk68Eewt9p+NvpBZO7uUIGVlmoXMvgXotiYqE1+/bDT29c4aWqjZAOL3jXgGKsWPgpkvpcPRFGg yPGxnKVCDw23cCj/nWfF+QL X-Received: by 2002:a17:90a:fc47:b0:380:105f:8ffd with SMTP id 98e67ed59e1d1-395df5e76b5mr30273473a91.16.1787546785169; Sun, 23 Aug 2026 21:46:25 -0700 (PDT) Received: from ML-GYSUBT565.ECARX.COM.CN ([101.47.164.95]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-395e4969fb1sm8353772a91.1.2026.08.23.21.46.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2026 21:46:24 -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@lists.linux.dev, 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:46:20 +0800 Message-Id: <20260824044620.45013-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?