summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix some of the previus changes 'better'.mjacob2006-04-015-842/+970
| | | | | | | | | | | | | | | | | | | | | | | There's something strange going on with async events. They seem to be be treated differently for different Fusion implementations. Some will really tell you when it's okay to free the request that started them. Some won't. Very disconcerting. This is particularily bad when the chip (FC in this case) tells you in the reply that it's not a continuation reply, which means you can free the request that its associated with. However, if you do that, I've found that additional async event replies come back for that message context after you freed it. Very Bad Things Happen. Put in a reply register debounce. Warn about out of range context indices. Use more MPILIB defines where possible. Replace bzero with memset. Add tons more KASSERTS. Do a *lot* more request free list auditting and serial number usages. Get rid of the warning about the short IOC Facts Reply. Go back to 16 bits of context index. Do a lot more target state auditting as well. Make a tag out of not only the ioindex but the request index as well and worry less about keeping a full serial number.
* Build the scc(4) module with EBus and SBus attachments for sparc64marcel2006-04-011-2/+8
| | | | only and build the scc(4) module with MacIO attachment for powerpc.
* Add the MacIO attachment for scc(4).marcel2006-04-011-0/+1
|
* Add a MacIO bus attachment. The Z8530 as present in the Mac needsmarcel2006-04-017-18/+101
| | | | | | | | a different register shift and is fed by a different clock than we use for UltraSPARC hardware. To deal with this, the regshft and rclk fields in the class structure are removed and bus frontends now pass the right regshft and rclk to the probe function where they're put in the BAS and passed in to subordinate drivers.
* Add __gdtoa to the list of FreeBSD private symbols. Unfortunately,deischen2006-04-011-0/+4
| | | | | | | | this is used by some 3rd party applications when {e,f,g}cvt() are not found. POSIX defines the xcvt() funtions but says they are deprecated in favor or sprintf(). We'll import these functions from OpenBSD and remove __gdtoa() from the exported interfaces when libc version is bumped.
* - Busy the filesystem in nfs_statfs to prevent us from creating a newjeff2006-04-011-1/+7
| | | | | | | | | vnode after vflush() has succeeded. This would cause a dangling vnode panic at unmount time otherwise. Other filesystems may have this problem via their VFS_VGET() routines. Found by: kris Sponsored by: Isilon Systems, Inc.
* - Add an assert to vgone. It is illegal to call vgone without a referencejeff2006-03-311-3/+0
| | | | | | | to the vnode. Without a reference the vnode will never be vdestroy'd and the memory will never be reclaimed. Sponsored by: Isilon Systems, Inc.
* - When there are dangling vnodes at unmount print them before we panic.jeff2006-03-311-1/+6
| | | | Sponsored by: Isilon Systems, Inc.
* - Add a bogus vhold/vdrop around vgone() in devfs_revoke. Without thisjeff2006-03-311-0/+3
| | | | | the vnode is never recycled. It is bogus because the reference really should be associated with the devfs dirent.
* Add kbdmux(4) to GENERIC on amd64emax2006-03-311-0/+2
| | | | | Requested by: scottl Tested by: scottl
* Fix cut-n-paste braino in previous commit: s/puc/scc/gmarcel2006-03-311-1/+1
| | | | Pointy hat: marcel@
* Remove the USB keyboard hack now that KBDMUX is enabled by default. Allowscottl2006-03-311-11/+1
| | | | it to be disabled if Safe Mode is selected.
* Add kbdmux(4) to GENERICemax2006-03-311-0/+2
| | | | Requested by: scottl
* Add a DRIVER_MODULE declaration for fhc(4) as this attachement ismarcel2006-03-311-0/+1
| | | | | | also used for the FHC bus. Pointed out by: marius@
* Sort bootstrap-tools entries.ru2006-03-311-5/+5
|
* Amazing.. two screwups in one commit.julian2006-03-311-1/+2
| | | | | I'm piling on thise pointy hats on top of each other. At least they nest..
* I can't believe that no-one noticed that I broke ipfw table deljulian2006-03-311-1/+2
| | | | | for over a month! put {} around if clause with multiple statements
* MEGA Fixes / Cleanupariff2006-03-311-300/+239
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -------------------- - Seal the fate of long standing memory leak (4 years, 7 months) during pcm_unregister(). While destroying cdevs, scan / detect possible children and free its SLIST placeholder properly. - Optimize channel allocation / numbering even further. Do brute cyclic checking only if the channel numbering screwed. - Mega vchan create/destroy cleanup: o Implement pcm_setvchans() so everybody can use it freely instead of implementing their own, be it through sysctl or channel auto allocation. o Increase vchan creation/destruction resiliency: + it's possible to increase/decrease total vchans even during busy playback/recording. Busy channel will be left alone, untouched. Abusive test sample: # play whatever... # while : ; do sysctl hw.snd.pcm0.vchans=1 sysctl hw.snd.pcm0.vchans=10 sysctl hw.snd.pcm0.vchans=100 sysctl hw.snd.pcm0.vchans=200 done # Play something else, leave above loop running frantically. + Seal another 4 years old bug where it is possible to destroy (virtual) channel even when its cdevs being referenced by other process. The "First Come First Served" nature of dsp_clone() is the main culprit of this issue, and usually manifest itself as dangling channel <-> process association. Ensure that all of its cdevs are free from being referenced before destroying it (through ORPHAN_CDEVT() macross). All these fixes (including previous fixes) will be MFCed, later.
* - Increase snddev refcount earlier while accessing through sysctl interfaceariff2006-03-311-27/+34
| | | | | | | to avoid possible device unregister race (impossible to reproduce, yet possible). - Extra sanity check to ensure proper parent channel is being selected. - Reset parent channel once all of its children gone.
* Make the ATAPI sense data accessible when using the ioctl interfacesos2006-03-318-93/+107
| | | | MFC candidate.
* - Release the references acquired by VOP_GETWRITEMOUNT and vfs_getvfs().jeff2006-03-317-31/+62
| | | | | | Discussed with: tegge Tested by: kris Sponsored by: Isilon Systems, Inc.
* - Hold a reference from the time vfs_busy starts until vfs_unbusy isjeff2006-03-311-3/+9
| | | | | | | | | | | called. - vfs_getvfs has to return a reference to prevent the returned mountpoint from changing identities. - Release references acquired via vfs_getvfs. Discussed with: tegge Tested by: kris Sponsored by: Isilon Systems, Inc.
* - GETWRITEMOUNT now returns a referenced mountpoint to prevent itsjeff2006-03-311-1/+15
| | | | | | | | identity from changing. This is possible now that mounts are not freed. Discussed with: tegge Tested by: kris Sponsored by: Isilon Systems, Inc.
* - Allocate mounts from a uma zone that uses UMA_ZONE_NOFREE to preventjeff2006-03-311-8/+32
| | | | | | | | | | | | | | | mount memory from being reclaimed. This resolves a number of race conditions described in vfs_default.c and introduced with the VFS_LOCK_GIANT macros. - Let the mtx and lock remain valid after the mount structure has been freed by using init and fini calls. Technically fini will never be called but is included for completeness. - Consistently use lockmgr directly rather than lockmgr to lock and vfs_unbusy to unlock. Discussed with: tegge Tested by: kris Sponsored by: Isilon Systems, Inc.
* - Define mnt_startzero and mnt_endzero as a range that excludes mnt_mtxjeff2006-03-311-2/+4
| | | | | | | | | and mnt_lock so that the mountpoint can be explicitly zeroed on creation. Discussed with: tegge Tested by: kris Sponsored by: Isilon Systems, Inc.
* - LK_RETRY means nothing when passed to VOP_LOCK. Call vn_lock instead.jeff2006-03-311-1/+2
| | | | | | | | | | - Move the vn_lock of the dvp until after we've unbusied the filesystem to avoid a LOR with the mount point lock. - In the v_mountedhere while loop we acquire a new instance of giant each time through without releasing the first. This would cause us to leak Giant. Sponsored by: Isilon Systems, Inc.
* - Add the B_NEEDSGIANT flag which is only set if the vnode that owns a bufjeff2006-03-313-17/+39
| | | | | | | | | requires Giant. It is set in bgetvp and cleared in brelvp. - Create QUEUE_DIRTY_GIANT for dirty buffers that require giant. - In the buf daemon, only grab giant when processing QUEUE_DIRTY_GIANT and only if we think there are buffers in that queue. Sponsored by: Isilon Systems, Inc.
* Build uart(4) on PowerPC.marcel2006-03-311-2/+1
|
* Allow uart(4) to be built on PowerPC.marcel2006-03-312-0/+55
|
* Add a dummy implementation of bus_space_map().marcel2006-03-311-3/+9
|
* remove these vestiges of gdbserver.. It hasn't built in a long time, andjmg2006-03-312-365/+0
| | | | | now really belongs in gdb, not binutils.. Plus, these don't resemble what the new gdbserver looks like.
* fixup error handling in taskqueue_start_threads: check for kthread_createsam2006-03-301-11/+20
| | | | | | | | failing, print a message when we fail for some reason as most callers do not check the return value (e.g. 'cuz they're called from SYSINIT) Reviewed by: scottl MFC after: 1 week
* Include the sbus attachment of scc(1) when either fhc(4) or sbus(4)marcel2006-03-301-1/+1
| | | | is configured.
* Currently, if writing out a log entry fails, we unlink that log entry from ourcsjp2006-03-301-5/+12
| | | | | | | | | | | | internal list of logfiles. So if writev(2) fails for potentially transient errors like ENOSPC, syslogd requires a restart, even if the filesystem has purged. This change allows syslogd to ignore ENOSPC space errors, so that when the filesystem is cleaned up, syslogd will automatically start logging again without requiring the reset. This makes syslogd(8) a bit more reliable. MFC after: 1 week
* Optimize runtime performance, primary using the following techniques:jasone2006-03-301-285/+294
| | | | | | | | | | | | | | | * Avoid choosing an arena until it's certain that an arena is needed for allocation. * Convert division/multiplication to bitshifting where possible. * Avoid accessing TLS variables in single-threaded code. * Reduce the amount of pointer dereferencing. * Move lock acquisition in critical paths to only protect the the code that requires synchronization, and completely remove locking where possible.
* Expose res_update and friends again. At least, ports/mail/spamilterume2006-03-307-43/+38
| | | | | | | | | uses them. Now, we have res_nupdate and res_nmkupdate as well, but they are still based on our old resolver for binary backward compatibility. So, they don't provide new features such as TSIG support. Reported by: pointyhat via kris
* Revert to using acpi_max_threads instead of the hardcoded value of '3'.scottl2006-03-301-1/+2
|
* Fix more stack corruptions on amd64.bz2006-03-302-19/+11
| | | | | | | | | | | | | | | | | | | Vararg functions have a different calling convention than regular functions on amd64. Casting a varag function to a regular one to match the function pointer declaration will hide the varargs from the caller and we will end up with an incorrectly setup stack. Entirely remove the varargs from these functions and change the functions to match the declaration of the function pointers. Remove the now unnecessary casts. Also change static struct ipprotosw[] to two independent protosw/ip6protosw definitions to remove an unnecessary cast. PR: amd64/95008 Submitted and tested by: Mats Palmgren Reviewed by: rwatson MFC after: 3 days
* Revert previous change, as I fixed MD5(9).pjd2006-03-301-6/+2
|
* Fix a panic on sparc64 related to inproper aligment - we cannot assume,pjd2006-03-301-7/+13
| | | | | | that 'unsigned char *' argument is 4 byte aligned. MFC after: 3 days
* When we attach to either a SAB82532 or a Z8530, print a noticemarcel2006-03-302-0/+4
| | | | | saying that scc(4) should be configured into the kernel. This helps people to migrate away from puc(4) for these devices.
* Add scc(4).marcel2006-03-301-2/+2
|
* o Add scc(4) to the build.marcel2006-03-306-19/+45
| | | | | | o Add the scc(4) manpage to the build. o Update the uart(4) manpage to account for scc(4). o Update the uart(4) module build to include support for scc(4).
* Add support for scc(4).marcel2006-03-306-82/+191
|
* Add scc(4), a driver for serial communications controllers. Thesemarcel2006-03-3012-0/+1616
| | | | | | | | | controllers typically have multiple channels and support a number of serial communications protocols. The scc(4) driver is itself an umbrella driver that delegates the control over each channel and mode to a subordinate driver (like uart(4)). The scc(4) driver supports the Siemens SAB 82532 and the Zilog Z8530 and replaces puc(4) for these devices.
* o Don't make the SER_INT_* defines visible to userland. Theymarcel2006-03-301-0/+7
| | | | | are related to internals, not user-visible state. o Add a typedef for serdev_intr_t and protect it with !LOCORE.
* Style fix.jhb2006-03-301-7/+6
|
* md_hash field in g_eli_metadata structure is not 4 byte aligned, whichpjd2006-03-301-2/+6
| | | | | | | | | | | | | | | case panic on sparc64. The problem is in MD5(9) implementation. The Encode() function takes 'unsigned char *output' as its first argument, which is then assigned to 'u_int32_t *op'. If the 'output' argument is not 4 byte aligned (and in geli(8) case it is not), sparc64 machine will panic. I don't know how to fix MD5(9) in a clean way, so I'm implementing a work-around in geli(8). Reported by: brueffer MFC after: 3 days
* Protect from creating striped and RAID5 plexes with unequally sizedle2006-03-305-68/+112
| | | | subdisks.
* Rebuild gensnmptree(1) on 700014 systems too. While 700014 correspondsru2006-03-301-1/+1
| | | | | | | | | | | | to post January 26 systems where gensnmptree(1) code was already fixed, there was a timeframe between February 14 and February 27 when usr.sbin/bsnmpd/ including gensnmptree was disconnected from build, so if you upgraded in this timeframe, you ended up with the 700014 system but still with a buggy gensnmptree binary. This also means not being able to buildworld now. Reported by: jhb Attention: harti, keramida
OpenPOWER on IntegriCloud