Re: [RFC PATCH 09/16] PCI: Associate .get_msi_ctrl() with pci_host_bridge

From: Lorenzo Pieralisi
Date: Mon Nov 17 2014 - 10:03:51 EST


On Mon, Nov 17, 2014 at 10:21:43AM +0000, Yijing Wang wrote:
> From: Yijing Wang <wangyijing0307@xxxxxxxxx>
>
> Signed-off-by: Yijing Wang <wangyijing@xxxxxxxxxx>
> ---
> drivers/pci/host-bridge.c | 1 +
> include/linux/pci.h | 2 ++
> 2 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --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(
> host->dev.parent = parent;
> INIT_LIST_HEAD(&host->windows);
> host->dev.release = pci_release_host_bridge_dev;
> + host->get_msi_ctrl = info->get_msi_ctrl;
>
> /* this is hack, just for build, will be removed later*/
> b = 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 {
> int domain;
> void *sysdata;
> struct pci_ops *ops;
> + struct msi_controller *(*get_msi_ctrl)(struct pci_dev *pdev);
> void (*release_fn)(struct pci_host_bridge *);
> void *release_data;
> };
> @@ -416,6 +417,7 @@ struct pci_host_info {
> u8 res_type;
> void *arg;
> struct list_head *resources; /*just for build, will clean up later */
> + struct msi_controller *(*get_msi_ctrl)(struct pci_dev *pdev);
> int (*init_res)(struct pci_host_bridge *host,
> struct 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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/