freebsd-dev/sys
Jessica Clarke 31776afdc7 pci_pci: Support growing bus ranges in bus_adjust_resource for NEW_PCIB
This is the same underlying problem as 2624598064, just for bus ranges
rather than windows. SiFive's HiFive Unmatched has the following
topology:

  Root Port <---> Bridge <---> Bridge <-+-> Bridge <---> (Unused)
   (pcib0)        (pcib1)      (pcib2)  |   (pcib3)
                                        +-> Bridge <---> xHCI
                                        |   (pcib4)
                                        +-> Bridge <---> M.2 E-key
                                        |   (pcib5)
                                        +-> Bridge <---> M.2 M-key
                                        |   (pcib6)
                                        +-> Bridge <---> x16 slot
                                            (pcib7)

If a device is plugged into the x16 slot that itself has a bridge, such
as many graphics cards, we currently fail to allocate a bus number for
its child bus (and so pcib_attach_child skips adding a child bus for
further enumeration) as, when the new child bridge attaches, it attempts
to allocate a bus number from its parent (pcib7) which in turn attempts
to grow its own bus range by calling bus_adjust_resource on its own
parent (pcib2) whose bus rman cannot accommodate the request and needs
to itself be extended by calling its own parent (pcib1). Note that
pcib3-7 do not face the same issue when they attach since pcib1 ends up
managing bus numbers 1-255 from the beginning and so never needs to grow
its own range.

Reviewed by:	jhb, mav
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D32011
2021-10-03 19:35:26 +01:00
..
amd64 minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
arm arm64: Spell BeagleBone correctly in config file. 2021-10-02 10:30:14 -06:00
arm64 arm64, riscv: Fix TRAF_PC() to return the PC, not the return address. 2021-10-01 11:53:12 -07:00
bsm Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9). 2021-08-05 23:20:42 +08:00
cam cam: Fix a typo in a comment 2021-10-02 10:48:43 +02:00
cddl Allow ddb and dtrace use the DMAP region on arm64 2021-10-01 11:27:33 +01:00
compat LinuxKPI: Add more #ifdef VM_MEMATTR_WRITE_COMBINING guards 2021-10-03 19:34:40 +01:00
conf nvme: Only reset once on attach. 2021-10-01 11:09:34 -06:00
contrib Import ACPICA 20210930 2021-09-30 22:05:52 -04:00
crypto crypto(4): Fix a few typos in camellia.c 2021-09-04 13:02:11 +02:00
ddb Create sys/reg.h for the common code previously in machine/reg.h 2021-08-30 12:50:53 +01:00
dev pci_pci: Support growing bus ranges in bus_adjust_resource for NEW_PCIB 2021-10-03 19:35:26 +01:00
dts Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
fs vfs: remove dead fifoop VOP_KQFILTER implementations 2021-10-03 01:02:51 -05:00
gdb
geom Don't set GELI UMA zone as UMA_ZONE_NOFREE. 2021-10-01 10:31:17 -07:00
gnu
i386 minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
isa
kern sleepqueue(9): Remove sbinuptime() from sleepq_timeout(). 2021-10-02 21:08:41 -04:00
kgssapi
libkern libkern: remove bcopy 2021-08-24 11:24:07 +00:00
mips minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
modules modules: felix: Remove etherswitch_if.c from Makefile 2021-10-01 11:24:08 +02:00
net pfctl: userspace adaptive syncookies configration 2021-09-29 15:11:54 +02:00
net80211 net80211: prevent plaintext injection by A-MSDU RFC1042/EAPOL frames 2021-09-30 14:54:04 +00:00
netgraph bluetooth: complete removal of ng_h4 2021-09-29 20:00:02 -06:00
netinet sctp: don't keep being locked on a stream which is removed 2021-10-02 00:48:01 +02:00
netinet6 sctp: Tighten up locking around sctp_aloc_assoc() 2021-09-11 10:15:21 -04:00
netipsec ipsec: fix typo part2 2021-09-27 07:46:56 +02:00
netpfil pf: hook up adaptive mode configuration 2021-09-29 15:11:54 +02:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed socket: De-duplicate SBLOCKWAIT() definitions 2021-09-14 09:01:32 -04:00
opencrypto opencrypto: Disallow requests which pass VERIFY_DIGEST without a MAC 2021-09-24 15:04:45 -04:00
powerpc minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
riscv riscv: Add vt and kbdmux to GENERIC for video console support 2021-10-03 19:34:53 +01:00
rpc rpc: Convert an SOLISTENING check to an assertion 2021-09-17 14:19:05 -04:00
security Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9). 2021-08-05 23:20:42 +08:00
sys fd: add pwd_hold_proc 2021-09-30 12:49:51 +02:00
teken
tests routing: add IPv6 fib validation procedure. 2021-08-16 23:04:01 +00:00
tools makesyscalls: sprinkle some assert() on standard function calls 2021-09-24 20:55:56 -05:00
ufs vfs: remove dead fifoop VOP_KQFILTER implementations 2021-10-03 01:02:51 -05:00
vm minidump: De-duplicate is_dumpable() 2021-09-29 16:41:52 -03:00
x86 minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
xdr
xen
Makefile