Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1373863
| Path | csiph.com!aioe.org!gothmog.csi.it!bofh.it!news.nic.it!robomod |
|---|---|
| From | Yinghai Lu <yinghai@kernel.org> |
| Newsgroups | linux.kernel |
| Subject | [PATCH v11 37/60] PCI: Cache window alignment value during bus sizing |
| Date | Fri, 08 Apr 2016 02:30:03 +0200 |
| Message-ID | <rlstd-3DX-19@gated-at.bofh.it> (permalink) |
| References | <rlsjv-3zZ-3@gated-at.bofh.it> |
| X-Mailer | git-send-email 1.8.4.5 |
| X-Source-IP | userv0022.oracle.com [156.151.31.74] |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 53 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | Wei Yang <weiyang@linux.vnet.ibm.com>, TJ <linux@iam.tj>, Yijing Wang <wangyijing@huawei.com>, Khalid Aziz <khalid.aziz@oracle.com>, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Yinghai Lu <yinghai@kernel.org> |
| X-Original-Date | Thu, 7 Apr 2016 17:15:50 -0700 |
| X-Original-Message-ID | <1460074573-7481-38-git-send-email-yinghai@kernel.org> |
| X-Original-References | <1460074573-7481-1-git-send-email-yinghai@kernel.org> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1373863 |
Show key headers only | View raw
There are several calling to window_alignment(), and we will have more
for alt_size support, cache the value instead of keeping on getting it.
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
---
drivers/pci/setup-bus.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index efa6d4e..4d2898d 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -1240,6 +1240,7 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
mask | IORESOURCE_PREFETCH, type);
LIST_HEAD(align_test_list);
LIST_HEAD(align_test_add_list);
+ resource_size_t window_align;
if (!b_res)
return -ENOSPC;
@@ -1249,6 +1250,8 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
min_size = 0;
}
+ window_align = window_alignment(bus, b_res->flags);
+
list_for_each_entry(dev, &bus->devices, bus_list) {
int i;
@@ -1311,10 +1314,10 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
}
}
- max_align = max(max_align, window_alignment(bus, b_res->flags));
+ max_align = max(max_align, window_align);
if (size || min_size) {
min_align = calculate_mem_align(&align_test_list, max_align,
- size, window_alignment(bus, b_res->flags));
+ size, window_align);
size0 = calculate_memsize(size, min_size,
resource_size(b_res), min_align);
}
@@ -1325,7 +1328,7 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
if (sum_add_size > size && realloc_head) {
min_add_align = calculate_mem_align(&align_test_add_list,
max_add_align, sum_add_size,
- window_alignment(bus, b_res->flags));
+ window_align);
size1 = calculate_memsize(sum_add_size, min_size,
resource_size(b_res), min_add_align);
}
--
1.8.4.5
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
[PATCH v11 37/60] PCI: Cache window alignment value during bus sizing Yinghai Lu <yinghai@kernel.org> - 2016-04-08 02:30 +0200
csiph-web