PCI: endpoint: Return error if EPC is started/stopped multiple times
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Fri, 2 Jun 2023 11:47:50 +0000 (17:17 +0530)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 23 Jun 2023 20:05:11 +0000 (15:05 -0500)
When the EPC is started or stopped multiple times from configfs, just
return -EALREADY. There is no need to call the EPC start/stop functions
in those cases.

Link: https://lore.kernel.org/r/20230602114756.36586-4-manivannan.sadhasivam@linaro.org
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Kishon Vijay Abraham I <kishon@kernel.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
drivers/pci/endpoint/pci-ep-cfs.c

index 18e061a..0ea64e2 100644 (file)
@@ -179,6 +179,9 @@ static ssize_t pci_epc_start_store(struct config_item *item, const char *page,
        if (kstrtobool(page, &start) < 0)
                return -EINVAL;
 
+       if (start == epc_group->start)
+               return -EALREADY;
+
        if (!start) {
                pci_epc_stop(epc);
                epc_group->start = 0;