freebsd-skq/sys
jhb 2f9d87159f For some buses, devices may have active resources assigned even though they
are not allocated by the device driver.  These resources should still appear
allocated from the system's perspective so that their assigned ranges are
not reused by other resource requests.  The PCI bus driver has used a hack
to effect this for a while now where it uses rman_set_device() to assign
devices to the PCI bus when they are first encountered and later assigns
them to the actual device when a driver allocates a BAR.  A few downsides of
this approach is that it results in somewhat confusing devinfo -r output as
well as not being very easily portable to other bus drivers.

This commit adds generic support for "reserved" resources to the resource
list API used by many bus drivers to manage the resources of child devices.
A resource may be reserved via resource_list_reserve().  This will allocate
the resource from the bus' parent without activating it.
resource_list_alloc() recognizes an attempt to allocate a reserved resource.
When this happens it activates the resource (if requested) and then returns
the reserved resource.  Similarly, when a reserved resource is released via
resource_list_release(), it is deactivated (if it is active) and the
resource is then marked reserved again, but is left allocated from the
bus' parent.  To completely remove a reserved resource, a bus driver may
use resource_list_unreserve().  A bus driver may use resource_list_busy()
to determine if a reserved resource is allocated by a child device or if
it can be unreserved.

The PCI bus driver has been changed to use this framework instead of
abusing rman_set_device() to keep track of reserved vs allocated resources.

Submitted by:	imp (an older version many moons ago)
MFC after:	1 month
2009-12-09 21:52:53 +00:00
..
amd64 Simplify a macro not to generate unncessary symbols. 2009-12-08 22:38:42 +00:00
arm Fix the build. 2009-12-08 21:42:04 +00:00
boot Fix a confusing typo in the EDD packet structure used in gptboot and 2009-12-09 21:09:32 +00:00
bsm Add audit events for process descriptor system calls, which will appear in 2009-09-29 21:25:59 +00:00
cam Clear result before requesting XPT_PATH_INQ. 2009-12-09 14:21:21 +00:00
cddl Change VOP_FSYNC for zfs vnode from VOP_PANIC to zfs_freebsd_fsync(), 2009-12-05 20:36:42 +00:00
compat Regenerate. 2009-12-04 21:53:20 +00:00
conf MFp4: 2009-12-06 00:10:13 +00:00
contrib Merge ACPICA 20091112. 2009-11-16 21:47:12 +00:00
crypto
ddb Among signal generation syscalls, only sigqueue(2) is allowed by POSIX 2009-11-17 11:39:15 +00:00
dev For some buses, devices may have active resources assigned even though they 2009-12-09 21:52:53 +00:00
fs Allow using IPv6 in nfsrvd_sentcache() callback. 2009-12-08 23:43:50 +00:00
gdb
geom Change 'load' balancing mode algorithm: 2009-12-03 21:47:51 +00:00
gnu Remove unused code. 2009-12-03 18:16:14 +00:00
i386 make PV core dump actually dump memory - still need to fix program header initialization 2009-12-09 08:09:25 +00:00
ia64 In exception_save, write-back ar.rnat after switching the backing- 2009-12-08 00:44:23 +00:00
isa - Partially revert hackish r198964 and r199002. 2009-11-12 17:56:56 +00:00
kern For some buses, devices may have active resources assigned even though they 2009-12-09 21:52:53 +00:00
kgssapi When the KOBJMETHOD() macro was updated, it resulted in the 2009-06-14 17:33:46 +00:00
libkern Move inet_aton() (specular to inet_ntoa(), already present in libkern) 2009-11-12 00:46:28 +00:00
mips Simplify the invocation of vm_fault(). Specifically, eliminate the flag 2009-11-27 20:24:11 +00:00
modules amdsbwd: new driver for AMD SB600/SB7xx watchdog timer 2009-11-30 11:44:03 +00:00
net Remove if_timer/if_watchdog now that they are no longer used. The space 2009-11-30 21:25:57 +00:00
net80211 Fix typo in comment 2009-12-08 00:54:08 +00:00
netatalk Reverse misordered unlock and lock in at_control for netatalk phase I 2009-08-12 10:44:13 +00:00
netgraph Take a step towards removing if_watchdog/if_timer. Don't explicitly set 2009-11-06 14:55:01 +00:00
netinet Fix burst processing for WF2Q pipes - do not increase available burst size 2009-12-05 23:27:21 +00:00
netinet6 Adapt r197136 to IPv6 stack: 2009-11-19 13:39:07 +00:00
netipsec Enable IPcomp by default. 2009-11-29 20:47:43 +00:00
netipx Use queue(9) instead of hand-crafted link lists for the global IPX 2009-06-24 20:57:50 +00:00
netnatm Reimplement the netisr framework in order to support parallel netisr 2009-06-01 10:41:38 +00:00
netncp
netsmb Don't print out a message on loading a module. 'kldload -v' and 'kldstat 2009-09-10 18:33:08 +00:00
nfs Revert rev 192323 (nfs_common.c only): 2009-07-12 03:53:52 +00:00
nfsclient Close a race with caching of -ve name lookups in the NFS client. 2009-10-16 19:30:48 +00:00
nfsserver Properly return an error reply if an NFS remove or link operation fails. 2009-12-03 20:59:28 +00:00
nlm Handle GRANTED_RES messages more gracefully: Send along a grant cookie 2009-10-07 19:50:14 +00:00
opencrypto In case the compression result is the same size as the orignal version, 2009-11-29 17:53:57 +00:00
pc98 Fix cut'n paste on the AR9280 entry. 2009-12-02 21:22:10 +00:00
pci intpm/sb700: force polling mode if configured interrupt is SMI 2009-09-19 08:56:28 +00:00
powerpc Unbreak build. 2009-12-06 17:26:43 +00:00
rpc Add a check for the connection being shut down to the krpc 2009-11-08 19:02:13 +00:00
security Having thrown the cat out of the house, add a necessary include. 2009-09-08 13:24:36 +00:00
sparc64 Add additional checks of the kernel stack addresses in order to 2009-12-08 20:18:54 +00:00
sun4v Add additional checks of the kernel stack addresses in order to 2009-12-08 20:18:54 +00:00
sys For some buses, devices may have active resources assigned even though they 2009-12-09 21:52:53 +00:00
teken Place home and end before insert and delete. 2009-11-11 09:43:26 +00:00
tools Output a comment on top of each generated file explaining where it came 2009-10-25 09:48:21 +00:00
ufs Don't build ufs_gjournal.c at all if UFS_GJOURNAL option is not given 2009-09-22 16:22:05 +00:00
vm Remove trailing ";" in UMA_HASH_INSERT and UMA_HASH_REMOVE macros. 2009-12-05 17:45:56 +00:00
xdr Add a check for a NULL mbuf ptr at the beginning of xdrmbuf_inline() 2009-08-12 16:27:51 +00:00
xen Temporarily revert the new-bus locking for 8.0 release. It will be 2009-08-20 19:17:53 +00:00
Makefile