[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1558648079-13893-1-git-send-email-alan.mikhak@sifive.com>
Date: Thu, 23 May 2019 14:47:59 -0700
From: Alan Mikhak <alan.mikhak@...ive.com>
To: linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org,
kishon@...com, lorenzo.pieralisi@....com,
linux-riscv@...ts.infradead.org, palmer@...ive.com,
paul.walmsley@...ive.com
Cc: Alan Mikhak <alan.mikhak@...ive.com>
Subject: [PATCH v2] PCI: endpoint: Allocate enough space for fixed size BAR
PCI endpoint test function code should honor the .bar_fixed_size parameter
from underlying endpoint controller drivers or results may be unexpected.
In pci_epf_test_alloc_space(), check if BAR being used for test register
space is a fixed size BAR. If so, allocate the required fixed size.
Signed-off-by: Alan Mikhak <alan.mikhak@...ive.com>
---
drivers/pci/endpoint/functions/pci-epf-test.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c
index 27806987e93b..7d41e6684b87 100644
--- a/drivers/pci/endpoint/functions/pci-epf-test.c
+++ b/drivers/pci/endpoint/functions/pci-epf-test.c
@@ -434,10 +434,16 @@ static int pci_epf_test_alloc_space(struct pci_epf *epf)
int bar;
enum pci_barno test_reg_bar = epf_test->test_reg_bar;
const struct pci_epc_features *epc_features;
+ size_t test_reg_size;
epc_features = epf_test->epc_features;
- base = pci_epf_alloc_space(epf, sizeof(struct pci_epf_test_reg),
+ if (epc_features->bar_fixed_size[test_reg_bar])
+ test_reg_size = bar_size[test_reg_bar];
+ else
+ test_reg_size = sizeof(struct pci_epf_test_reg);
+
+ base = pci_epf_alloc_space(epf, test_reg_size,
test_reg_bar, epc_features->align);
if (!base) {
dev_err(dev, "Failed to allocated register space\n");
--
2.7.4
Powered by blists - more mailing lists