freebsd-skq/sys
Warner Losh 2a7e13e5ad Fix a long-standing bug in newbus. It was introduced when subclassing
was introduced.  If you have a bus, say cardbus, that is derived from
a base-bus (say PCI), then ordinarily all PCI drivers would attach to
cardbus devices.  However, there had been one exception: kldload
wouldn't work.

The problem is in devclass_add_driver.  In this routine, all we did
was call to the pci device's BUS_DRIVER_ADDED routine.  However, since
cardbus bus instances had a different devclass, none of them were
called.

The solution is to call all subclass devclasses, recursively down the
tree, of the class that was loaded.  Since we don't have a 'children
class' pointer, we search the whole list of devclasses for a class
whose parent matches.  Since just done a kldload time, this isn't as
bad as it sounds.  In addition, we short-circuit the whole process by
marking those classes with subclasses with a flag.  We'll likely have
to reevaluate this method the number of devclasses with subclasses
gets large.

This means we can remove the "cardbus" lines from all the PCI drivers
since we have no cardbus specific attach device attachments in the
tree.

# Also: minor tweak to an error message
2009-03-09 13:20:23 +00:00
..
amd64 Trim comments about the MP-safety of various bits of the amd64/i386 2009-03-09 13:11:16 +00:00
arm o mark unexpected callbacks more clearly 2009-03-08 23:45:56 +00:00
boot Revert the part of change 107879 that employs the unused bytes after 2009-03-07 22:05:58 +00:00
bsm Merge OpenBSM 1.1 beta 1 from OpenBSM vendor branch to head, both 2009-03-02 13:29:18 +00:00
cam GCC attacks! 2009-02-16 18:02:32 +00:00
cddl Extend the "vfsopt" mount options for more general use. Make struct 2009-03-02 23:26:30 +00:00
compat o port NDIS USB support from USB1 to the new usb(USB2). 2009-03-07 07:26:22 +00:00
conf Import support for ATI Radeon R600 and R700 series chips. 2009-03-07 21:36:57 +00:00
contrib For all files including net/vnet.h directly include opt_route.h and 2009-02-27 14:12:05 +00:00
crypto identify routine takes driver_t *, not device_t *. 2009-02-05 19:30:28 +00:00
ddb Collect N identical (or near identical) mkdumpheader() implementations into 2008-10-01 22:08:53 +00:00
dev For IP1001 PHYs, read auto-negotiation advertisement register to 2009-03-09 08:17:46 +00:00
fs Extract the no_poll() and vop_nopoll() code into the common routine 2009-03-06 15:35:37 +00:00
gdb
geom o When creating the EBR scheme, set the number of entries 2009-02-21 19:25:13 +00:00
gnu Don't declare bin_search() as an inline function, since there's no 2009-03-08 06:14:33 +00:00
i386 Trim comments about the MP-safety of various bits of the amd64/i386 2009-03-09 13:11:16 +00:00
ia64 Change over the usb kernel options to the new stack (retaining existing 2009-02-23 18:34:56 +00:00
isa Allow syscons to work on amd64 and i386 without any hints: 2009-03-05 19:10:17 +00:00
kern Fix a long-standing bug in newbus. It was introduced when subclassing 2009-03-09 13:20:23 +00:00
kgssapi Call svc_freereq() before returning from the service proc. 2008-11-12 15:31:05 +00:00
legacy/dev This copy of usbdevs is unused. 2009-02-24 17:26:37 +00:00
libkern Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
mips make loop clearer that it isn't a mistake... 2009-03-03 19:22:24 +00:00
modules Import support for ATI Radeon R600 and R700 series chips. 2009-03-07 21:36:57 +00:00
net When resetting a BPF descriptor, properly check that zero-copy buffers 2009-03-07 22:17:44 +00:00
net80211 add the desired channel to the scan list if not already present and 2009-03-04 22:05:25 +00:00
netatalk Remove local variable 'ddp' from DDP's attach and detach routines; they 2009-02-04 20:04:32 +00:00
netgraph Make Netgraph compile with Clang. 2009-03-03 18:47:33 +00:00
netinet On architectures with strict alignment requirements compensate 2009-03-07 19:08:58 +00:00
netinet6 On architectures with strict alignment requirements compensate 2009-03-07 19:08:58 +00:00
netipsec SAs are valid (but dying) when they reached soft lifetime, 2009-03-05 16:22:32 +00:00
netipx Add missing "goto set_head" for SO_IPX_CHECKSUM; otherwise we fall through 2008-12-11 10:29:35 +00:00
netnatm Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
netncp Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
netsmb Implement device cloning for /dev/nsmb, the netsmb control pseudo-device. 2008-11-03 14:23:15 +00:00
nfs
nfs4client Last step of splitting up minor and unit numbers: remove minor(). 2009-01-28 17:57:16 +00:00
nfsclient For all files including net/vnet.h directly include opt_route.h and 2009-02-27 14:12:05 +00:00
nfsserver Include audit.h so that the system call path protected by NFS_LEGACYRPC 2009-02-23 23:04:15 +00:00
nlm Don't call svc_freereq() before svc_freeargs(). 2008-11-12 15:30:30 +00:00
opencrypto Fix return type for detach routine (should be int) 2009-02-05 17:43:12 +00:00
pc98 MFi386: 189423 2009-03-06 11:15:24 +00:00
pci The callback takes a void *, not a caddr_t * (sic). 2009-03-03 18:54:57 +00:00
powerpc Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
rpc Use the correct creds when reconnecting so that we have enough privilege to 2009-02-05 11:48:10 +00:00
security Add a new thread-private flag, TDP_AUDITREC, to indicate whether or 2009-03-09 10:45:58 +00:00
sparc64 Change over the usb kernel options to the new stack (retaining existing 2009-02-23 18:34:56 +00:00
sun4v Change over the usb kernel options to the new stack (retaining existing 2009-02-23 18:34:56 +00:00
sys Use a u_int for p_lock instead of a char: this avoids a (somewhat 2009-03-09 13:12:48 +00:00
tools Remove some unused and broken code that attempted to not invoke locking 2008-11-03 19:57:40 +00:00
ufs Right now, when trying to unmount a device that's already gone, 2009-02-23 21:09:28 +00:00
vm Prior to r188331 a map entry's last read offset was only updated by a hard 2009-02-25 07:52:53 +00:00
xdr Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
xen merge 186535, 186537, and 186538 from releng_7_xen 2008-12-29 06:31:03 +00:00
Makefile Removal pccard directory requires removing it from the list of things 2009-02-15 18:19:24 +00:00