lkml.org 
[lkml]   [2022]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH RESEND v5 16/18] PCI: dwc-plat: Simplify the probe method return value handling
    Date
    The whole switch-case-logic implemented in the DWC PCIe RC/EP probe
    procedure doesn't seem well thought through. First of all the ret variable
    is unused in the EP-case and is only partly involved in the RC-case of the
    switch-case statement, which unnecessary complicates the code. Secondly
    the probe method will return zero if an unknown mode is detected. That is
    improbable situation since the OF-device data is initialized only with
    valid modes, but such code is still wrong at least from maintainability
    point of view. So let's convert the switch-case part of the probe function
    to being more coherent. We suggest to use the local ret variable to
    preserve the status of the case-clauses and return its value from the
    probe procedure after the work is done.

    Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
    Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Tested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Reviewed-by: Rob Herring <robh@kernel.org>
    ---
    drivers/pci/controller/dwc/pcie-designware-plat.c | 9 +++++----
    1 file changed, 5 insertions(+), 4 deletions(-)

    diff --git a/drivers/pci/controller/dwc/pcie-designware-plat.c b/drivers/pci/controller/dwc/pcie-designware-plat.c
    index 97de6ad7f9db..c6871bebf3fe 100644
    --- a/drivers/pci/controller/dwc/pcie-designware-plat.c
    +++ b/drivers/pci/controller/dwc/pcie-designware-plat.c
    @@ -143,20 +143,21 @@ static int dw_plat_pcie_probe(struct platform_device *pdev)
    return -ENODEV;

    ret = dw_plat_add_pcie_port(dw_plat_pcie, pdev);
    - if (ret < 0)
    - return ret;
    break;
    case DW_PCIE_EP_TYPE:
    if (!IS_ENABLED(CONFIG_PCIE_DW_PLAT_EP))
    return -ENODEV;

    pci->ep.ops = &pcie_ep_ops;
    - return dw_pcie_ep_init(&pci->ep);
    + ret = dw_pcie_ep_init(&pci->ep);
    + break;
    default:
    dev_err(dev, "INVALID device type %d\n", dw_plat_pcie->mode);
    + ret = -EINVAL;
    + break;
    }

    - return 0;
    + return ret;
    }

    static const struct dw_plat_pcie_of_data dw_plat_pcie_rc_of_data = {
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-06-24 16:38    [W:3.455 / U:0.128 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site