Re: [RFC PATCH 09/16] PCI: Associate .get_msi_ctrl() with pci_host_bridge
From: Lorenzo Pieralisi <hidden>
Date: 2014-11-17 15:03:48
Also in:
linux-arm-kernel, linux-pci, lkml
On Mon, Nov 17, 2014 at 10:21:43AM +0000, Yijing Wang wrote:
quoted hunk ↗ jump to hunk
From: Yijing Wang <redacted> =20 Signed-off-by: Yijing Wang <redacted> --- drivers/pci/host-bridge.c | 1 + include/linux/pci.h | 2 ++ 2 files changed, 3 insertions(+), 0 deletions(-) =20diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c index 49b6c21..872cae1 100644 --- a/drivers/pci/host-bridge.c +++ b/drivers/pci/host-bridge.c@@ -58,6 +58,7 @@ struct pci_host_bridge *pci_create_host_bridge( =09host->dev.parent =3D parent; =09INIT_LIST_HEAD(&host->windows); =09host->dev.release =3D pci_release_host_bridge_dev; +=09host->get_msi_ctrl =3D info->get_msi_ctrl;=20 =09/* this is hack, just for build, will be removed later*/ =09b =3D kzalloc(sizeof(*b), GFP_KERNEL);diff --git a/include/linux/pci.h b/include/linux/pci.h index a51f5f5..af1ee86 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h@@ -408,6 +408,7 @@ struct pci_host_bridge { =09int domain; =09void *sysdata; =09struct pci_ops *ops; +=09struct msi_controller *(*get_msi_ctrl)(struct pci_dev *pdev); =09void (*release_fn)(struct pci_host_bridge *); =09void *release_data; };@@ -416,6 +417,7 @@ struct pci_host_info { =09u8 res_type; =09void *arg; =09struct list_head *resources; /*just for build, will clean up later */ +=09struct msi_controller *(*get_msi_ctrl)(struct pci_dev *pdev); =09int (*init_res)(struct pci_host_bridge *host,=20 =09=09=09struct pci_host_info *info); };
Where would you use the get_msi_ctrl pointer then ? Wasn't it better to wait for this patchset to take shape before adding more churn to the ARM (and other archs) pci_sys_data structure and consequently add another pcibios call to achieve what the get_msi_ctrl pointer is there to achieve (ie making msi_controller retrieval arch independent ?) I just do not see what the pci_sys_data intermediate step buys you if we consider the approach taken in this patch as the proper solution. Thanks, Lorenzo