ade [Wed, 7 Feb 2007 09:15:04 +0000 (09:15 +0000)]
MFC: rev 1.71/1.72
Remove hard-coded limit (200) on maximum number of packages that can be
added with a single invocation of pkg_add, replacing it with something
rather more dynamic.
rodrigc [Tue, 6 Feb 2007 02:37:42 +0000 (02:37 +0000)]
MFC: 1.142
Check the actual sector size of the underlying media before mounting.
Prevents a kernel panic if you try to "mount_cd9660 /dev/acd0 /mnt" while
an audio CD is in the CD-ROM drive.
bms [Mon, 5 Feb 2007 12:39:53 +0000 (12:39 +0000)]
MFC rev 1.133:
Be explicit in examples about the correct grammar for 'alias' and
'-alias', and that 'add' and 'delete are in fact synonyms for these
in the ifconfig(8) grammar.
Use network prefixes explicitly specified in IETF RFCs for
documentation purposes. (bz)
ariff [Sun, 4 Feb 2007 06:17:48 +0000 (06:17 +0000)]
Partial MFC (buffer.h 1.14, buffer.c 1.30)
Fix huge memory leak within sound buffer (during channel destruction,
buffer resizing, etc.) that was here since eon. Free all (unmanaged)
allocated buffer through sndbuf_destroy() in case we forgot to call
sndbuf_free(). For a managed buffer (mostly hw specific managed buffer),
either provide CHANNEL_FREE() method with appropriate return value to
invoke semi-automatic sndbuf_free() or simply do it on their own. If
everything is failed, sndbuf_destroy() will come to the rescue as a
final measure.
flz [Sat, 3 Feb 2007 20:01:54 +0000 (20:01 +0000)]
MFC: Merge from DRM upstream:
- Add support for Intel 965 Express chipsets.
- Add support for R200 vertex programs, along with minor bugfixes.
- Add support for vblank synchronization to pipe B of Intel hardware
(laptop screens).
pjd [Sat, 3 Feb 2007 16:09:10 +0000 (16:09 +0000)]
MFC: sbin/geom/class/eli/geom_eli.c 1.19
When the following conditions are meet:
- First configured key is based only on keyfile (no passphrase).
- Device is attached.
- User changes first key (setkey) from keyfile to passphrase and doesn't
specify number of iterations (with -i option).
...geli(8) won't store calculated number of iterations in metadata.
This result in device beeing unaccesable after detach.
One can recover from this situation by guessing number of iterations
generated, storing it in metadata and trying to attach device.
Recovery procedure isn't nice, but one's data is not lost.
yongari [Wed, 31 Jan 2007 00:24:11 +0000 (00:24 +0000)]
MFC if_re.c rev 1.83 to RELENG_6.
It seems that enabling Tx and Rx before setting descriptor DMA
addresses shall access invalid descriptor DMA addresses on PCIe
hardwares and then panicked the system.
To fix it set descriptor DMA addresses before enabling Tx and Rx
such that hardware can see valid descriptor DMA addresses. Also
set RL_EARLY_TX_THRESH before starting Tx and Rx.
marius [Tue, 30 Jan 2007 14:16:24 +0000 (14:16 +0000)]
MFC: if_re.c 1.82, if_rlreg.h 1.64
o In re_newbuf() and re_encap() if re_dma_map_desc() aborts the mapping
operation as it ran out of free descriptors or if there are too many
segments in the first place, call bus_dmamap_unload() in order to
unload the already loaded segments.
For trying to map the defragmented mbuf (chain) in re_encap() this
introduces re_dma_map_desc() setting arg.rl_maxsegs to 0 as a new
failure mode. Previously we just ignored this case, corrupting our
view of the TX ring.
o In re_txeof():
- Don't clear IFF_DRV_OACTIVE unless there are at least 4 free TX
descriptors. Further down the road re_encap() will bail if there
aren't at least 4 free TX descriptors, causing re_start() to
abort and prepend the dequeued mbuf again so it makes no sense
to pretend we could process mbufs again when in fact we won't.
While at it replace this magic 4 with a macro RL_TX_DESC_THLD
throughout this driver.
- Don't cancel the watchdog timeout as soon as there's at least one
free TX descriptor but instead only if all descriptors have been
handled. It's perfectly normal, especially in the DEVICE_POLLING
case, that re_txeof() is called when only a part of the enqueued
TX descriptors have been handled, causing the watchdog to be
disarmed prematurely.
o In re_encap():
- If m_defrag() fails just drop the packet like other NIC drivers
do. This should only happen when there's a mbuf shortage, in which
case it was possible to end up with an IFQ full of packets which
couldn't be processed as they couldn't be defragmented as they
were taking up all the mbufs themselves. This includes adjusting
re_start() to not trying to prepend the mbuf (chain) if re_encap()
has freed it.
- Remove dupe initialization of members of struct rl_dmaload_arg to
values that didn't change since trying to process the fragmented
mbuf chain.
While at it remove an unused member from struct rl_dmaload_arg.
o In re_start() remove a abandoned, banal comment. The corresponding
code was moved to re_attach() some time ago.
marius [Tue, 30 Jan 2007 14:00:59 +0000 (14:00 +0000)]
MFC: if_re.c 1.80, if_rlreg.h 1.63
- Use the re_tick() callout instead of if_slowtimo() for driving
re_watchdog() in order to avoid races accessing if_timer.
- Use bus_get_dma_tag() so re(4) works on platforms requiring it;
though for RELENG_6 this is a NOOP so far and just MFC'ed for diff
reduction.
- Remove invalid BUS_DMA_ALLOCNOW when creating the parent DMA tag
and the tags that are used for static memory allocations.
- Don't bother to set if_mtu to ETHERMTU, ether_ifattach() does that.
- Remove an unused variable in re_intr().
mlaier [Tue, 30 Jan 2007 12:46:05 +0000 (12:46 +0000)]
MFC, subr_firmware.c 1.7:
In case we are supplied with an imagename that matches a module, but not a
firmware in that module (eventhough this is a programming error) - drop
the reference to the module again.
marius [Tue, 30 Jan 2007 10:55:32 +0000 (10:55 +0000)]
MFC: 1.70 (partial), 1.74
- Sync descriptions of RL_HWREV_8168_SPIN{1,2} with HEAD (merge botch
of rev. 1.70 in rev. 1.46.2.17).
- Consistently use if_printf() only in interface methods: if_start(),
if_watchdog, etc., or in functions used only in these methods.
In all other functions in the driver use device_printf().
csjp [Mon, 29 Jan 2007 17:48:33 +0000 (17:48 +0000)]
MFC the AUDIT_SYSCALL_{EXIT|ENTER} macros. This unbreaks auditing for
amd64 by allocating and committing audit records for syscalls. It should
be noted that the submission of userspace records are not affected by
this bug.
sam [Sun, 28 Jan 2007 04:10:40 +0000 (04:10 +0000)]
MFC: half- and quarter-rate channel support
enable write of most hw.ath sysctl knobs
remove public safety band bandaids w/ more recent hal available
allow net80211 to install default rate sets
kientzle [Sat, 27 Jan 2007 06:44:54 +0000 (06:44 +0000)]
MFC: synchronize libarchive with FreeBSD-CURRENT. This includes
the following:
* License updates.
* Fixes for FreeBSD/arm
* New read_open_filename, read_open_memory
* New write_open_filename, write_open_memory
* Write-blocking cleanup (cperciva@)
* Adjust API so read_open/write_open funcs only need public API
* Portability improvements (casts, include guards, etc.)
* Properly pad sparse archive entries with blocks of zero bytes (cperciva@)
* Correct copy of data to file when very large reads are possible
* Be more flexible about dir permissions to avoid some fixups
* Correct skip handling for entries over 2G (cperciva@)
* ISO9660: skip entries faster, support entries over 2G
* Tar: correct position accounting when skipping large entries (cperciva@)
* Support unbuffered write as a special case (blocksize=0) (cperciva@)
* Documentation corrections, improvements
* Spelling corrections (cperciva@)
* Improve some internal error returns
A few of these changes break the API/ABI and are therefore conditional
on the version number. FreeBSD 6 will continue to use libarchive 1.x,
which will continue to use the old API/ABI. When all of these changes
are ready, the libarchive version number will be changed in -CURRENT
to enable the new API. Hopefully, this will allow the actual source
to remain identical between FreeBSD 6 and 7; only the version
parameters in the Makefile will be different.