{"id":2229070,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2229070/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260427175302.570671-1-mahesh.vaidya@altera.com/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.1/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},"msgid":"<20260427175302.570671-1-mahesh.vaidya@altera.com>","date":"2026-04-27T17:53:02","name":"PCI: altera: Fix resource leaks on probe failure","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"dfe77ba600fe7eab17031b3623fa67b451c8387e","submitter":{"id":92067,"url":"http://patchwork.ozlabs.org/api/1.1/people/92067/?format=json","name":"Mahesh Vaidya","email":"mahesh.vaidya@altera.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260427175302.570671-1-mahesh.vaidya@altera.com/mbox/","series":[{"id":501698,"url":"http://patchwork.ozlabs.org/api/1.1/series/501698/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=501698","date":"2026-04-27T17:53:02","name":"PCI: altera: Fix resource leaks on probe failure","version":1,"mbox":"http://patchwork.ozlabs.org/series/501698/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2229070/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2229070/checks/","tags":{},"headers":{"Return-Path":"\n <linux-pci+bounces-53237-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=altera.com header.i=@altera.com header.a=rsa-sha256\n header.s=selector2 header.b=sTrGgXOM;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-53237-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com\n header.b=\"sTrGgXOM\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.56.21","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=altera.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=altera.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=altera.com;"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\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 4g4B5M3rS9z1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 28 Apr 2026 03:53:59 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 5CE4C3023518\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 27 Apr 2026 17:53:24 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 32BC230E829;\n\tMon, 27 Apr 2026 17:53:23 +0000 (UTC)","from BN1PR04CU002.outbound.protection.outlook.com\n (mail-eastus2azon11010021.outbound.protection.outlook.com [52.101.56.21])\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 856E4364EA4;\n\tMon, 27 Apr 2026 17:53:21 +0000 (UTC)","from SA1PR03MB6498.namprd03.prod.outlook.com (2603:10b6:806:1c5::7)\n by CH7PR03MB7785.namprd03.prod.outlook.com (2603:10b6:610:24f::8) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Mon, 27 Apr\n 2026 17:53:17 +0000","from SA1PR03MB6498.namprd03.prod.outlook.com\n ([fe80::feea:da58:faeb:9ebc]) by SA1PR03MB6498.namprd03.prod.outlook.com\n ([fe80::feea:da58:faeb:9ebc%4]) with mapi id 15.20.9846.025; Mon, 27 Apr 2026\n 17:53:17 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777312403; cv=fail;\n b=OKmoHymxqtmlJVrfn4ROTiF6S0Z0LB9pOJ37EDgFYAVzWn2omQCSJ5l4a77yXXufHRSuestwavFurZW2yhxOunuOh2OTqI/0ih7ds9rXCY1BZPKD2VfevNZ2ppbw4vlmMz4Qy3LBfBYy212I7w86DBMKmUewo6SNK7i/9kDem+A=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=gH2lFfitse24NMexf02hTh7GHwh9JYGwakmBa7gnHCa3acfumBckkphz1ggIBVVuf4cZIdNzVHcKdZj/QCO+Wb+jEI6lH/zTlvr/JCkAsNaablNJWKykXlGRGDtqV1hF4GCH1IW2ybvHrEHznLZGP1yhcSJUCjzV6HC6w7zEhRYJPxchmYxcTmG3fXg8M86SdWofM2c+xUvSqMr4E+iUqSUp5xW3jAoG2m25ciCrkqp1KyKShzXWouD5VzUir2pOqOEr7mmqks+ckTgl3jmRJSC1t4V/AtFk2UnjPkISlKBl46/lQMEF/D2UQnglV5BPJj/jZbCHwcZWVYgM507WJQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777312403; c=relaxed/simple;\n\tbh=tH9KC/TGCIq5rP8Dut/9CdDocjGCwVvb2v2isVNlByw=;\n\th=From:To:Cc:Subject:Date:Message-Id:Content-Type:MIME-Version;\n b=oHns2SHPC9z9jNvb/lqjwPSCG66iI+z3uSM2k1jsUtQBqOqcrNqHT5LojWTzcno0aTDsLx8A2N58kYU986cK8Od+l9xHhcXGrlMEBtbHqDDcC0jpYNgPUqEHqqRMpMoIWNQ/Kq1HZWB4BFS3I0nqp5TJAmOFn0ZgLCne1MWnzw8=","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=d656+IBRHCC9v3A6/hXVTAvRqGUGREA+E+p+KijAyUs=;\n b=JARtU1w2sWzU+hUisJXF3dmc2gAsPqXRYZpl6uFeyEJQvqNbxXmQKERUr75iXjTXfF22ID/66zijumuJXOhWRDu/RUrL52avD+I1D0RfA/+Ra6xh6xxnFtuqKM/GTX75sx9V+KYdM+a5PaXsnVLmsIvzmWoGC0V9Jzgwq8GiRrh/jM1kRrOt+0warc9nKxUVlXvrjuMSstcHREXSAh48o5Cbf+FgotCrtjsSsfd6OeLY7pGMZJ61HS5/ZIuBLXctZMJnrqttTW3x3a0wrETfSX0Q5BjJEVE7+qJFAeaGVqpoEgTLhiVpvE4jz1Tfjeqmd8TlmenryUaAuTW6cIw4sA=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=altera.com;\n spf=pass smtp.mailfrom=altera.com;\n dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com\n header.b=sTrGgXOM; arc=fail smtp.client-ip=52.101.56.21","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com;\n dkim=pass header.d=altera.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=d656+IBRHCC9v3A6/hXVTAvRqGUGREA+E+p+KijAyUs=;\n b=sTrGgXOMtSV9vZPqnahJaZ2aNY97esXj3EJT4rskBi0hvgTqvIOktIHcPS5YGDGDGVCYhXIJonOMt+yYoLN4JiWFcAEmSuSN+b0L1l7tPqHoJd08k7hA+Q89dA2qWN/5uUff0AXThVeScFXSwB+/GYb9IJb4w01UGOmqjjUOXKcv5ohG1b2lYMKSYDXPqa+ljmjXOgbhSFtYKG1zCvfeNrxE+TImuk+kgQkO/o3RSpSjTb6/sQ1MZGbKTzAnPcHDuo8uZdSbAcinRdQPzkQlaQyOnCcwEQYWPxGjNWryd4CwtKdFOHpDJlmPOyX6UNTv0/ITh0fCsA73khgy4FoAKg==","From":"Mahesh Vaidya <mahesh.vaidya@altera.com>","To":"joyce.ooi@intel.com,\n\tlpieralisi@kernel.org,\n\tkwilczynski@kernel.org,\n\tmani@kernel.org,\n\trobh@kernel.org,\n\tbhelgaas@google.com,\n\tley.foon.tan@intel.com","Cc":"linux-pci@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tstable@vger.kernel.org,\n\tsubhransu.sekhar.prusty@altera.com,\n\tMahesh Vaidya <mahesh.vaidya@altera.com>","Subject":"[PATCH] PCI: altera: Fix resource leaks on probe failure","Date":"Mon, 27 Apr 2026 10:53:02 -0700","Message-Id":"<20260427175302.570671-1-mahesh.vaidya@altera.com>","X-Mailer":"git-send-email 2.34.1","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"SI2PR01CA0052.apcprd01.prod.exchangelabs.com\n (2603:1096:4:193::11) To SA1PR03MB6498.namprd03.prod.outlook.com\n (2603:10b6:806:1c5::7)","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":"SA1PR03MB6498:EE_|CH7PR03MB7785:EE_","X-MS-Office365-Filtering-Correlation-Id":"99f031d3-c7b1-43f1-cc6b-08dea485dc3e","X-MS-Exchange-AtpMessageProperties":"SA","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|366016|1800799024|376014|7416014|18002099003|56012099003|55112099003;","X-Microsoft-Antispam-Message-Info":"\n\tKjFBDKsf98Sz2U3Xh0KByxQIxWJ2T+pCtpyr+b3+r8xvn7jynTEB1BBoIESgGG6a2kngSQc01fuwPSldoO1XLvZT3hphv662r5eJD3IF5eHIQTvdDnwXXNUB8+dxOE72acp8LeG+pgFgFoh0eehsPadJcHoJrbs/t9sVxxLv4tB3iE/W5YbbL6LpPyEtmG7rPPGs8CQEZxmG8jXcAqVvzklETxWyUGFKQ78QvqUhJTGEsesHp2ZfZisoNVnbwrhqsQblDgyoTDQESF3Wq2laqDFihigHoPQZJZIGGBzOs3717ZXzJcu3deONAIXIA7Oh8GHpDCeB4r05ljMPNg+VnrAByQXj0f16JkQWRNhvETD4bE4PGcSr3XCCnYB3HuvFFmIe/YeMFTlSvGnHBTgnhvfMDJlZLmAKqTDNxTdaOTYQhL9h8/njAtvpyi64kuimp+hDydxj6NpeVtB79kRLBh0DO5deZ6edntmxsNB9D6Y9IiVWMoTBl9f8JBVbHL7SUJinqnoAxWvYlqP8WihJV59Mc4DSbozg99v2dMyfbngzRLOqVRIN5RzIZJ27YGXbLqS2FXml26GA7PGefoeV6lEeOWPq4j9ax24m6lUJEukAhMhy//SVcnOhj6wif8rQNQLg9tjJqx3IEZkB5Znl70jcns0vF8WIvt9LemFyuYsmjW550+GO3kOFG0Xb+rR3XQ9pk3ep9YTAliIuJOA76UapasZDpV1v2ke2iwXsBiQ=","X-Forefront-Antispam-Report":"\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR03MB6498.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(18002099003)(56012099003)(55112099003);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n EX74bxf9K7zcUtL8ttleUvxLcYeylx9B2DffFnQzc8m5YHCIzr7/AMqOMQ1ktzJD5zziMI9zo+dyYCNLbEUXJCBY2QJKNR3WREl7MtgI2R/b0HqAWROwTPWjGX6GiGgMA06S2VtuqSj+Hd+QjboHJbyfUMDUzGhlnVx0QyrCCyTXps77WLCufus0UgDm9SedPPWXtoytVSuotB5dkmaTja+IbRaTtLlwvK1MH+/+zr0yeS0ocK7bOnfuzJOJCm1u9dhtps/qN8LTwpEsM8ILELmS2KdKUrSRPRd811iBKOtiLsBuAel4DSNvuzIKvTYNPhFFP6zf2zt7S5rOixabVcx63/fJGt4jW9eaXH3RAoHmWWQcnCa4cJFsHG8DRkclxAluNjHLgVVkWareCco800UK32XEcbadhq71Oa08SG9bFZIf0epnEtJwTOng78DVVb6lbqEck3z28Eu5i4C5p+Bh0188O+BMo+XkKsJgOPLTEuHop/3PRaXC2Z/OqNTnWALzuKdFKkGRHvwd6e4Z4Amd15nAzcFUrtwQMFPdkahCWa2IrII7663yxqoo+uRnprg0pmzr9qXa1NbUFHuA5iZxgppOw1jQ+fVB4s8Ie67aEH/N1BWeOxe1qaN9n/cCBDVQKRsqc0HTUMpEjon3ZzSJ7tt9bU3VAeQva3llClsDyydkzdwZXNBH0jJoBylZJkcUWABpzAq7i2VXCRMlps2J0goIpVFjCuP7w+qYRWbm7HXfwXI2Es6btTSxfVS1+yetzAJ9K1/pco5Om/qs2sZaxR8BBzb6ow8ajfGFJpOfvXGs4lSs81y0BKQs6SZbdXw3+7tCoH3pKh2WcU4z+QF+COX9O51n3f5j8Aer4u6C5tjExXjreyBZ1wMcRIFI5R6xRARNG/AuE0oWUqval2KIUMNCYEmXttO50h51ldE6xExpU8WLAhIXeUNbR0OKWHNZr+BfOvjpICCbzj/70HBKuYL/Cvd4B7kjTrL73Dg/Sfz834iGVx+USyRszAo+44XR3zns4yHMH6l38Mp9YJqMqe7IwRS0vSck9Zn5QOFR7EdX9Ws6dO78xvTs6lRlVwthiFlx2Ygfvp3zP2w/2pcBelZGGWsLxUu+RyFfx4EAkjSWQNueD+Dgpw7RHmFreC3lQQrJhOsn1hBFCZ7Hqi1P8MrixqznwnrN9TRXt5vsSvJafi7O0Vi0hTQPvCQBDp7MYIJGmQIbjcKtGFHiKbJwqKhJZxYOM3mFWwsiwAmOWE5pus36oBqqw/E9pokE2iA4BXrigRjrGnNeklmOrx9dIqFZ+VLKz63y89lY8j/oVmBS9bLZArPdQ9q+JMwCDzIQVoI0wl6O7Em7V5mhFFBM56R5zxcE4JaiX9Y9epWpYgqoxLFW5rvt2c8tgNk5CW75dFIuIBPLOhE6NXXUO4Lq8Sa801aQMvE/BD3y7oEyuLeiqa7KIulbtnyb09w+CuQVboAf6hOQ3UJyM0yGovzA8QhBcdf0F+v0WC5xxBvl7DbIvoaTd9Q5C9u2DTIJD8Hjdg3Hw6j9eTxMgGyvni7Blvg574GaSRDy8f8letg4HPNG1lYBDKd90WrrMDvITiLg0tihrFK0FCXUxesmdU2RwMD2DDM5mIKsBbRjUi379YpmIdzw+Tp+iDdYqTDiD39Qey472WFeoIiu3asHYIOzzao69IfEFQsmZONq8OxyPfq8AfQsgnsXsY7OFG3Yi2s5m2Qa42QVhGad+K30xk8Ism8wobpFVH46eVzESwQ=","X-OriginatorOrg":"altera.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 99f031d3-c7b1-43f1-cc6b-08dea485dc3e","X-MS-Exchange-CrossTenant-AuthSource":"SA1PR03MB6498.namprd03.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"27 Apr 2026 17:53:16.9504\n (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"fbd72e03-d4a5-4110-adce-614d51f2077a","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n TmuN56xhdjSMsmWv0/yQzaJ44nWBaAPn5wauLkoNoHoYfXE0hzAI4XMKdLllT/8Ly56dFyUdJHk02XzMYU/nwrG2nhTq1QJhnLrugkAfOR0=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CH7PR03MB7785"},"content":"The chained IRQ handler is installed during probe but is only\nremoved from the remove path. If pci_host_probe() fails, the\nhandler and INTx IRQ domain remain installed even though\ndevm-managed probe data is released, leaving the handler with\na stale data pointer.\n\nInstall the chained handler only after the INTx domain is\ncreated, and tear both down if pci_host_probe() fails.\n\nFixes: c63aed7334c2 (\"PCI: altera: Use pci_host_probe() to register host\")\nCc: stable@vger.kernel.org\nSigned-off-by: Mahesh Vaidya <mahesh.vaidya@altera.com>\n---\n drivers/pci/controller/pcie-altera.c | 20 ++++++++++++++++++--\n 1 file changed, 18 insertions(+), 2 deletions(-)\n\n\nbase-commit: 4224e91fea5695a89843b4c38283016616946307","diff":"diff --git a/drivers/pci/controller/pcie-altera.c b/drivers/pci/controller/pcie-altera.c\nindex 3dbb7adc421c..a18e287b8614 100644\n--- a/drivers/pci/controller/pcie-altera.c\n+++ b/drivers/pci/controller/pcie-altera.c\n@@ -891,7 +891,6 @@ static int altera_pcie_parse_dt(struct altera_pcie *pcie)\n \tif (pcie->irq < 0)\n \t\treturn pcie->irq;\n \n-\tirq_set_chained_handler_and_data(pcie->irq, pcie->pcie_data->ops->rp_isr, pcie);\n \treturn 0;\n }\n \n@@ -1020,6 +1019,14 @@ static int altera_pcie_probe(struct platform_device *pdev)\n \t\treturn ret;\n \t}\n \n+\t/*\n+\t * The chained handler uses pcie->irq_domain, so install it\n+\t * only after the INTx domain has been created.\n+\t */\n+\tirq_set_chained_handler_and_data(pcie->irq,\n+\t\t\t\t\t pcie->pcie_data->ops->rp_isr,\n+\t\t\t\t\t pcie);\n+\n \tif (pcie->pcie_data->version == ALTERA_PCIE_V1 ||\n \t    pcie->pcie_data->version == ALTERA_PCIE_V2) {\n \t\t/* clear all interrupts */\n@@ -1037,7 +1044,16 @@ static int altera_pcie_probe(struct platform_device *pdev)\n \tbridge->busnr = pcie->root_bus_nr;\n \tbridge->ops = &altera_pcie_ops;\n \n-\treturn pci_host_probe(bridge);\n+\tret = pci_host_probe(bridge);\n+\tif (ret)\n+\t\tgoto err_teardown_irq;\n+\n+\treturn 0;\n+\n+err_teardown_irq:\n+\taltera_pcie_irq_teardown(pcie);\n+\n+\treturn ret;\n }\n \n static void altera_pcie_remove(struct platform_device *pdev)\n","prefixes":[]}