freebsd-dev/sys/kern
Andriy Gapon b7d28b2e0b bus_add_child: add specialized default implementation that calls panic
If a kobj method doesn't have any explicitly provided default
implementation, then it is auto-assigned kobj_error_method.
kobj_error_method is proper only for methods that return error code,
because it just returns ENXIO.
So, in the case of unimplemented bus_add_child caller would get
(device_t)ENXIO as a return value, which would cause the mistake to go
unnoticed, because return value is typically checked for NULL.
Thus, a specialized null_add_child is added.  It would have sufficied
for correctness to return NULL, but this type of mistake was deemed to
be rare and serious enough to call panic instead.

Watch out for this kind of problem with other kobj methods.

Suggested by:	jhb, imp
MFC after:	2 weeks
2010-09-13 08:34:20 +00:00
..
bus_if.m bus_add_child: add specialized default implementation that calls panic 2010-09-13 08:34:20 +00:00
clock_if.m
cpufreq_if.m
device_if.m
genassym.sh
imgact_aout.c Reorganize syscall entry and leave handling. 2010-05-23 18:32:02 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Supply some useful information to the started image using ELF aux vectors. 2010-08-17 08:55:45 +00:00
imgact_gzip.c
imgact_shell.c Introduce exec_alloc_args(). The objective being to encapsulate the 2010-07-27 17:31:03 +00:00
inflate.c
init_main.c Add descriptions to a handful of sysctl nodes. 2010-08-09 14:48:31 +00:00
init_sysent.c Regen 2010-08-30 14:26:02 +00:00
kern_acct.c Use ISO C99 integer types in sys/kern where possible. 2010-06-21 09:55:56 +00:00
kern_alq.c - Rework the underlying ALQ storage to be a circular buffer, which amongst other 2010-04-26 13:48:22 +00:00
kern_clock.c Refactor timer management code with priority to one-shot operation mode. 2010-09-13 07:25:35 +00:00
kern_clocksource.c Refactor timer management code with priority to one-shot operation mode. 2010-09-13 07:25:35 +00:00
kern_condvar.c
kern_conf.c Add "show cdev" ddb command. 2010-08-06 09:44:01 +00:00
kern_cons.c Add descriptions to a handful of sysctl nodes. 2010-08-09 14:48:31 +00:00
kern_context.c Move prototypes for kern_sigtimedwait() and kern_sigprocmask() to 2010-06-30 18:03:42 +00:00
kern_cpu.c cpufreq: allocate long-lived buffer for handling of sysctl requests 2010-07-23 16:46:42 +00:00
kern_cpuset.c Another nit that both I and ispell missed. 2009-10-26 18:32:06 +00:00
kern_ctf.c
kern_descrip.c Remove one zero from the double-0. 2010-04-23 14:32:58 +00:00
kern_dtrace.c Bump KDTRACE_THREAD_ZERO and use M_ZERO as a malloc flag instead of 2010-08-22 11:09:53 +00:00
kern_environment.c Merge change r198561 from projects/mips to head: 2010-01-10 22:34:18 +00:00
kern_et.c Refactor timer management code with priority to one-shot operation mode. 2010-09-13 07:25:35 +00:00
kern_event.c Defer freeing a kevent list until after dropping kqueue locks. 2010-03-30 18:31:55 +00:00
kern_exec.c execve(2) has a special check for file permissions: a file must have at 2010-08-30 16:30:18 +00:00
kern_exit.c Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
kern_fail.c Remove extraneous semicolons, no functional changes. 2010-01-07 21:01:37 +00:00
kern_fork.c Fix two bugs in DTrace: 2010-09-09 09:58:05 +00:00
kern_gzio.c Do not set IO_NODELOCKED while writing to vnodes as our consumers 2010-04-30 03:10:53 +00:00
kern_idle.c Split P_NOLOAD into a per-thread flag (TDF_NOLOAD). 2009-11-03 16:46:52 +00:00
kern_intr.c Store interrupt trap frame into struct thread. It allows interrupt handler 2010-06-10 16:14:05 +00:00
kern_jail.c Don't exit kern_jail_set without freeing options when enforce_statfs 2010-09-10 21:45:42 +00:00
kern_kthread.c Allow a const char * to be passed as the process name to kproc_kthread_add() 2010-05-21 17:14:36 +00:00
kern_ktr.c Probabilly defaulting to KTR_GEN is not the right decision when KTR_MASK 2010-07-21 10:14:04 +00:00
kern_ktrace.c Fix a whitespace nit and remove a questioning comment. STAILQ_CONCAT() 2010-08-19 16:38:58 +00:00
kern_linker.c - Unbreak build with KLD_DEBUG defined 2009-11-17 21:56:12 +00:00
kern_lock.c Add dedicated routines to toggle lockmgr flags such as LK_NOSHARE and 2010-08-20 19:46:50 +00:00
kern_lockf.c
kern_lockstat.c
kern_malloc.c Add a drain function for struct sysctl_req, and use it for a variety of 2010-09-09 18:33:46 +00:00
kern_mbuf.c Use ISO C99 integer types in sys/kern where possible. 2010-06-21 09:55:56 +00:00
kern_mib.c When compat32 binary asks for the value of hw.machine_arch, report the 2010-07-22 09:13:49 +00:00
kern_module.c Use ISO C99 integer types in sys/kern where possible. 2010-06-21 09:55:56 +00:00
kern_mtxpool.c
kern_mutex.c Right now, WITNESS just blindly pipes all the output to the 2010-05-11 18:24:22 +00:00
kern_ntptime.c kern_ntptime: drop a comment that became stale after r207359 2010-04-29 09:18:36 +00:00
kern_osd.c
kern_physio.c
kern_pmc.c
kern_poll.c
kern_priv.c Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
kern_proc.c Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
kern_prot.c Revert r210225 - turns out I was wrong; the "/*-" is not license-only 2010-07-18 20:57:53 +00:00
kern_resource.c Revert r210225 - turns out I was wrong; the "/*-" is not license-only 2010-07-18 20:57:53 +00:00
kern_rmlock.c rmlock(9) two additions and one change/fix: 2010-09-01 19:50:03 +00:00
kern_rwlock.c Print the pointer to the lock with the panic message. The previous 2010-03-24 19:21:26 +00:00
kern_sdt.c Use ISO C99 integer types in sys/kern where possible. 2010-06-21 09:55:56 +00:00
kern_sema.c
kern_shutdown.c Fix compilation in the !SMP case. 2010-04-20 12:22:06 +00:00
kern_sig.c Replace sbuf_overflowed() with sbuf_error(), which returns any error 2010-09-10 16:42:16 +00:00
kern_switch.c Update several places that iterate over CPUs to use CPU_FOREACH(). 2010-06-11 18:46:34 +00:00
kern_sx.c Fix a sign bug that caused adaptive spinning in sx_xlock() to not work 2010-06-08 16:17:47 +00:00
kern_synch.c
kern_syscalls.c Count number of threads that enter and leave dynamically registered 2010-06-28 18:06:46 +00:00
kern_sysctl.c Add a drain function for struct sysctl_req, and use it for a variety of 2010-09-09 18:33:46 +00:00
kern_tc.c Refactor timer management code with priority to one-shot operation mode. 2010-09-13 07:25:35 +00:00
kern_thr.c Optimize thr_suspend, if timeout is zero, don't call msleep, just 2010-08-24 07:29:55 +00:00
kern_thread.c Retire td_syscalls now that it is no longer needed. 2010-07-15 20:24:37 +00:00
kern_time.c
kern_timeout.c Refactor timer management code with priority to one-shot operation mode. 2010-09-13 07:25:35 +00:00
kern_umtx.c If a thread is removed from umtxq while sleeping, reset error code 2010-08-25 03:14:32 +00:00
kern_uuid.c
kern_xxx.c
ksched.c sched_getparam was just plain broke for time-share 2010-03-03 21:46:51 +00:00
link_elf_obj.c completely ignore zero-sized elf sections in modules of elf object type (amd64) 2010-07-23 17:07:51 +00:00
link_elf.c
linker_if.m
Make.tags.inc
Makefile This should really be MACHINE not MACHINE_ARCH, and is this Makefile even used? 2010-08-23 06:22:35 +00:00
makesyscalls.sh Count number of threads that enter and leave dynamically registered 2010-06-28 18:06:46 +00:00
md4c.c
md5c.c
p1003_1b.c
posix4_mib.c Add a facility to dynamically adjust or unconfigure p1003_1b mib. 2010-06-02 09:59:05 +00:00
sched_4bsd.c Refactor timer management code with priority to one-shot operation mode. 2010-09-13 07:25:35 +00:00
sched_ule.c Refactor timer management code with priority to one-shot operation mode. 2010-09-13 07:25:35 +00:00
serdev_if.m
stack_protector.c Random number generator initialization cleanup: 2009-10-20 16:36:51 +00:00
subr_acl_nfs4.c execve(2) has a special check for file permissions: a file must have at 2010-08-30 16:30:18 +00:00
subr_acl_posix1e.c execve(2) has a special check for file permissions: a file must have at 2010-08-30 16:30:18 +00:00
subr_autoconf.c Allow interrupt driven config hooks to be registered from config hook callbacks. 2010-08-12 19:50:40 +00:00
subr_blist.c
subr_bufring.c Switch to our preferred 2-clause BSD license. 2010-05-05 20:39:02 +00:00
subr_bus.c bus_add_child: change type of order parameter to u_int 2010-09-10 11:19:03 +00:00
subr_clock.c
subr_devstat.c Use ISO C99 integer types in sys/kern where possible. 2010-06-21 09:55:56 +00:00
subr_disk.c Correct bioq_disksort so that bioq_insert_tail() offers barrier semantic. 2010-09-02 19:40:28 +00:00
subr_eventhandler.c Split eventhandler_register() into an internal part and a wrapper function 2010-03-19 19:51:03 +00:00
subr_fattime.c Use ISO C99 integer types in sys/kern where possible. 2010-06-21 09:55:56 +00:00
subr_firmware.c Bump up the firmware_table from 30 to 50. bwn needs more than 30, it 2010-03-07 22:37:35 +00:00
subr_hash.c Decompose the most lousy named file in sys/kern; kern_subr.c. 2010-02-21 19:53:33 +00:00
subr_hints.c
subr_kdb.c fix a few cases where a string is passed via format argument instead of 2010-06-11 19:27:21 +00:00
subr_kobj.c
subr_lock.c Add a drain function for struct sysctl_req, and use it for a variety of 2010-09-09 18:33:46 +00:00
subr_log.c Make /dev/klog and kern.msgbuf* MPSAFE. 2009-11-03 21:06:19 +00:00
subr_mbpool.c
subr_mchain.c Use ISO C99 integer types in sys/kern where possible. 2010-06-21 09:55:56 +00:00
subr_module.c Use ISO C99 integer types in sys/kern where possible. 2010-06-21 09:55:56 +00:00
subr_msgbuf.c
subr_param.c Add Xen to the list of virtual vendors. In the non PV (HVM) case this fixes 2010-08-06 15:04:40 +00:00
subr_pcpu.c Update several places that iterate over CPUs to use CPU_FOREACH(). 2010-06-11 18:46:34 +00:00
subr_power.c
subr_prf.c Use type-specific inline function imax() instead of deprecated macro MAX(). 2010-07-12 15:32:45 +00:00
subr_prof.c Revert r210225 - turns out I was wrong; the "/*-" is not license-only 2010-07-18 20:57:53 +00:00
subr_rman.c
subr_rtc.c Add the half of time-of-day clock resolution when we adjust system time from 2010-08-12 17:17:05 +00:00
subr_sbuf.c Add missing pointer increment to sbuf_cat. 2010-09-11 19:42:50 +00:00
subr_scanf.c
subr_sglist.c
subr_sleepqueue.c Add a drain function for struct sysctl_req, and use it for a variety of 2010-09-09 18:33:46 +00:00
subr_smp.c The r208165 fixed a bug related to unsigned integer overflowing for the 2010-08-09 00:23:57 +00:00
subr_stack.c
subr_taskqueue.c Run all tasks from a proper context, with proper priority, etc. 2010-08-28 08:38:03 +00:00
subr_trap.c Call the systrace_probe_func() when the error value. 2010-08-22 11:30:49 +00:00
subr_turnstile.c Introduce the new kernel thread called "deadlock resolver". 2010-01-09 01:46:38 +00:00
subr_uio.c Push down the page queues into vm_page_cache(), vm_page_try_to_cache(), and 2010-05-08 20:34:01 +00:00
subr_unit.c Remove redundant high >= 0. 2010-07-09 10:57:55 +00:00
subr_witness.c Add a drain function for struct sysctl_req, and use it for a variety of 2010-09-09 18:33:46 +00:00
sys_generic.c For some file types, select code registers two selfd structures. E.g., 2010-08-28 17:42:08 +00:00
sys_pipe.c Update a comment: It no longer makes sense to talk about the page queues 2010-05-08 23:01:47 +00:00
sys_process.c Extend ptrace(PT_LWPINFO) to report siginfo for the signal that caused 2010-07-04 11:48:30 +00:00
sys_socket.c Send SIGPIPE to the thread that issued the offending system call 2010-06-29 20:44:19 +00:00
syscalls.c Regen 2010-08-30 14:26:02 +00:00
syscalls.master Make the syscalls reserved for AFS usable by OpenAFS port. 2010-08-30 14:24:44 +00:00
systrace_args.c Regen 2010-08-30 14:26:02 +00:00
sysv_ipc.c Move SysV IPC freebsd32 compat shims helpers from freebsd32_misc.c to 2010-03-19 11:01:51 +00:00
sysv_msg.c Move SysV IPC freebsd32 compat shims from freebsd32_misc.c to corresponding 2010-03-19 11:04:42 +00:00
sysv_sem.c In another move to join with the age of the Fruitbat, increase SYSV 2010-06-11 09:27:33 +00:00
sysv_shm.c If i is going to be used in the loop unconditionally the declaration 2010-06-29 01:04:24 +00:00
tty_compat.c Make TIOCSTI work again. 2010-01-04 20:59:52 +00:00
tty_info.c
tty_inq.c Remove statistics from the TTY queues. 2010-02-07 15:42:15 +00:00
tty_outq.c Remove statistics from the TTY queues. 2010-02-07 15:42:15 +00:00
tty_pts.c Do not leak master pty or ptmx vnode. 2010-04-08 08:58:18 +00:00
tty_tty.c
tty_ttydisc.c Print backspaces after echoing an EOF. 2009-10-17 08:59:41 +00:00
tty.c Add new make_dev_p(9) flag MAKEDEV_ETERNAL to inform devfs that created 2010-08-06 09:42:15 +00:00
uipc_accf.c (S)LIST_HEAD_INITIALIZER takes a (S)LIST_HEAD as an argument. 2009-12-28 22:56:30 +00:00
uipc_cow.c Remove page queues locking from all sf_buf_mext()-like functions. The page 2010-05-06 17:43:41 +00:00
uipc_debug.c
uipc_domain.c
uipc_mbuf2.c Use ISO C99 integer types in sys/kern where possible. 2010-06-21 09:55:56 +00:00
uipc_mbuf.c Revert r210225 - turns out I was wrong; the "/*-" is not license-only 2010-07-18 20:57:53 +00:00
uipc_mqueue.c Use ISO C99 integer types in sys/kern where possible. 2010-06-21 09:55:56 +00:00
uipc_sem.c Add a facility to dynamically adjust or unconfigure p1003_1b mib. 2010-06-02 09:59:05 +00:00
uipc_shm.c Minimize the use of the page queues lock for synchronizing access to the 2010-06-02 15:46:37 +00:00
uipc_sockbuf.c
uipc_socket.c Fix a bug where MSG_TRUNC was not returned in all necessary cases for 2010-08-07 17:57:58 +00:00
uipc_syscalls.c Implement correct handling of address parameter and 2010-09-05 20:13:07 +00:00
uipc_usrreq.c Remove spurious '/*-' marks and fix some other style problems. 2010-07-22 05:42:29 +00:00
vfs_acl.c The 'acl_cnt' field is unsigned; no point in checking if it's >= 0. 2010-06-03 13:45:27 +00:00
vfs_aio.c Convert aio syscall registration to SYSCALL_INIT_HELPER. 2010-03-19 11:11:34 +00:00
vfs_bio.c The buffers b_vflags field is not always properly protected by 2010-08-12 08:36:23 +00:00
vfs_cache.c Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
vfs_cluster.c Bumping the read-ahead count once more, to value equivalent to 512 KiB on 2010-08-09 22:56:10 +00:00
vfs_default.c If we read zero bytes from the directory, early out with ENOENT 2010-08-25 18:09:51 +00:00
vfs_export.c Set the prison in NFS anon and GSS SVC creds. 2009-09-28 18:07:16 +00:00
vfs_extattr.c Revert r210225 - turns out I was wrong; the "/*-" is not license-only 2010-07-18 20:57:53 +00:00
vfs_hash.c
vfs_init.c
vfs_lookup.c Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
vfs_mount.c Protect mnt_syncer with the sync_mtx. This prevents a (rare) vnode leak 2010-09-11 13:06:06 +00:00
vfs_subr.c Protect mnt_syncer with the sync_mtx. This prevents a (rare) vnode leak 2010-09-11 13:06:06 +00:00
vfs_syscalls.c Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
vfs_vnops.c Correct arguments order. 2010-06-26 21:44:45 +00:00
vnode_if.src Add VOP_ADVLOCKPURGE so that the file system is called when purging 2010-05-12 21:24:46 +00:00