diff mbox series

Allocate enough space for fixed size BAR

Message ID 1556208592-1750-1-git-send-email-amikhak@wirelessfabric.com
State Superseded
Delegated to: Lorenzo Pieralisi
Headers show
Series Allocate enough space for fixed size BAR | expand

Commit Message

Alan Mikhak April 25, 2019, 4:09 p.m. UTC
From: Alan Mikhak <amikhak@wirelessfabric.com>

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 <amikhak@wirelessfabric.com>
---
 drivers/pci/endpoint/functions/pci-epf-test.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c
index d0b91da..dfa6a46 100644
--- a/drivers/pci/endpoint/functions/pci-epf-test.c
+++ b/drivers/pci/endpoint/functions/pci-epf-test.c
@@ -434,11 +434,15 @@  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),
-				   test_reg_bar);
+	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);
 	if (!base) {
 		dev_err(dev, "Failed to allocated register space\n");
 		return -ENOMEM;