{"id":2219015,"url":"http://patchwork.ozlabs.org/api/patches/2219015/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260402093850.23075-1-icheng@nvidia.com/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260402093850.23075-1-icheng@nvidia.com>","list_archive_url":null,"date":"2026-04-02T09:38:50","name":"PCI/NPEM: Set LED_HW_PLUGGABLE for hotplug-capable ports","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"e7c7414aa3b92f3dd6973fea7d67eb33832d0d14","submitter":{"id":92853,"url":"http://patchwork.ozlabs.org/api/people/92853/?format=json","name":"Richard Cheng","email":"icheng@nvidia.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260402093850.23075-1-icheng@nvidia.com/mbox/","series":[{"id":498462,"url":"http://patchwork.ozlabs.org/api/series/498462/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=498462","date":"2026-04-02T09:38:50","name":"PCI/NPEM: Set LED_HW_PLUGGABLE for hotplug-capable ports","version":1,"mbox":"http://patchwork.ozlabs.org/series/498462/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2219015/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2219015/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-pci+bounces-51715-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=m0K/w+JF;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=104.64.211.4; helo=sin.lore.kernel.org;\n envelope-from=linux-pci+bounces-51715-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=\"m0K/w+JF\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.93.201.52","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com","smtp.subspace.kernel.org;\n spf=fail smtp.mailfrom=nvidia.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nvidia.com;"],"Received":["from sin.lore.kernel.org (sin.lore.kernel.org [104.64.211.4])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fmcjb1Lz6z1yCs\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 20:57:55 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id B7221304135A\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  2 Apr 2026 09:39:18 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 32F163D5642;\n\tThu,  2 Apr 2026 09:39:16 +0000 (UTC)","from CY3PR05CU001.outbound.protection.outlook.com\n (mail-westcentralusazon11013052.outbound.protection.outlook.com\n [40.93.201.52])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 8B3153D3CE7;\n\tThu,  2 Apr 2026 09:39:08 +0000 (UTC)","from BL0PR12MB2370.namprd12.prod.outlook.com (2603:10b6:207:47::27)\n by DM4PR12MB5841.namprd12.prod.outlook.com (2603:10b6:8:64::13) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Thu, 2 Apr\n 2026 09:39:02 +0000","from BL0PR12MB2370.namprd12.prod.outlook.com\n ([fe80::86cf:c3ec:2cf5:74c8]) by BL0PR12MB2370.namprd12.prod.outlook.com\n ([fe80::86cf:c3ec:2cf5:74c8%3]) with mapi id 15.20.9769.016; Thu, 2 Apr 2026\n 09:39:02 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775122755; cv=fail;\n b=J09wTTGhXgZPnmdEl+Bco4byziY18fOQwiXg656jr4MRCKw2J+4QjcGHbXyhAwRpQmK8XKVTfUxb0FlEZtiP84zezQPnc8M1qk5FtIBCskpaUYT4WwqHtoBPudXRvaZxMd3nVXSydPoyf/CPIJgbZueI3Bp3q0ao9nDSiYifExM=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=N0PmRKt4dMmsLeSQea+CVT9XRmCeEL4d1ARw1v8HREh/7VWF2wyFNCh8lNqArjJp+m/nDBKfNb0exm3prutapHaiVgMydm/HD899R/7J0H8HLNxeFeAKzZrjfQl2ECQPz+wnu9KfUquccKZT92lJtG5jNw5JvdzlPdn6VRgjG72cYeP6PTvMVUoAiaQcT0OJtw2xECfTc6/V2HqcmBQCKCijAzjkSG+yqFNKycCM2B1bmRAXx6ezUcYZ8Z2Z2ZBJA+IxQqTRFLVri/eb6/9QBs6i/hCm8WGdhov5qcgHmOBmVYJzeugayXEf99PJvHRZbEYR+zxDAFsByNQlZTnI5A=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775122755; c=relaxed/simple;\n\tbh=RMQrCLdbz4jiURBfeNjRslP0s1ygPNcG7d8k3DPgmy0=;\n\th=From:To:Cc:Subject:Date:Message-Id:Content-Type:MIME-Version;\n b=sJK8tm4qCVUv5gZ9P0OjxdEw5FejEHIbx0FG+u+AXMnSIAcG/uGyPaqX/OeLQX3oD2ZqYFCHArrKZ1GvwRzwCzKcd1oePK2Z7ki86fBdDtvWRYdPiUl0VpBoKla6ZrXslNq2c/iIc1/PqxuGOBPJktFFM8LKR69VTC3xeFIW5zA=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=ejqrYxkyVjscL/VY7y7kuDp/OuQgloD6i2Ludz84Qdw=;\n b=b5l8cXq5TSUrTEnDqUmssrbLG5ZHiv7wGm/woBflizn3a87QwQaA6cuRkAgzDGPdfWPoJ3qI48hBB9ABpPGR34IJeJAG/Ns100ZyE2eSJc2Kq8VoyK6EBS/1MXDy+iqUOBQAgsajneYmsiMD6HIfRa1Hs91f1J83ywJT01Ay8+OZ0hhAdEpodCsTnF8yVArZVx8B4LcYUH0kVTOmlMPAKZrFRjxIrA8ia3GwaMKcmaRZiH/zA9/LqGhSPKo/m7plxey19rE2r64Zbf29xRM9Yu+rHI4sEVsIdqvAWSjmrvoVTFKhjTfGSwuN7q95Og2CV3bKcrm+EZCCyuvT05F70Q=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com;\n spf=fail smtp.mailfrom=nvidia.com;\n dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=m0K/w+JF; arc=fail smtp.client-ip=40.93.201.52","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;\n dkim=pass header.d=nvidia.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=ejqrYxkyVjscL/VY7y7kuDp/OuQgloD6i2Ludz84Qdw=;\n b=m0K/w+JFUTyDlHtxM+zqSJ65FURUi47p5uguYt2+a7xMoR9WNXlKRududoRl8LDM42AYhBJifevtfeYWCuwGEJWMJVkqk1kHuoxS7CqwOBB5yaOY4b8ZUPNyYfoQ2wBBvWwaXu18lp6J5B+71x6z2PdWdcClYuIf+4YydPJQdC+DMpPVaPqdydRIdk3fdgnaYhQ8P5ooZ0B8jjvhRdhzarwtPCei9neO0/1uZoS8JviRHL2K1OEWjRsy3fyJel/lOygx7ZLB++XdwB3GgH3wQM4MZG9I4ZDYeRuB5dZ+hETbvKQrD0clfWXolTyyTBO2Xs1gaEK2kV8lleFnNTSIew==","From":"Richard Cheng <icheng@nvidia.com>","To":"bhelgaas@google.com","Cc":"linux-pci@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tjan@nvidia.com,\n\tnewtonl@nvidia.com,\n\tsreddym@nvidia.com,\n\tskomatineni@nvidia.com,\n\tvidyas@nvidia.com,\n\tkristinc@nvidia.com,\n\tkaihengf@nvidia.com,\n\tmochs@nvidia.com,\n\tRichard Cheng <icheng@nvidia.com>","Subject":"[PATCH] PCI/NPEM: Set LED_HW_PLUGGABLE for hotplug-capable ports","Date":"Thu,  2 Apr 2026 17:38:50 +0800","Message-Id":"<20260402093850.23075-1-icheng@nvidia.com>","X-Mailer":"git-send-email 2.39.5 (Apple Git-154)","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"KUZPR01CA0010.apcprd01.prod.exchangelabs.com\n (2603:1096:d10:34::16) To BL0PR12MB2370.namprd12.prod.outlook.com\n (2603:10b6:207:47::27)","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"BL0PR12MB2370:EE_|DM4PR12MB5841:EE_","X-MS-Office365-Filtering-Correlation-Id":"a76a6b7c-ceb2-4612-635d-08de909bac49","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003;","X-Microsoft-Antispam-Message-Info":"\n\tDDdzQd8qK8fls/x1iBrpraDT2loGSk7nVg2BnqOE9YKrQWwQ6mFe7pOuwJI/wacpvm5vSaFt2lKO1Yg0IQbD68UmvORVYhQJs1xsvdej2xcCojO+mK/gyYJHqZL15TDQHJOC4XyQho9CwnUXeh3AB0iK8ImLA7JUGesbr0aFSyS1XYGQAKfiA+ViJscxeUOSnR55mcDGXykVassTwzMPjnWkd01g43ARwLZBt7fh0vCUJYo/m48oHegRvIoS5YaHnIxO1e7NNorvn1bpylhzHY/5Ja/axUWzOXCRGfWOmJQwOMKFoJ0ty7KIx6wGXGR6s/J8vN14DUcv0ISAwaUit4+nW0dQlaPJ3rrXkB28ZcywqswI/xsx4WjsxrEiGk7z+v/XXeqOtlO8i32y2uhjDPApfYj6fNFVogB2ZWbiaj42uDt6AFr1SuC+qe8XbCn7K6QWnuSmjDaIHLxVI8V3q4iYil5DAePsLcJbFMNayL/AaiUZiieAY2fUMzbhfQA/FIKUdw7KstYbVAeGCVFxfva0Ver8+40czfL8UIYYJCn5KJGVwrjjGwYO0zJSTvKjg4dZ7gLNg8gRxk7GSecAu5bzFpZsD++wY3zLo0ZJyKnY2itX60P6qfEPuxWmQtYYkn1wkBaYo71Bkn41nD1ShQl7JPxud/D406cIDihBDJxYx/OqtqNkBqqmTb2MZ6v7DT+tNnk2cI8EEiQizjQD1fMaEVwM/8N6Zq+2QW+2P3I=","X-Forefront-Antispam-Report":"\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2370.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n RNx3lLUeaqXi47NDwpx6+oqvB5qiAIM01BgkxzEax4lcwpdtL4l3XSbFT/Ic1LiERczO8aIW6Ed4jVNetR4pcB4d6wSFmxA3kLWgYUUXNmvD3Cgpig7lG7FTAsWhzGjF2OkH+sl0sioy+/MS5qTqzAqAMadKR9thUOvZUq6kZuNQ5MyNnjYq3//Et+zpS6EA7PPn2HGE3Pgfl/U9m53Xlp1rdaXw4M8WNRRYmXGupkoo4Fsqw2eAG1QSMGsTi8Za7pem11pZGB66awC64A0vY+ZtEn50snBDUyAoxNSit/q7uAWV8LaPExxmGggo8qjYiv0cBoERQiXVYWHjOFnbHWsuE60v2yddyqvBkyqlgI8olMRohiVBys1hLi+nisF5AuJE6P3/gnU8CCNMEkO02PYTiIgX8l+TFh6HfYepXQa9/XqgRJTVCq66d0Wp+RMZyuKqTbOfYvk7yIAbdvbbWDiaeAacygFJJ01ISD1ZmgEdz5aptnqQE6pF1CZbMzRT6pMApYSe5y0zmk7cOAyBT5b2z6z0m+iVf9kwKLq20wvj8VT5S3/7XJGWct70xTozd+zxMxdQhaheyg0qtSQqpB0QHzJUskJfJPNeXpAv0/bxeFBuDAdUKvc+WtiWqBBUoWOaac7qHfUVTvOy0lL6RrurQ6mC2rAbNRfLf7lhCpy8IgTpVBpIIA8H/l2Mu3esP8bFumokMufyYV8SAkkCFO+B0FYYWucu/6N6vO1n4h8oHDF+ZDbDOyclyVrAQNigvh7SZ1AyHJa+x+SprHiwErsp1Z49BSrAhz13uWsMsjnl9hresNvGcnya+Rjr8Kq4iHvhHTG3YwdfvTnq9uHK/tqCcVeOA+7PvWCWFvSP5kSBLe/x5LATM2RU3QDgQ6zoa6EyVr1N1V3xqzvubXz9yp+8DQztqWAqeD1nDQUR52CDuwe4SYhiAAE7vJL1b0ZXk4eBQXXCFAgJWnfsGsOPP6bI2wmYKSx+x8nbb5GFZl9xqU62ZlkqQ9O3V+FMgsdKaGoQZoj8Ayn89V46IxNitvP5uap1jciMEynP2sRJaqfg5vkGpM8wxEWBouOPsWinYqae2omf9IAHNc8Ebr9XQ7RIzM4x+bML4Y65+EqPeowgHcutCmRktASHtRATAAKHTzkpB2TRnwG4zbFXvIIv8MO/eq7Jz7e5hqa9oobm9O1LuhlzxeMhq078o96F4gOakJnGWrjWfnkbjNtIzMFUaXC6h7WeK0zh3ckizGUH1+wegMV3+qbCvlrTrHNtykhdCQBjKmAvXHbR6cMlAjdaUSj7mKw5w5RROYt0YXInwiQ2ZTu0Sar02NT6yUkAQKmQrJj0VQHdCv7jffIub1u928APPioByelGMs+ucJGNixqCqECmkeR2+NVJP2MnQqqc/UIMb8maPHEy7OokFQoYlysGxc1CWH0lFAvxqN9HBd7mFKewbJF/DIAzkN2bdZBr7Y1HuWaUMKAiIgkKIHChLBmjYG8gBFq4+d2YozMCevqKiGw7SA5ldi8TXL5UQqVCguvoctLsRC7nsOrmtnhi8Qt2MKcSrqmbnWJ8o1y25ISBr9EUSoyUIBC8H1AixpqHsvQXpKpJ+UQy70WQgtb7+/q9eSslwMb4Xc2bjmsyRAvFz52+BR4LLbJSrBer1Cfrq8wFmyNyHA2a6SenV4pEew/ajQiEEelKh1wGb3RwwAUOs2Pdd70SwKrhNZb8PTswStHDI7pyB5fGoCTHkUcINQ==","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n a76a6b7c-ceb2-4612-635d-08de909bac49","X-MS-Exchange-CrossTenant-AuthSource":"BL0PR12MB2370.namprd12.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"02 Apr 2026 09:39:02.2649\n (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"43083d15-7273-40c1-b7db-39efd9ccc17a","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n 3CYERdOWl4L00U4ckLTEgw/G8M4u9pL5TPLKTP5tG+YC+VT2Cnd5FHWRt7jPjh0TMe9/q0biQQB4L5BNYA5Zwg==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DM4PR12MB5841"},"content":"NPEM registers LED classdevs on PCI endpoint that may be behind\nhotplug-capable ports. During hot-removal, led_classdev_unregister()\ncalls led_set_brightness(LED_OFF) which PCI config on a disconnected\ndevice, returning -ENODEV:\n\n```\nleds 0003:01:00.0:enclosure:ok: Setting an LED's brightness failed (-19)\n```\n\nThe LED core already suppresses this for devices with LED_HW_PLUGGABLE\nset, but NPEM never sets it. Add the flag since NPEM LEDs are on\nhot-pluggable hardware by nature.\n\nFixes: 4e893545ef87 (\"PCI/NPEM: Add Native PCIe Enclosure Management support\")\nSigned-off-by: Richard Cheng <icheng@nvidia.com>\nAcked-by: Kai-Heng Feng <kaihengf@nvidia.com>\n---\nThe bug was triggered on an ARM64 machine with CPU model Olympus.\nKernel version is v6.17.\nThe PCI topology is\n```\n$ sudo lspci -tv\n-[0001:00]---00.0-[01]--+-00.0  Mellanox Technologies CX8 Family [ConnectX-8]\n                        +-00.1  Mellanox Technologies CX8 Family [ConnectX-8]\n                        +-00.2  Mellanox Technologies CX8 Family [ConnectX-8]\n                        \\-00.3  Mellanox Technologies CX8 Family [ConnectX-8]\n-[0002:00]---00.0-[01]--\n-+-[0003:00]---00.0-[01]----00.0  Montage Technology Co., Ltd. Device c002\n \\-[0003:80]---00.0-[81]----00.0  Montage Technology Co., Ltd. Device c002\n-[0004:00]---00.0-[01]--\n-+-[0005:00]---00.0-[01]----00.0  Samsung Electronics Co Ltd Device a810\n +-[0005:40]---00.0-[41]----00.0  Samsung Electronics Co Ltd Device a810\n +-[0005:c0]---00.0-[c1]----00.0  Intel Corporation I210 Gigabit Network Connection\n \\-[0005:e0]---00.0-[e1-e2]----00.0-[e2]--+-00.0  ASPEED Technology, Inc. ASPEED Graphics Family\n                                          \\-02.0  ASPEED Technology, Inc. Device 2603\n-+-[0006:00]---00.0-[01]--\n \\-[0006:80]---00.0-[81]--\n```\nWe're targeting on 0003:01:00.0 CXL [0502]: Montage Technology Co., Ltd. Device [1b00:c002] (rev 03).\nFirst use `sudo setpci -s 0003:00:00.0 0x1f4.w=0x0002` to set UnmaskLinkDisable in CXL DVSEC.\nThen disable the link with `sudo setpci -v -s 0003:00:00.0 CAP_EXP+0x10.b=0x10:0x10`\n\n\nBest regards,\nRichard Cheng.\n---\n drivers/pci/npem.c | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)","diff":"diff --git a/drivers/pci/npem.c b/drivers/pci/npem.c\nindex ffeeedf6e311..c51879fcd438 100644\n--- a/drivers/pci/npem.c\n+++ b/drivers/pci/npem.c\n@@ -504,7 +504,7 @@ static int pci_npem_set_led_classdev(struct npem *npem, struct npem_led *nled)\n \tled->brightness_get = brightness_get;\n \tled->max_brightness = 1;\n \tled->default_trigger = \"none\";\n-\tled->flags = 0;\n+\tled->flags = LED_HW_PLUGGABLE;\n \n \tret = led_classdev_register(&npem->dev->dev, led);\n \tif (ret)\n","prefixes":[]}