From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752043AbbIORtg (ORCPT ); Tue, 15 Sep 2015 13:49:36 -0400 Received: from mail-bn1bon0082.outbound.protection.outlook.com ([157.56.111.82]:13472 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751387AbbIORtd (ORCPT ); Tue, 15 Sep 2015 13:49:33 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=David.Daney@caviumnetworks.com; Message-ID: <55F85A24.2010600@caviumnetworks.com> Date: Tue, 15 Sep 2015 10:49:24 -0700 From: David Daney User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7 MIME-Version: 1.0 To: Will Deacon CC: David Daney , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Rob Herring , Frank Rowand , "grant.likely@linaro.org" , Bjorn Helgaas , "linux-pci@vger.kernel.org" , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , "linux-arm-kernel@lists.infradead.org" , David Daney , Subject: Re: [PATCH 2/6] PCI: generic: Only fixup irqs for bus we are creating. References: <1442013719-5001-1-git-send-email-ddaney.cavm@gmail.com> <1442013719-5001-3-git-send-email-ddaney.cavm@gmail.com> <20150915173654.GJ31157@arm.com> In-Reply-To: <20150915173654.GJ31157@arm.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [64.2.3.194] X-ClientProxiedBy: BN1PR07CA0038.namprd07.prod.outlook.com (10.255.193.13) To BLUPR0701MB1714.namprd07.prod.outlook.com (25.163.85.140) X-Microsoft-Exchange-Diagnostics: 1;BLUPR0701MB1714;2:w6Z6pqHLOjdfL2cfyJvRP6NMf4s3T08hn9HdbEqXnxb5UNgVWZS4wJ7Djd1a0yHfaMBvCAT8WEhgdqfa8qTT9jyzEhu1MdLEZ6eIKMV+7jPuwybqahV+vl4ofLbq5CcZYR1T1PfK2CgYWC+r8ary9e1DmxpQq5E6Go7woSSYQkQ=;3:FCDN+2qnj9ITtL/FZSucvwT42VG2PBsEHcFBrRYOWAn82UgIMICdSir8agNL+jdBpTZFRxH0VoRUhZF6IrOiphp36p8KaaCZj04eoF1OdzCRq49zdKsxzxJkCdxB+Bdi4B9UBd/cY0p85h1dW+wkag==;25:m+4+MutDzvBJsUSuTol90vQSyW6iyCWDHpUgQmxUD9wtiN+6D/wpogwPV9ZFNHhsWOD2YHxPmblHr7qo7vlJP6eFsZ0Nu4sd/Zatq5rJq8adBYwJT5KVghZB2W6PsAi2hVBYxncuOVaRxp3KH/ET5dhLohtc7FqF8hekgZkMVqIDmZOLb9F1Yxw+H3RJ1oDHJjbAChZ3rpcqsfFTQ8BzYo9WjZxuOyYr629rpgnrUPLiU36ZTLuQL9Q6g9k9BySh1nPbQ638AudlFE/UvWi/hg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0701MB1714;20:3wQezLgstPe7gZNTRZzmqhQ1NYnkg8bic6gZihq5QLCJf2IuijO72K9J8H3OMDTI/+aYJ/F4f+TXUmDulPXisC7AVdC82focGEhTl6xdjjcp8DOcdpQu9joKuWbYTfXCEU2kstRKmZW7Ei8i6hLuFmOpzoRJvTrAhkIeLMiwLvuEhYWx8akcgthr/ovkuq75e33w8MCFtvB+Dk4+1rHsfVQTXm5i6e5koolJynJuPXKt4kHt7lyk+7CUEkGpVdFHS8DcSYA0hE0cQA/c7DwMoeTwIMn8Pmu1loiJh/vsA+5+0ODdKKsAC3G9Pv08d7X4uLuKroD0AySYpvLt8pnr3l8wsa7nm6nuebc+sKYkE4RNhz5GUMxeS7MmWBlcogRVJ29Zw2QA4g+xUcPVW7NnjkY70l7Uz4dgfAj5D7m4Kw6AtgNt/2VBiMwDsD9/lolatOUbe2n1Vp+KSD55Bh4/HUNvXjSMkNcic0NdBodVCoVbQ3sWJ8EzkUkF9lwdFMs/u32sbKoDoSn5s3HnWEn8lpllYZ+h1qdBhXBCUEXgpoLOZHqM/LhkEg/qxO5IohtNeVY2gDS0L6mzJ5RPzFWq6xl4hxOaPNl0JKgWiioC7N4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(520075)(8121501046)(5005006)(520078)(3002001);SRVR:BLUPR0701MB1714;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0701MB1714;4:ijD84YVeh0IKNvKcKa1e8rMAoVpzV4UKqwvwf+uq5LLVa8GfjDwzHhfj5joOk2DQK7F7rWaADZrieWMXmyI2fdA/kcrqizhGuNJ/YiBRkSrI7VMG2/VSyEM7muS0opjTdzBjIzOcuZQeljQKOeIAlSk34gYVBVMeLkzYTzUUoKBcYR+1ScI9suotMYcx8ShnhzhyfzMyY45nfpy36smP14G0iLQEYdKLfT+htXxc5neTC+ZFUFMS68MToy/azHMQWn/P5iZRm2FLAL5od8mfkR5iUHCGCYtE+2hiQwyxOcHzYSae2jeq90N9POG9MqAUGZZmbiRKHzhRjFgzI6+R0zyU86wjuvTKS+lqlqmo88M= X-Forefront-PRVS: 070092A9D3 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(24454002)(377454003)(189002)(199003)(479174004)(164054003)(33656002)(575784001)(5001960100002)(5001860100001)(65956001)(65816999)(54356999)(87266999)(77156002)(50986999)(77096005)(5007970100001)(46102003)(122386002)(97736004)(19580405001)(68736005)(36756003)(80316001)(105586002)(62966003)(101416001)(4001540100001)(92566002)(64126003)(19580395003)(87976001)(66066001)(40100003)(64706001)(106356001)(5004730100002)(59896002)(110136002)(42186005)(76176999)(69596002)(4001350100001)(53416004)(81156007)(65806001)(47776003)(5001830100001)(2950100001)(50466002)(189998001)(23756003)(83506001)(41533002);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR0701MB1714;H:dl.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;BLUPR0701MB1714;23:lUKomp3l/mv7j12OyeAap19KafQ5xYpoKiU7d?= =?iso-8859-1?Q?NxJAL7XGMEKRUMWaOFV65P6S3QVVpKCHaUqAMMbRAdeYl9twde0hKKWHrb?= =?iso-8859-1?Q?GUUKHQbH73/+KHQMq3Pc6sgnFxDxdTQTynfCnwJX2F77z/paztGC9rODDO?= =?iso-8859-1?Q?frcXFxgABPnLuS2lniX0jvivMLXuCLYHdrO6zpDxp4VEXtDgVE/khzmU5L?= =?iso-8859-1?Q?vMNQ6E8v26vfPauHRWVAMoqdqQtQLgAOT8KWjKqswkLELDF+Hg1fHqtOZX?= =?iso-8859-1?Q?RYs9dUTfiUaYbtZQWItz9bmVlqABQPeekCTEJhL30MkSE9PZp6ik1KmaQc?= =?iso-8859-1?Q?jAxoKVjOzzt14CO7QH3rgpQHWG07dmuz8qq8GYrjecpIIwqJVKaXdArCuI?= =?iso-8859-1?Q?LI5BH0UB5LM0h8bLOQYMmd0r7rYGMc6Ip1QEml0Wx0NUAAIWVEnekxZOkN?= =?iso-8859-1?Q?nN64PLkmY8Mw0ER2zd7V9yffrRtli54eLpLxOtWID4EIfzi1Bnzx1xrOiU?= =?iso-8859-1?Q?mmnVjZ5aH50e6+vvtnWPl2zwVNktyu64YjgatBzoGBpDtQBQCRQSh+c/rL?= =?iso-8859-1?Q?Bzcs5qm0C7TLgKNn9H5xSS6IQalr0kbPHF7G+aHh3NuO3g62ISxZvRjm7D?= =?iso-8859-1?Q?77hjI7Dkpra+S76e1XRb7nh96NvrOZwZGRj6BY+uASFZK2aAO803LBqfxC?= =?iso-8859-1?Q?FWhhKGhd37AGqQUjAjliDTu16S7x4Mn+XgiC0rq2Gg7NUY7AsJrmjY0sBr?= =?iso-8859-1?Q?kTIEoW4QOWmAIinfSD1sUOnYXg5lOjyjoJ/i0xxr9nxWcDkf9qsU4PXXFq?= =?iso-8859-1?Q?vhCpiR3dieBh6RrIiT+8VeYu6v0sJtY2d178SBS9tffpDOX/8CkJ/qZsnR?= =?iso-8859-1?Q?Fk/5lHbg81UnF9SMjB3S9KnykEYQlLPKWd4vYudRBKidaeHpQnhQSLSiWf?= =?iso-8859-1?Q?F1HbYZsQg35fwUulYo7UBqtiAsICokhFKzrkAmhT5m9ThYbDmHYjrHOxhB?= =?iso-8859-1?Q?NmojAEg0lcy9aSwxhhh+K0/iprarvg2K3cLdHxSckgD8DMEGuo70IztOW7?= =?iso-8859-1?Q?Pv35c4AGdj3wjgE+mlSOfcr6NcuJlDzrmACIs22/IuuaD9pRp/ztvTO2MA?= =?iso-8859-1?Q?Thel8EHgjKdeR4C5vdmuYb/419l383w8uJDQ1X/1jz9I6qL1lOayspW2K7?= =?iso-8859-1?Q?BxYZfDBv2nqpvn4g8ysid9ng3KKlXVhSiZx8ayN0aKzOdOZGB0zyjbxMtu?= =?iso-8859-1?Q?mxO0rSNTeqYRQuOSpdeARowhChaD2cM6eH0vAWTrbbhZ4HbIAsTeOGyEj2?= =?iso-8859-1?Q?BwveRGYf8mkQK9h3tYn2GZykQon716AVPjbz5q9S2Y/0fjTe+ScubcATsu?= =?iso-8859-1?Q?t/7CIKeR21D7kQmDQ28KbD/IE93pt6JDc+qmcJNtXnH7zjBJ+PL6vCH3bu?= =?iso-8859-1?Q?3feorLfm+g5kCGoEahZ7yHj3ZKI18YXdWpcIvfGiAB9YK3vAt4ZFzam9qS?= =?iso-8859-1?Q?ubr03s6WD+GVjWqu8qzfsxnwVm1YZmcBhXQiDSGU7aF?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0701MB1714;5:6XZWPj0yUmA2V9Vgz++JVAfgJeOcbTeuEoVQhgi/zBqafgoaz/OfyEgmEee5onc0cyhF/GUtR4+tDnlWkwy9LxE6J3wnikskQ2INNebYbnXI/YeoGMP1o8gADErRWYwnIL6rVoyaN47JQNyrczblKA==;24:CSGR4CN36vMFsdgQ0vOJOsb9Xd67PL70jh+7A8dkyMpXydUNGypPpZD4WiYjr+86CQ7sbNyGiXBQwNOe7XJnrTD0R77cpx7+Ydk33mafRgo=;20:/RSQidUCeMsTFoikI/6TREmt1rPWre3bzxUUpx+CIb3BTdDmQYWAkH6JozUl4hrku7Sdlmptxo2nMwmubgMW6A== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2015 17:49:29.1655 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1714 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/15/2015 10:36 AM, Will Deacon wrote: > Hi David, > > On Sat, Sep 12, 2015 at 12:21:55AM +0100, David Daney wrote: >> From: David Daney >> >> Use pci_walk_bus() to restrict the fixup irq actions to only the bus >> being created. >> >> If we create multiple buses with pci-host-generic, or there are buses >> created by other drivers, we don't want to call pci_fixup_irqs() which >> operates on all devices, not just the devices on the bus being added. >> The consequence is that either the fixups are done more than once, or >> in some cases incorrect fixups could be applied. >> >> Signed-off-by: David Daney >> --- >> drivers/pci/host/pci-host-generic.c | 8 +++++++- >> 1 file changed, 7 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/pci/host/pci-host-generic.c b/drivers/pci/host/pci-host-generic.c >> index 265dd25..a0fb241 100644 >> --- a/drivers/pci/host/pci-host-generic.c >> +++ b/drivers/pci/host/pci-host-generic.c >> @@ -205,6 +205,12 @@ static int gen_pci_parse_map_cfg_windows(struct gen_pci *pci) >> return 0; >> } >> >> +static int gen_pci_fixup_irq_cb(struct pci_dev *dev, void *arg) >> +{ >> + pdev_fixup_irq(dev, pci_common_swizzle, of_irq_parse_and_map_pci); >> + return 0; >> +} >> + >> static int gen_pci_probe(struct platform_device *pdev) >> { >> int err; >> @@ -262,7 +268,7 @@ static int gen_pci_probe(struct platform_device *pdev) >> return -ENODEV; >> } >> >> - pci_fixup_irqs(pci_common_swizzle, of_irq_parse_and_map_pci); >> + pci_walk_bus(bus, gen_pci_fixup_irq_cb, NULL); > > Any chance we could put something in the core PCI code for this? I think > any host controller wanting to work with arm64 is potentially going to > run into the same problem. Good idea. I will move the walking code into setup-irq.c (the current home of pci_fixup_irqs()), and make it part of patch 1/6. Thanks, David Daney > > Will >