Page MenuHomeFreeBSD

D32011.id95329.diff
No OneTemporary

D32011.id95329.diff

Index: sys/dev/pci/pci_pci.c
===================================================================
--- sys/dev/pci/pci_pci.c
+++ sys/dev/pci/pci_pci.c
@@ -2364,7 +2364,20 @@
start, end));
#ifdef PCI_RES_BUS
- if (type != PCI_RES_BUS)
+ if (type == PCI_RES_BUS) {
+ /*
+ * If our bus range isn't big enough to grow the sub-allocation
+ * then we need to grow our bus range. Any request that would
+ * require us to decrease the start of our own bus range is
+ * invalid, we can only extend the end; ignore such requests
+ * and let rman_adjust_resource fail below.
+ */
+ if (start >= sc->bus.sec && end > sc->bus.sub) {
+ error = pcib_grow_subbus(&sc->bus, end);
+ if (error != 0)
+ return (error);
+ }
+ } else
#endif
{
/*

File Metadata

Mime Type
text/plain
Expires
Fri, Feb 28, 5:13 AM (2 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16880098
Default Alt Text
D32011.id95329.diff (760 B)

Event Timeline