From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A50003537E0 for ; Mon, 27 Apr 2026 08:11:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.17 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777277477; cv=none; b=VwalT1VcOmAFEeO62ffJ0Ohqdi6JddgxYirNrBjXAEe9Fi5CtEgRh7Cgiejqhe7lkvEDC3ug5jG7MHuLd6Dq10l3vUYUW3hVNUz2Ts/5Z6ggVYZtvhalPYEcMFxCHDtU2ic1thzh6MKnHB6+oJF526snXb8PP0CXSywkXmDMAiQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777277477; c=relaxed/simple; bh=LuilJs/8MblmvL9zoollb70chFNzeQp37VSrw4suFjk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SUPDEBsuuiGR4WnVJIbqiUj+HNoeZkzgGE72HNaZo6pCy3lO/nLalvLX0JjtBhKUYYWw1Q2y2jVfx54NTfw2ubzALLDhyUqwsyO6uGr17Im/+SEw6T9VgbOC3sJ64fWANhGmaOG4R5HmMgcKG5n7tC735oEpmdubvQcDM1C1K38= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=pass smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=bUM8BZ6b; arc=none smtp.client-ip=192.198.163.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="bUM8BZ6b" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1777277476; x=1808813476; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=LuilJs/8MblmvL9zoollb70chFNzeQp37VSrw4suFjk=; b=bUM8BZ6b8zWbl1HSp+9KTdtx2gTxXPLUL3hVxk16h2HPikBrThBzHpJG xQT/nXngXFp5aO1/UC+LF8Komg/fhVXRMko1nMgHghc7AVcJA6x091KiM gZ8H5WTSBC1n+KnoRj/3PhZ5LrWnnMUwUwqkoHmc7cDCnyV/5tTgQ3mR+ +HVxuH0dZWrAyIGSgas6LvjuNZZ+t0aLFqQk5qjWrntu2ROwo0QyxjlaR 6Dt7notYx9OW17kTY7T/LsMC7aQwCwdrLdKY6X2clLMgM4kn4MorR6Uzw ATF5LJb8K9EFMRL6iq2XKo2LE7Q6RyZq32dxPEGr+Cv4VcUdj/oDCSU05 g==; X-CSE-ConnectionGUID: 5tbBXpRkRlOsLy3osJx2JQ== X-CSE-MsgGUID: pxhUUHr6T9KwodmqsiG15A== X-IronPort-AV: E=McAfee;i="6800,10657,11768"; a="78034438" X-IronPort-AV: E=Sophos;i="6.23,201,1770624000"; d="scan'208";a="78034438" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Apr 2026 01:11:15 -0700 X-CSE-ConnectionGUID: y7LSobICQSyb7xr/UwILsQ== X-CSE-MsgGUID: BwZ8cAejTka9dlUpjwrTAg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,201,1770624000"; d="scan'208";a="237531368" Received: from black.igk.intel.com ([10.91.253.5]) by orviesa003.jf.intel.com with ESMTP; 27 Apr 2026 01:11:13 -0700 Received: by black.igk.intel.com (Postfix, from userid 1001) id 855E9A6; Mon, 27 Apr 2026 10:11:09 +0200 (CEST) From: Mika Westerberg To: linux-usb@vger.kernel.org Cc: Yehezkel Bernat , Lukas Wunner , Andreas Noever , Alan Borzeszkowski , Gil Fine , Mika Westerberg Subject: [PATCH 10/12] thunderbolt: Remove service debugfs entries during unregister Date: Mon, 27 Apr 2026 10:11:07 +0200 Message-ID: <20260427081109.2337731-11-mika.westerberg@linux.intel.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260427081109.2337731-1-mika.westerberg@linux.intel.com> References: <20260427081109.2337731-1-mika.westerberg@linux.intel.com> Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit We add them as part of the register path so to keep it symmetric remove them as part of the unregister path. This also removes them even if the service itself is not yet released (but is unregistered), thus allowing new register with the same service name to happen. Signed-off-by: Mika Westerberg --- drivers/thunderbolt/xdomain.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/thunderbolt/xdomain.c b/drivers/thunderbolt/xdomain.c index 0e97d0ad7733..76e1902d18f3 100644 --- a/drivers/thunderbolt/xdomain.c +++ b/drivers/thunderbolt/xdomain.c @@ -1035,7 +1035,6 @@ static void tb_service_release(struct device *dev) struct tb_service *svc = container_of(dev, struct tb_service, dev); struct tb_xdomain *xd = tb_service_parent(svc); - tb_service_debugfs_remove(svc); ida_free(&xd->service_ids, svc->id); kfree(svc->key); kfree(svc); @@ -1050,6 +1049,14 @@ const struct device_type tb_service_type = { }; EXPORT_SYMBOL_GPL(tb_service_type); +static void __unregister_service(struct device *dev) +{ + struct tb_service *svc = tb_to_service(dev); + + tb_service_debugfs_remove(svc); + device_unregister(&svc->dev); +} + static int remove_missing_service(struct device *dev, void *data) { struct tb_xdomain *xd = data; @@ -1061,7 +1068,7 @@ static int remove_missing_service(struct device *dev, void *data) if (!tb_property_find(xd->remote_properties, svc->key, TB_PROPERTY_TYPE_DIRECTORY)) - device_unregister(dev); + __unregister_service(dev); return 0; } @@ -1154,6 +1161,7 @@ static void enumerate_services(struct tb_xdomain *xd) tb_service_debugfs_init(svc); if (device_register(&svc->dev)) { + tb_service_debugfs_remove(svc); put_device(&svc->dev); break; } @@ -2092,7 +2100,7 @@ void tb_xdomain_add(struct tb_xdomain *xd) static int unregister_service(struct device *dev, void *data) { - device_unregister(dev); + __unregister_service(dev); return 0; } -- 2.50.1