{"id":958757,"url":"http://patchwork.ozlabs.org/api/covers/958757/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/cover/20180817102645.3839621-1-arnd@arndb.de/","project":{"id":2,"url":"http://patchwork.ozlabs.org/api/projects/2/?format=json","name":"Linux PPC development","link_name":"linuxppc-dev","list_id":"linuxppc-dev.lists.ozlabs.org","list_email":"linuxppc-dev@lists.ozlabs.org","web_url":"https://github.com/linuxppc/wiki/wiki","scm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git","webscm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/","list_archive_url":"https://lore.kernel.org/linuxppc-dev/","list_archive_url_format":"https://lore.kernel.org/linuxppc-dev/{}/","commit_url_format":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}"},"msgid":"<20180817102645.3839621-1-arnd@arndb.de>","list_archive_url":"https://lore.kernel.org/linuxppc-dev/20180817102645.3839621-1-arnd@arndb.de/","date":"2018-08-17T10:26:30","name":"[RFC,00/15] PCI: turn some __weak functions into callbacks","submitter":{"id":30,"url":"http://patchwork.ozlabs.org/api/people/30/?format=json","name":"Arnd Bergmann","email":"arnd@arndb.de"},"mbox":"http://patchwork.ozlabs.org/project/linuxppc-dev/cover/20180817102645.3839621-1-arnd@arndb.de/mbox/","series":[{"id":61229,"url":"http://patchwork.ozlabs.org/api/series/61229/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=61229","date":"2018-08-17T10:26:32","name":"PCI: turn some __weak functions into callbacks","version":1,"mbox":"http://patchwork.ozlabs.org/series/61229/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/958757/comments/","headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 41sKdW2FDgz9s3Z\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 17 Aug 2018 20:46:55 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 41sKdW0xhVzF14h\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 17 Aug 2018 20:46:55 +1000 (AEST)","from mout.kundenserver.de (mout.kundenserver.de [217.72.192.74])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 41sKKR4wxGzDrcW\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tFri, 17 Aug 2018 20:32:59 +1000 (AEST)","from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de\n\t(mreue101 [212.227.15.145]) with ESMTPA (Nemesis) id\n\t0LnSVK-1gLqnN1ClK-00haWR; Fri, 17 Aug 2018 12:27:15 +0200"],"Authentication-Results":["ozlabs.org;\n\tdmarc=none (p=none dis=none) header.from=arndb.de","lists.ozlabs.org;\n\tdmarc=none (p=none dis=none) header.from=arndb.de","lists.ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=arndb.de\n\t(client-ip=217.72.192.74; helo=mout.kundenserver.de;\n\tenvelope-from=arnd@arndb.de; receiver=<UNKNOWN>)","lists.ozlabs.org;\n\tdmarc=none (p=none dis=none) header.from=arndb.de"],"From":"Arnd Bergmann <arnd@arndb.de>","To":"linux-pci@vger.kernel.org,\n\tBjorn Helgaas <bhelgaas@google.com>","Subject":"[RFC 00/15] PCI: turn some __weak functions into callbacks","Date":"Fri, 17 Aug 2018 12:26:30 +0200","Message-Id":"<20180817102645.3839621-1-arnd@arndb.de>","X-Mailer":"git-send-email 2.18.0","X-Provags-ID":"V03:K1:dWl+hzcJroIhS3/jGbVkLP4YuN1iaMm1kiokR+JWz1c8kXoip1x\n\tWiL9n7z0xcIn+dIlrCPcb4lwLtwRSjzq7b7I3TrR++GaTKkY7QzBS4x1M+Is3MkdtcmmytP\n\trMOMOo2lyhTKf2nO2cYd09N7IAubXneAPaa9IbX5rR6DHfZfBRKsDcEhaDKyVgAgNn70Aw7\n\tbQrmMZdYVZgabyMU89ZRw==","X-UI-Out-Filterresults":"notjunk:1; V01:K0:O098FdxZS/Q=:fC0GrDvoAsg1JQ3rPmy2/x\n\t5YurCq4FWx+Gx8wxEERmmTi5u0GccivqPihiYjbUzyHct8yIOSpStbckmO2z3VJhnrG1Pho0q\n\tRzeQk6Q+y2i12xFAVVcjwFk5yHYnMXNzwLJsJTi4O8FdYJXb2CQ0W0FZXr3fnJD+Y1lEAiAox\n\tWA3yp8PiTXVNtmt8UZNZkVGm9dA6X/k0wQ0GZsdvuDLg0rZzrrD4vRqVKm4fG2TxeP7ZEFRW+\n\tQZHK3cP/GZKHwIclz25G07SuY7Cr4elD4cP4UGxt6kYMauJjHYOPH6i/1i/nU2AHiV2fP+nAE\n\tE/mg636M4xO8HHNgDmPWHOq6jUzQ27D+J880q3UtBhOtmujCwPEEYm5oyGJnKbiL8s/q62R8a\n\tQQ3+8smiE2D+oy8Xroc/7WUs84O0CpP2lyo7H7YItt2h7sZbDNcUfgV6aOidRFWZMIMeQy+0e\n\tTjPhLyZVUOTgTqGl8uhoLKDaB6Cm6ymWhkNIwopZsxiAMuOMtms8RHET9BnyH4pqDaXpMPKgh\n\tttamN9NYycdNlBYDENAtWQZ2wbVrCO49C+1hKQYiPqCLcZvh9hIaod0Km76tWm8dFG9IPEuol\n\twBKM3/4Lve/FLpNemky58U8PT+CEoIOfdGnFkYTiO9Za/eqKgaG83M9bEm8h4yZJ391xIScdy\n\t1KpYeiYa4QQ4cA3yP3Z2QRcp/S8Z1tCDZqCe/VGSkf0sg60WHPg4W6NZj1oxvAbhUnPY=","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.27","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,\n\tArnd Bergmann <arnd@arndb.de>, linux-kernel@vger.kernel.org,\n\tChristoph Hellwig <hch@infradead.org>, linux-acpi@vger.kernel.org,\n\tlinuxppc-dev@lists.ozlabs.org","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"},"content":"Hi Bjorn and others,\n\nTriggered by Christoph's patches, I had another go at converting\nall of the remaining pci host bridge implementations to be based\non pci_alloc_host_bridge and a separate registration function.\n\nThis is made possible through work from Lorenzo and others to\nconvert many of the existing drivers, as well as the removal\nof some of the older architectures that nobody used.\n\nI'm adding a bit of duplication into the less maintained code\nhere, but it makes everything more consistent, and gives an\neasy place to hook up callback functions etc.\n\nThe three parts of this series are:\n\na) push up the registration into the callers (this is where\n   code gets added)\nb) clean up some of the more common host bridge\n   implementations again to integrate that code better.\n   This could be done for the rest as well, or we could just\n   leave them alone.\nc) start moving the __weak functions into callbacks in\n   pci_host_bridge. This is intentionally incomplete, since\n   it is a lot of work to do it for all those functions,\n   and I want to get consensus on the approach first, as well\n   as maybe get other developers to help out with the rest.\n\nPlease have a look.\n\n       Arnd\n\n[1] https://lore.kernel.org/lkml/4288331.jNpl6KXlNO@wuerfel/\n[2] https://patchwork.kernel.org/patch/10555657/\n\nArnd Bergmann (15):\n  PCI: clean up legacy host bridge scan functions\n  PCI: move pci_scan_bus into callers\n  PCI: move pci_scan_root_bus into callers\n  PCI: export pci_register_host_bridge\n  PCI: move pci_create_root_bus into callers\n  powerpc/pci: fold pci_create_root_bus into pcibios_scan_phb\n  PCI/ACPI: clean up acpi_pci_root_create()\n  x86: PCI: clean up pcibios_scan_root()\n  PCI: xenfront: clean up pcifront_scan_root()\n  sparc/PCI: simplify pci_scan_one_pbm\n  PCI: hyperv: convert to pci_scan_root_bus_bridge\n  PCI: make pcibios_bus_add_device() a callback function\n  PCI: turn pcibios_alloc_irq into a callback\n  PCI: make pcibios_root_bridge_prepare a callback\n  PCI: make pcibios_add_bus/remove_bus callbacks\n\n arch/arm64/kernel/pci.c               |  40 ++-----\n arch/ia64/pci/pci.c                   |  25 +----\n arch/ia64/sn/kernel/io_init.c         |  27 +++++\n arch/microblaze/pci/pci-common.c      |  27 +++++\n arch/powerpc/include/asm/pci-bridge.h |   3 +\n arch/powerpc/kernel/pci-common.c      |  60 +++++------\n arch/s390/pci/pci.c                   |  30 +++++-\n arch/sh/drivers/pci/pci.c             |   1 +\n arch/sh/drivers/pci/pcie-sh7786.c     |   3 +-\n arch/sh/include/asm/pci.h             |   2 +\n arch/sparc/kernel/pci.c               |  40 ++++---\n arch/sparc/kernel/pcic.c              |  35 ++++++\n arch/x86/pci/acpi.c                   |  15 +--\n arch/x86/pci/common.c                 |  42 ++++----\n arch/xtensa/kernel/pci.c              |  27 +++++\n drivers/acpi/pci_root.c               |  43 +++++---\n drivers/parisc/dino.c                 |  28 +++++\n drivers/parisc/lba_pci.c              |  28 +++++\n drivers/pci/bus.c                     |   8 +-\n drivers/pci/controller/pci-hyperv.c   |  47 ++++----\n drivers/pci/controller/vmd.c          |  30 +++++-\n drivers/pci/hotplug/ibmphp_core.c     |  35 ++++++\n drivers/pci/pci-driver.c              |  13 ++-\n drivers/pci/probe.c                   | 150 +++++++++-----------------\n drivers/pci/xen-pcifront.c            |  40 +++----\n include/linux/acpi.h                  |   2 +\n include/linux/pci.h                   |  17 ++-\n 27 files changed, 514 insertions(+), 304 deletions(-)"}