Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/2220764/?format=api
{ "id": 2220764, "url": "http://patchwork.ozlabs.org/api/1.1/covers/2220764/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/cover/20260408003919.235501-1-acelan.kao@canonical.com/", "project": { "id": 15, "url": "http://patchwork.ozlabs.org/api/1.1/projects/15/?format=api", "name": "Ubuntu Kernel", "link_name": "ubuntu-kernel", "list_id": "kernel-team.lists.ubuntu.com", "list_email": "kernel-team@lists.ubuntu.com", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20260408003919.235501-1-acelan.kao@canonical.com>", "date": "2026-04-08T00:39:16", "name": "[SRU,R,0/1] The second tbt storage plugged on the dock will not be recognized", "submitter": { "id": 2976, "url": "http://patchwork.ozlabs.org/api/1.1/people/2976/?format=api", "name": "AceLan Kao", "email": "acelan.kao@canonical.com" }, "mbox": "http://patchwork.ozlabs.org/project/ubuntu-kernel/cover/20260408003919.235501-1-acelan.kao@canonical.com/mbox/", "series": [ { "id": 499054, "url": "http://patchwork.ozlabs.org/api/1.1/series/499054/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/list/?series=499054", "date": "2026-04-08T00:39:16", "name": "The second tbt storage plugged on the dock will not be recognized", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/499054/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/2220764/comments/", "headers": { "Return-Path": "<kernel-team-bounces@lists.ubuntu.com>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=G1p7D/QA;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com\n (client-ip=185.125.189.65; helo=lists.ubuntu.com;\n envelope-from=kernel-team-bounces@lists.ubuntu.com;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fr42b4TxJz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 08 Apr 2026 10:39:35 +1000 (AEST)", "from localhost ([127.0.0.1] helo=lists.ubuntu.com)\n\tby lists.ubuntu.com with esmtp (Exim 4.86_2)\n\t(envelope-from <kernel-team-bounces@lists.ubuntu.com>)\n\tid 1wAGx4-0008QE-Cl; Wed, 08 Apr 2026 00:39:26 +0000", "from mail-qk1-f174.google.com ([209.85.222.174])\n by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.86_2) (envelope-from <acelan@gmail.com>) id 1wAGx3-0008Oo-4r\n for kernel-team@lists.ubuntu.com; Wed, 08 Apr 2026 00:39:25 +0000", "by mail-qk1-f174.google.com with SMTP id\n af79cd13be357-8cbb6d5f780so588925385a.1\n for <kernel-team@lists.ubuntu.com>; Tue, 07 Apr 2026 17:39:24 -0700 (PDT)", "from localhost (211-75-139-220.hinet-ip.hinet.net. [211.75.139.220])\n by smtp.gmail.com with ESMTPSA id\n af79cd13be357-8d4b24ea458sm1035153085a.9.2026.04.07.17.39.21\n for <kernel-team@lists.ubuntu.com>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 07 Apr 2026 17:39:22 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775608763; x=1776213563; darn=lists.ubuntu.com;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:sender:from:to:cc:subject:date:message-id:reply-to;\n bh=fG7Umh/OQPN8VjvKj6d9bCNwcL2if70gTLqQz98dbo4=;\n b=G1p7D/QAHMRBtQhgz+/En36dGEdWzAxWUXpD7Gm/3kRJuVEnTxD0gL8tKPtviksPmR\n vw7fiMcjGPoDmecaI6QJydEL2zQTL7tLScyQgectp1GQJSBT2nI6df6OTonXQmG677p/\n avjvMpbVl6SE3jWV5i+g1YhCBh5PG/P7veRoWvgq9+YAJp68xlNdPYy9g+VmCLtgqCAZ\n 3/A31yniSqFWnbIza+T9UappC7gQqOoosNH94dHo0urdKqQEAidLfePRxPH4pLH2db2C\n O8DQfMmltb1j+NK1GovOh2v5krIWpfuvzUOeMxo6jh55+vRha8fFs/fQojtWC+Adc6Ky\n 58vA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775608763; x=1776213563;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:sender:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=fG7Umh/OQPN8VjvKj6d9bCNwcL2if70gTLqQz98dbo4=;\n b=LR9YmfY5jDuCuwtrLjVx4qqo1V4esaoVsI24+0wmt6tMUzblxcDsEShdlI5NMEcgBU\n USKpFnZRV7ceZHz1KM78o7G0DgATDHpnV9/dHHMRWQXw7G54SsReEms5KvbfToo7RhI3\n DgpWnkj+7IwSAkgO9gFghFP2v5P/M9uQoYWgsIzSQf1cGH+qW0dQq6e859a1I8rv+t7N\n hWbvUQEjCzMv6tMyD5Rb+Cjj7lR8mF7R7vdDIn+K3EjK3ybnauZjIsTSFJaXuCjCh8wB\n FjFgIaxOZTwLZdoPLZPhnHibAmWLiGhEw73Cd4lGoJ44iqQBXORa5du8hSiN7zWA16Sz\n KH3g==", "X-Gm-Message-State": "AOJu0Yz9M7+syLBAmde2QS+B8vVwpa6mmz0Tvvl+PKN1hICife53sRJK\n ihxRz8ND875XIdmniKVRwve/noDBtHqqERIDupd/+nxVmh8Zenz1rP7if/Ngiw==", "X-Gm-Gg": "AeBDieskGp7sMxzu97S+DwRFH2vqhBaNIMLll4LYP78Wqai9roya3pI3u2GwbTdJz1Q\n ErcTVi7aokNDzs1vcJGLrtTGz0Y2Oz9GDBlozwjbYWnFAp92EClMUk83Ie7Zl09FY1iA3+3K++P\n 8uH3BxX/2G9s4FCuAbhjp4tLs4K3YGl9g0RONJPhd0E/US0O7A7uEOgw9WdaZIPJLjWlLX1m4n1\n rxcJW7mETSSFKVhkC7WNSEnEFqOfkCqz2vrz4wf/ZKOsWga+EzIekInXLz+yZU6G01yNyZnmgco\n H40y6DN4vj9nYI+YPUzzODwH+nquBmL/Yibf+/VhpzPtGckdTC8zp8HY/cRX+mMd5TeyV9xDXpz\n yv/ci866TsbDXX4jo+Tf2zDM1cAQRzAe8tKoQTQrddlsfT952ScP8lYdjyI+ZfRHYTGtm3kAX8v\n 6E8RWKszhOHYUyG27qyjVJ50JpNKWHrIMY3DWx77zsdyRUhM5TjGGc", "X-Received": "by 2002:a05:620a:201b:b0:8d5:bb98:f3ce with SMTP id\n af79cd13be357-8d5bb98f6f6mr1697309385a.60.1775608763139;\n Tue, 07 Apr 2026 17:39:23 -0700 (PDT)", "From": "AceLan Kao <acelan.kao@canonical.com>", "To": "kernel-team@lists.ubuntu.com", "Subject": "[SRU][R][PATCH 0/1] The second tbt storage plugged on the dock will\n not be recognized", "Date": "Wed, 8 Apr 2026 08:39:16 +0800", "Message-ID": "<20260408003919.235501-1-acelan.kao@canonical.com>", "X-Mailer": "git-send-email 2.53.0", "MIME-Version": "1.0", "Received-SPF": "pass client-ip=209.85.222.174; envelope-from=acelan@gmail.com;\n helo=mail-qk1-f174.google.com", "X-BeenThere": "kernel-team@lists.ubuntu.com", "X-Mailman-Version": "2.1.20", "Precedence": "list", "List-Id": "Kernel team discussions <kernel-team.lists.ubuntu.com>", "List-Unsubscribe": "<https://lists.ubuntu.com/mailman/options/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=unsubscribe>", "List-Archive": "<https://lists.ubuntu.com/archives/kernel-team>", "List-Post": "<mailto:kernel-team@lists.ubuntu.com>", "List-Help": "<mailto:kernel-team-request@lists.ubuntu.com?subject=help>", "List-Subscribe": "<https://lists.ubuntu.com/mailman/listinfo/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=subscribe>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "kernel-team-bounces@lists.ubuntu.com", "Sender": "\"kernel-team\" <kernel-team-bounces@lists.ubuntu.com>" }, "content": "From: \"Chia-Lin Kao (AceLan)\" <acelan.kao@canonical.com>\n\nBugLink: https://bugs.launchpad.net/bugs/2139572\n\n[Impact]\nOn Dell systems (CID: 202501-36199), when two Thunderbolt storage devices\nare connected -- either both through a Thunderbolt dock, or one through a\ndock and one through a daisy-chained TBT monitor, or both directly to the\nsystem -- the second TBT storage fails to be recognized. Re-plugging a TBT\nstorage also causes the re-plugged device to not be detected. The issue is\nspecific to TBT storage devices; TBT monitors are not affected.\n\nRelevant kernel log showing spurious hotplug events during tunnel\nactivation that prevent pciehp from detecting the second device:\n\n thunderbolt: acking hot unplug event on 702:2\n thunderbolt: PCIe Up path activation complete\n thunderbolt: hotplug event for upstream port 702:2 (unplug: 0)\n thunderbolt: hotplug event for upstream port 702:2 (unplug: 1)\n\nThe fix is to schedule a delayed pci_rescan_bus() after tunnel activation.\nHowever, on the current kernel, pci_rescan_bus() alone does not bring the\nmissing device back because pci_enable_resources() refuses to enable a PCI\nbridge when any of its bridge window resources are unassigned. Since not\nall bridge windows are always needed, this incorrectly blocks the bridge\nfrom being enabled, and downstream devices behind it remain inaccessible.\nA set of upstream PCI resource handling fixes is required to make the\nrescan path work correctly.\n\nAffected hardware: Dell systems (CID: 202501-36199)\nFailure rate: random, high on affected hardware\n\n[Fix]\nTwo groups of patches work together to fix this issue:\n\n1. PCI bridge window resource handling fixes (upstream in v6.18):\n\n A series of 6 patches from Ilpo Järvinen that fix the PCI resource\n assignment and bridge enablement path. The critical change is allowing\n bridges to be enabled even when not all bridge window resources are\n assigned, since not all windows are always needed. Without these fixes,\n pci_rescan_bus() discovers the missing device but cannot enable its\n parent bridge, so the device remains inaccessible. The remaining\n patches are prerequisites that ensure bridge window resource flags are\n properly preserved and managed throughout the lifecycle.\n\n Upstream commits (all in v6.18):\n 2ee33aa14d3f PCI: Always claim bridge window before its setup\n b15f45ab65e2 PCI: Disable non-claimed bridge window\n 3baeae36039a PCI: Use pci_release_resource() instead of release_resource()\n 1cdffa51ecc4 PCI: Enable bridge even if bridge window fails to assign\n ff77c5219747 PCI: Fix pdev_resources_assignable() disparity\n 8278c6914306 PCI: Preserve bridge window resource type flags\n\n2. Thunderbolt PCIe enumeration fix (SAUCE patch, under review upstream):\n\n Schedule a delayed pci_rescan_bus() (300ms) after tunnel activation to\n catch devices that pciehp missed due to spurious hotplug events. Since\n pci_rescan_bus() is idempotent, it is safe to call unconditionally.\n\n Patch:\n https://lore.kernel.org/lkml/20260121060857.237777-1-acelan.kao@canonical.com/T/#u\n\n[Test Plan]\n1. Connect a TBT storage to the Thunderbolt dock\n2. Connect the dock to the system and boot into the OS\n3. Verify the first TBT storage is recognized:\n $ lsblk\n4. Plug a second TBT storage to another TBT port on the dock\n5. Check if the second TBT storage is recognized:\n $ lsblk\n6. Unplug and re-plug one of the TBT storage devices\n7. Check if the re-plugged storage is recognized:\n $ lsblk\n8. Repeat steps 4-7 at least 10 times\n\nWithout the patches: The second TBT storage or re-plugged storage fails\nto be detected\nWith the patches: Both TBT storage devices are recognized reliably\n\n[Where problems could occur]\nThe PCI bridge window resource handling changes are a significant rework\ntouching core PCI subsystem code (setup-bus.c, setup-res.c, probe.c).\nThese changes alter how bridge window resources track their type flags and\nhow bridge enablement decisions are made. If the new IORESOURCE_UNSET /\nIORESOURCE_DISABLED flag semantics are not handled correctly in all code\npaths, PCI devices behind bridges could fail to be assigned resources or\nbridges might not be enabled, resulting in devices not being detected at\nboot or after hotplug.\n\nThe Thunderbolt SAUCE patch adds an unconditional delayed pci_rescan_bus()\nafter tunnel activation. While pci_rescan_bus() is idempotent, if the\ntiming interacts poorly with pciehp's own enumeration on some hardware\nconfigurations, it could theoretically cause duplicate enumeration attempts\nor lock contention between pci_lock_rescan_remove() and pciehp's own\nlocking.\n\nChia-Lin Kao (AceLan) (1):\n UBUNTU: SAUCE: thunderbolt: Fix PCIe device enumeration with delayed\n rescan\n\n drivers/thunderbolt/tb.c | 35 +++++++++++++++++++++++++++++++++++\n 1 file changed, 35 insertions(+)" }