diff options
author | Kunihiko Hayashi <hayashi.kunihiko@socionext.com> | 2020-02-26 06:52:23 +0100 |
---|---|---|
committer | Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> | 2020-03-31 10:13:27 +0200 |
commit | f58d5f53c89479c12ad719c1960176442add5aaa (patch) | |
tree | 476a5298a4b21cc79b0b0966a280ac44ef532a30 /drivers/pci | |
parent | PCI: tegra: Add support for PCIe endpoint mode in Tegra194 (diff) | |
download | linux-f58d5f53c89479c12ad719c1960176442add5aaa.tar.xz linux-f58d5f53c89479c12ad719c1960176442add5aaa.zip |
PCI: endpoint: Fix clearing start entry in configfs
After an endpoint is started through configfs, if 0 is written to the
configfs entry 'start', the controller stops but the epc_group->start
value remains 1.
A subsequent unlinking of the function from the controller would trigger
a spurious WARN_ON_ONCE() in pci_epc_epf_unlink() despite right
behavior.
Fix it by setting epc_group->start = 0 when a controller is stopped
using configfs.
Fixes: d74679911610 ("PCI: endpoint: Introduce configfs entry for configuring EP functions")
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Kishon Vijay Abraham I <kishon@ti.com>
Cc: Kishon Vijay Abraham I <kishon@ti.com>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/endpoint/pci-ep-cfs.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/pci/endpoint/pci-ep-cfs.c b/drivers/pci/endpoint/pci-ep-cfs.c index e7e8367eead1..55edce50be96 100644 --- a/drivers/pci/endpoint/pci-ep-cfs.c +++ b/drivers/pci/endpoint/pci-ep-cfs.c @@ -57,6 +57,7 @@ static ssize_t pci_epc_start_store(struct config_item *item, const char *page, if (!start) { pci_epc_stop(epc); + epc_group->start = 0; return len; } |