[PATCH v2 03/10] Revert "cxl: Add preliminary workaround for CX4 interrupt limitation"
Andrew Donnellan
andrew.donnellan at au1.ibm.com
Fri Jun 29 09:45:31 AEST 2018
On 28/06/18 20:05, Frederic Barrat wrote:
> From: Alastair D'Silva <alastair at d-silva.org>
>
> Remove abandonned capi support for the Mellanox CX4.
>
> This reverts commit cbce0917e2e47d4bf5aa3b5fd6b1247f33e1a126.
>
> Signed-off-by: Alastair D'Silva <alastair at d-silva.org>
Acked-by: Andrew Donnellan <andrew.donnellan at au1.ibm.com>
> ---
> drivers/misc/cxl/api.c | 15 ---------------
> drivers/misc/cxl/base.c | 17 -----------------
> drivers/misc/cxl/context.c | 1 -
> drivers/misc/cxl/cxl.h | 10 ----------
> drivers/misc/cxl/main.c | 1 -
> include/misc/cxl.h | 20 --------------------
> 6 files changed, 64 deletions(-)
>
> diff --git a/drivers/misc/cxl/api.c b/drivers/misc/cxl/api.c
> index 2e5862b7a074..34ba67bc41bd 100644
> --- a/drivers/misc/cxl/api.c
> +++ b/drivers/misc/cxl/api.c
> @@ -181,21 +181,6 @@ static irq_hw_number_t cxl_find_afu_irq(struct cxl_context *ctx, int num)
> return 0;
> }
>
> -int _cxl_next_msi_hwirq(struct pci_dev *pdev, struct cxl_context **ctx, int *afu_irq)
> -{
> - if (*ctx == NULL || *afu_irq == 0) {
> - *afu_irq = 1;
> - *ctx = cxl_get_context(pdev);
> - } else {
> - (*afu_irq)++;
> - if (*afu_irq > cxl_get_max_irqs_per_process(pdev)) {
> - *ctx = list_next_entry(*ctx, extra_irq_contexts);
> - *afu_irq = 1;
> - }
> - }
> - return cxl_find_afu_irq(*ctx, *afu_irq);
> -}
> -/* Exported via cxl_base */
>
> int cxl_set_priv(struct cxl_context *ctx, void *priv)
> {
> diff --git a/drivers/misc/cxl/base.c b/drivers/misc/cxl/base.c
> index fe90f895bb10..e1e80cb99ad9 100644
> --- a/drivers/misc/cxl/base.c
> +++ b/drivers/misc/cxl/base.c
> @@ -141,23 +141,6 @@ void cxl_pci_disable_device(struct pci_dev *dev)
> }
> EXPORT_SYMBOL_GPL(cxl_pci_disable_device);
>
> -int cxl_next_msi_hwirq(struct pci_dev *pdev, struct cxl_context **ctx, int *afu_irq)
> -{
> - int ret;
> - struct cxl_calls *calls;
> -
> - calls = cxl_calls_get();
> - if (!calls)
> - return -EBUSY;
> -
> - ret = calls->cxl_next_msi_hwirq(pdev, ctx, afu_irq);
> -
> - cxl_calls_put(calls);
> -
> - return ret;
> -}
> -EXPORT_SYMBOL_GPL(cxl_next_msi_hwirq);
> -
> static int __init cxl_base_init(void)
> {
> struct device_node *np;
> diff --git a/drivers/misc/cxl/context.c b/drivers/misc/cxl/context.c
> index c6ec872800a2..0355d42d367f 100644
> --- a/drivers/misc/cxl/context.c
> +++ b/drivers/misc/cxl/context.c
> @@ -74,7 +74,6 @@ int cxl_context_init(struct cxl_context *ctx, struct cxl_afu *afu, bool master)
> ctx->pending_afu_err = false;
>
> INIT_LIST_HEAD(&ctx->irq_names);
> - INIT_LIST_HEAD(&ctx->extra_irq_contexts);
>
> /*
> * When we have to destroy all contexts in cxl_context_detach_all() we
> diff --git a/drivers/misc/cxl/cxl.h b/drivers/misc/cxl/cxl.h
> index 9688fe8b4d80..d95c2c98f2ab 100644
> --- a/drivers/misc/cxl/cxl.h
> +++ b/drivers/misc/cxl/cxl.h
> @@ -623,14 +623,6 @@ struct cxl_context {
>
> struct rcu_head rcu;
>
> - /*
> - * Only used when more interrupts are allocated via
> - * pci_enable_msix_range than are supported in the default context, to
> - * use additional contexts to overcome the limitation. i.e. Mellanox
> - * CX4 only:
> - */
> - struct list_head extra_irq_contexts;
> -
> struct mm_struct *mm;
>
> u16 tidr;
> @@ -878,13 +870,11 @@ ssize_t cxl_pci_afu_read_err_buffer(struct cxl_afu *afu, char *buf,
> /* Internal functions wrapped in cxl_base to allow PHB to call them */
> bool _cxl_pci_associate_default_context(struct pci_dev *dev, struct cxl_afu *afu);
> void _cxl_pci_disable_device(struct pci_dev *dev);
> -int _cxl_next_msi_hwirq(struct pci_dev *pdev, struct cxl_context **ctx, int *afu_irq);
>
> struct cxl_calls {
> void (*cxl_slbia)(struct mm_struct *mm);
> bool (*cxl_pci_associate_default_context)(struct pci_dev *dev, struct cxl_afu *afu);
> void (*cxl_pci_disable_device)(struct pci_dev *dev);
> - int (*cxl_next_msi_hwirq)(struct pci_dev *pdev, struct cxl_context **ctx, int *afu_irq);
>
> struct module *owner;
> };
> diff --git a/drivers/misc/cxl/main.c b/drivers/misc/cxl/main.c
> index 59a904efd104..a7e83624034b 100644
> --- a/drivers/misc/cxl/main.c
> +++ b/drivers/misc/cxl/main.c
> @@ -106,7 +106,6 @@ static struct cxl_calls cxl_calls = {
> .cxl_slbia = cxl_slbia_core,
> .cxl_pci_associate_default_context = _cxl_pci_associate_default_context,
> .cxl_pci_disable_device = _cxl_pci_disable_device,
> - .cxl_next_msi_hwirq = _cxl_next_msi_hwirq,
> .owner = THIS_MODULE,
> };
>
> diff --git a/include/misc/cxl.h b/include/misc/cxl.h
> index 82cc6ffafe2d..6a3711a2e217 100644
> --- a/include/misc/cxl.h
> +++ b/include/misc/cxl.h
> @@ -183,26 +183,6 @@ void cxl_psa_unmap(void __iomem *addr);
> /* Get the process element for this context */
> int cxl_process_element(struct cxl_context *ctx);
>
> -/*
> - * Limit the number of interrupts that a single context can allocate via
> - * cxl_start_work. If using the api with a real phb, this may be used to
> - * request that additional default contexts be created when allocating
> - * interrupts via pci_enable_msix_range. These will be set to the same running
> - * state as the default context, and if that is running it will reuse the
> - * parameters previously passed to cxl_start_context for the default context.
> - */
> -int cxl_set_max_irqs_per_process(struct pci_dev *dev, int irqs);
> -int cxl_get_max_irqs_per_process(struct pci_dev *dev);
> -
> -/*
> - * Use to simultaneously iterate over hardware interrupt numbers, contexts and
> - * afu interrupt numbers allocated for the device via pci_enable_msix_range and
> - * is a useful convenience function when working with hardware that has
> - * limitations on the number of interrupts per process. *ctx and *afu_irq
> - * should be NULL and 0 to start the iteration.
> - */
> -int cxl_next_msi_hwirq(struct pci_dev *pdev, struct cxl_context **ctx, int *afu_irq);
> -
> /*
> * These calls allow drivers to create their own file descriptors and make them
> * identical to the cxl file descriptor user API. An example use case:
>
--
Andrew Donnellan OzLabs, ADL Canberra
andrew.donnellan at au1.ibm.com IBM Australia Limited
More information about the Linuxppc-dev
mailing list