Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PCI: Support BAR sizes up to 8TB

Current kernel reports that BARs larger than 128GB, e.g., this 4TB BAR, are
disabled:

pci 0000:01:00.0: disabling BAR 4: [mem 0x00000000-0x3ffffffffff 64bit pref] (bad alignment 0x40000000000)

Increase the maximum BAR size from 128GB to 8TB for future expansion.

[bhelgaas: commit log]
Link: https://lore.kernel.org/r/20220118092117.10089-1-liudongdong3@huawei.com
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

authored by

Dongdong Liu and committed by
Bjorn Helgaas
3dc8a1f6 e783362e

+1 -1
+1 -1
drivers/pci/setup-bus.c
··· 994 994 { 995 995 struct pci_dev *dev; 996 996 resource_size_t min_align, align, size, size0, size1; 997 - resource_size_t aligns[18]; /* Alignments from 1MB to 128GB */ 997 + resource_size_t aligns[24]; /* Alignments from 1MB to 8TB */ 998 998 int order, max_order; 999 999 struct resource *b_res = find_bus_resource_of_type(bus, 1000 1000 mask | IORESOURCE_PREFETCH, type);