From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753275AbbJOOaf (ORCPT ); Thu, 15 Oct 2015 10:30:35 -0400 Received: from mail-by2on0081.outbound.protection.outlook.com ([207.46.100.81]:2198 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751684AbbJOOab (ORCPT ); Thu, 15 Oct 2015 10:30:31 -0400 Authentication-Results: spf=none (sender IP is 165.204.84.221) smtp.mailfrom=amd.com; apm.com; dkim=none (message not signed) header.d=none;apm.com; dmarc=permerror action=none header.from=amd.com; X-WSS-ID: 0NW9MYR-07-AC8-02 X-M-MSG: Subject: Re: [PATCH V2 6/6] gicv2m: acpi: Introducing GICv2m ACPI support To: Tomasz Nowicki , , , , References: <1444865156-9870-1-git-send-email-Suravee.Suthikulpanit@amd.com> <1444865156-9870-7-git-send-email-Suravee.Suthikulpanit@amd.com> <561F449E.2050803@semihalf.com> <561FB238.10509@amd.com> CC: Lorenzo Pieralisi , Will Deacon , Catalin Marinas , , , , , , From: Suravee Suthikulanit Message-ID: <561FB877.4020106@amd.com> Date: Thu, 15 Oct 2015 09:30:15 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <561FB238.10509@amd.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.221;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(199003)(479174004)(164054003)(24454002)(189002)(377454003)(50466002)(59896002)(5007970100001)(65806001)(5008740100001)(64706001)(23746002)(36756003)(87936001)(2201001)(86362001)(77096005)(106466001)(19580395003)(189998001)(4001350100001)(105586002)(46102003)(33656002)(5001770100001)(76176999)(87266999)(64126003)(97736004)(65816999)(54356999)(83506001)(11100500001)(65956001)(92566002)(47776003)(2950100001)(80316001)(93886004)(120886001)(101416001)(50986999);DIR:OUT;SFP:1101;SCL:1;SRVR:DM3PR12MB0857;H:atltwp01.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DM3PR12MB0857;2:1siEEMgLVT7ECkHDxaCgayllZzPB5HAhKAzMk94i3PxopGDqLNZbZE+xB2m/zfE6/T8BjTwU9o6YV7NECxhIFiJhSgWXMfKuemOs8IVgZ4Sh8FnIDo8OS+vFg64HXkuc0Ga4lUiO2Im6iqVfWSudm4O6gOTbEOJ7Bmxs/9mtiYE=;3:NqC4pnQs4p6Rb/bwh4UTZZSp+oiJTgkaAxpM8PQ+1qFp9/GD90LW/WLkv4G5jpKgeVmi33E/IzV9k5DK7/NcJIH+CK8RuS7XOZ09K0+y6S18mEQL0CRSEd1kKdn1WHrEYDbnz3AGqtY+J3+b18b86xObJjzom5h8B8QaLvWK3ss08dJ8m11rrGAuxO9TrT+NhBwZtA9ZMhxFQXTr+Wa9q/m5GrMNYd1LtXZL+wvDKS1jRCAIE68ilCyWYdAZFKIi;25:rSvjhUsGG4bmx1vH9L5ekkRt45JtH+dpVyI+XYaaR9PGhesGnOf5bGgH3nl8GWeVSqDU3Y3KV3V/BftYtn6Kq4cYkdRGI/JwonWtViXkF6zWlFCeV/oke5ZYJwmQwH8WMwPn2D7zAcSiM92zrlilsC7AQ4PIJaWl8/dz9lQ0rHdq3jatvLUBxLAo7M85toPR7pelLbE44U8hruOY19Jnl83tUTXOTch7TSMOZEAvIAhqzaJVovqno5GIb+B3A7Fx X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM3PR12MB0857; X-Microsoft-Exchange-Diagnostics: 1;DM3PR12MB0857;20:Mk5tiyG31OZZIyg3+kySB6yVa6W2IDE+e839Vo+Q3TPMf2jRTCYzIjfUABFBpuJOu6fPftUWzm0nHjCTpsYPkyHvCWWN+DabdF++6FokaCQb9CNS0/E5qIw+z0eLb/wpGn3NtMKYeyX+ONg30IH4UARyx2jP0MtO3vM1CxjX2Mo3dSMw39X5ac9GusyqrMcs2duNUt8JR5M1n04qKsyldjqQ6saSUUf4ORrfpVbFJkjqaJec58EdTuWf4NOPLo3uUwgdtGc3xf+rfkFdve7tSIMdedSz1ccZhplYSyD8Rkq5o48OXmmeRqXVFlBXQPEBgBnfFcjqn3XsANKvzHI8xFcF46lXfykAEQO+UlN9dpoYjzOOjWoXTiQQX9C/bP27Ad7fducWZj/79PTqIVXwAmcp0aXpX0m3xuLTjIWwunL7qpLbScNDOinYWu8XbdgQLMLW8vbY1ZQM2+ZCDDWHVW1CmFB/FtNbB6fPQE9M7TA+Tf2GkZ/hwnRTiSMSh1N7;4:P0ZAOXroz2XlPHJsIgYw8UjbHeZiWVdIMlXcI1b17FjVwTtRycKvlTgYVRNklhq6iHaIR6+yd6JB4H51d0LjqzxSMfcCdQp6cIWbCxsajj8orWNzdZBLPTnrpui2ags7wVYJlRKdrBVKSvYL1dN7MW1pIGwj689Q0YTVY26B94dOQ5QmI9U106kzhMBpN3ZeC+NOxxlpeYS//4TLAzJH5+ojAOoCtoUrZn+rp7qLrGpSgto4ImOObpP0jzNKldeC+rlCncAvg7gAAleaA+tMaW89RDXmeHO8izRyRIq1WEKkXJpMq35ss4yevVz0mu/rqX2oQy1G7DYstnp+cI98QKF5RomGRASwZZwsNmBxaNc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001);SRVR:DM3PR12MB0857;BCL:0;PCL:0;RULEID:;SRVR:DM3PR12MB0857; X-Forefront-PRVS: 0730093765 X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DM3PR12MB0857;23:Ks27veDt2zhP8+lDOu73S15F8AU/SuE9t9Ifz?= =?Windows-1252?Q?MFk1RfUR6F1YF7APZWzoiBipdAdSZyX24sGpRAfQ4C1EJQqDelpcLeYO?= =?Windows-1252?Q?QC2QHmw6waBGsoBDK8991FybJTjG84xmix+Q6UI2ZC+skvX9mL1EaJGU?= =?Windows-1252?Q?zq8rYxmRCuyHOT2dGiZPTQ4sVZExR/AO9sBnNmsL2SOI0/aQCee2IVZB?= =?Windows-1252?Q?wJZbWYq9DhJ4oPNTS51NrXnD5+XqqmJUIn8R1iGyQXq2OZZESAgV2XZU?= =?Windows-1252?Q?k5QC/BCA8+CDNVn1za6cOr899BnKuCxHqH/Opvym/Usb9pakLkPSmYi+?= =?Windows-1252?Q?SjSJrkgZc7Fp+gITAEwLz+fUKQuUm4tgAAOeMe7UlMViSRnZMD0MJDZU?= =?Windows-1252?Q?bWrXB61UK6IQhhXvZ1d98h8z1E2EcctOq7XjrIlL8roXOEuK9PQ7mZm2?= =?Windows-1252?Q?7pTPydodAi2ziJGchVMbKSTV8QTTXkiNG31fhdZQ+dLwEVfSfFUhnW8Z?= =?Windows-1252?Q?tFqdeNzG7nG6ALlbN1UOdI7okSfqPh2cVpD8XvjXYUazvaFxplJhmv6c?= =?Windows-1252?Q?vcbEM+9m9xsYbKGMLZylLg46e0xaVYEQvtei/7UHWJfJ/+SWyhdeRlyH?= =?Windows-1252?Q?IfwTdZERJwMB76J4pSD3lEWOS1IIC4DbalInXLVlNlHyZg1KgKvw3KXB?= =?Windows-1252?Q?KIMEy/o8inRiR42c/XFZQ2X+t9+sEPOhyr8FsX9lTvpguLhDUc6BkG7V?= =?Windows-1252?Q?Evkat/0Cn/pS5mDl3b7FANz0OEjlB+irS32Mg5UEpINdgSnAQRvILQuS?= =?Windows-1252?Q?LpHNluKbS2S6nhkjbvw7te4y47UKB4ybo1xRU21AihzTrh4985nkGGry?= =?Windows-1252?Q?UeGmfUuSRH5SNKwFkde4TWt9q1Qmh2jJ99QdytU6bUqFsrAfL2g9PQLh?= =?Windows-1252?Q?F0QKfg/cr2aekGCWbRd+2/e2Dqh1gtxOlCMDkCoNW1J3pbh4FxfFriad?= =?Windows-1252?Q?mjevEJ6Yl7XDVMs/rzNLNTj5lvB+kDXGxoxMQo/St+pVf9d5ShhzbCbt?= =?Windows-1252?Q?idtq9pG7x8JYQJtNTogi3jKeqvY2ZY5F6/htUf8vn46B8hGJ9cDVMKpB?= =?Windows-1252?Q?tCh/AMBwP3c9YEnc7WhRROAtSUR3AnzMXE/1M0ki1YJJwy4twhrQ76V3?= =?Windows-1252?Q?x70iJ6+AkJ/EV6SBiGQ3BTvJvgujilcbKqCDB8fqgW+Ed1lmTEmtTG4c?= =?Windows-1252?Q?G7BUrE4FLYJjAFiEpRWgQz0d9fVt76eMIKF1FkiuToddzxEybKMATfom?= =?Windows-1252?Q?d0L?= X-Microsoft-Exchange-Diagnostics: 1;DM3PR12MB0857;5:qn8LCPsQOwr4530QPsQY4nuUT2p7V+9Zmoc4+y4Atzy0a/nRwVcQzee/DxL7RcxKWKLn1QNIjiiz98BeqZ0VWzm5sedACLyRW+0slRmrLr7IRQtYth9ETPLTOmqWwPXYC+MsL1oRzv2VWhrGj9ZXpg==;24:2+M6JxHJhSqR133WkkF5SWZ6tq8adMvV2dJJ+9rUD1p9A/q9GAYqZym7nt5KqzL6T58l/pkXUiyGn1AvCo3PIK69+Ni0n2kS5zhRMrO4l6U=;20:x0pudl6AAoEqZonEaaS2mdhQmHeJMODzGaTtzlDwl0+AfbAgfnN6ZjqTZxzbmyuZbi/0BGvSJkgT89Rvme0JFQ0btpjjMzVG7K5j/1HTX7DNjde9CFR/snZKJB0ynNJOAi8Ubk+r9Grah3DwR84mZQXFPExsHqAoFxr3ovfy7RmJxtgnx+M74sS/MaO03zVRaAQB8w5yrVG6Fn0/K8AseONNGwGRRosUQV8+aUMd+JNbX+js7hEu3nm3EReQHhv1 SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Oct 2015 14:30:28.6719 (UTC) X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.221];Helo=[atltwp01.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB0857 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Tomasz, On 10/15/2015 9:03 AM, Suravee Suthikulanit wrote: >>> + if (!data) >>> + return NULL; >>> + >>> + return data->fwnode; >>> +} >>> + >>> +static int __init >>> +acpi_parse_madt_msi(struct acpi_subtable_header *header, >>> + const unsigned long end) >>> +{ >>> + int ret; >>> + struct resource res; >>> + u32 spi_start = 0, nr_spis = 0; >>> + struct acpi_madt_generic_msi_frame *m; >>> + struct fwnode_handle *fwnode = NULL; >>> + >>> + m = (struct acpi_madt_generic_msi_frame *)header; >>> + if (BAD_MADT_ENTRY(m, end)) >>> + return -EINVAL; >>> + >>> + res.start = m->base_address; >>> + res.end = m->base_address + 0x1000; >>> + >>> + if (m->flags & ACPI_MADT_OVERRIDE_SPI_VALUES) { >>> + spi_start = m->spi_base; >>> + nr_spis = m->spi_count; >>> + >>> + pr_info("ACPI overriding V2M MSI_TYPER (base:%u, num:%u)\n", >>> + spi_start, nr_spis); >>> + } >>> + >>> + fwnode = irq_domain_alloc_fwnode((void *)m->base_address); >>> + if (!fwnode) { >>> + pr_err("Unable to allocate GICv2m domain token\n"); >>> + return -EINVAL; >>> + } >>> + >>> + ret = gicv2m_init_one(fwnode, spi_start, nr_spis, &res); >> I case of error, we should call here: >> irq_domain_free_fwnode(fwnode); > > This should have already been handled when returning from the > acpi_parse_madt_msi() in gicv2m_teardown() since we would need to > iterate through all existing MSI frame to clean up. Actually, you are correct since the fwnode allocated here might not get assigned to the v2m_data.fwnode and added to the v2m_nodes list yet. So, we would need to call irq_domain_alloc_fwnode() here in case of error. Thanks, Suravee