ume [Tue, 15 Dec 2009 15:01:52 +0000 (15:01 +0000)]
MFC r199995:
Don't try to bind to an anycast address. The KAME IPv6 stack doesn't
allow bind to an anycast address. It does away with an annoying
message.
stas [Tue, 15 Dec 2009 10:16:57 +0000 (10:16 +0000)]
MFC r198318:
- On entrance to the rx_eof sync RX rings maps with POSTWRITE flag
instead of POSTREAD: the hardware do not touch this memory (CPU
updates it). It is already synchronized as PREWRITE after the
processing is done.
stas [Tue, 15 Dec 2009 10:00:00 +0000 (10:00 +0000)]
- MFC r197832, r197834, r197837:
- Add support for new BGE chips (5761, 5784 and 57780). These chips uses new
BGE_PCI_PRODID_ASICREV register to store the chip identifier and its revision.
- Add new grouping macro for 7575+ chips (BGE_IS_5755_PLUS).
- Add IDs for Fujitsu-branded Broadcom adapters.
rwatson [Mon, 14 Dec 2009 13:13:43 +0000 (13:13 +0000)]
Merge r197841 from head to stable/8:
Add a new errno, ENOTCAPABLE, to be returned when a process requests an
operation on a file descriptor that is not authorized by the descriptor's
capability flags.
rwatson [Mon, 14 Dec 2009 12:19:21 +0000 (12:19 +0000)]
Merge r197808 from head to stable/8:
In rtld's map_object(), use pread(..., 0) rather than read() to read the
ELF header from the front of the file. As all other I/O on the binary
is done using mmap(), this avoids the need for seek privileges on the
file descriptor during run-time linking.
rwatson [Mon, 14 Dec 2009 00:19:31 +0000 (00:19 +0000)]
Merge r197636 from head to stable/8:
Reserve system call numbers for Capsicum security framework capabilities,
capability mode, and process descriptors: cap_new, cap_getrights, cap_enter,
cap_getmode, pdfork, pdkill, pdgetpid, and pdwait.
Obtained from: TrustedBSD Project
Sponsored by: Google
dougb [Sun, 13 Dec 2009 23:56:46 +0000 (23:56 +0000)]
MFC r200377:
Update to the December 12, 2008 version of this file. The one
substantive change is to add the IPv6 address of L. The other
changes are all CAPS LOCK related.
rnoland [Sun, 13 Dec 2009 15:03:54 +0000 (15:03 +0000)]
MFC r198694,r198697
Some general cleanup of scatter/gather memory allocation
- We don't need to check malloc return values with M_WAITOK
- remove variables that we don't really need
- cleanup the error paths by just calling drm_sg_cleanup()
- fix drm_sg_cleanup() to be safe to call at any time
antoine [Sat, 12 Dec 2009 12:34:20 +0000 (12:34 +0000)]
MFC r199187 to stable/8:
Remove trailing ";" in struct ieee80211_beacon_offsets declaration
Found by: phk's FlexeLint in September
Reviewed by: rpaulo@
mav [Sat, 12 Dec 2009 10:37:31 +0000 (10:37 +0000)]
MFC r200171, r200182, r200275, r200295, r200359:
Introduce ATA_CAM kernel option, turning ata(4) controller drivers into
cam(4) interface modules. When enabled, this option deprecates all ata(4)
peripheral drivers (ad, acd, ...) and interfaces and allows cam(4) drivers
(ada, cd, ...) and interfaces to be natively used instead.
As side effect of this, ata(4) mode setting code was completely rewritten
to make controller API more strict and permit above change. While doing
this, SATA revision was separated from PATA mode. It allows DMA-incapable
SATA devices to operate and makes hw.ata.(ata|atapi)_dma tunable work again.
Also allow ata(4) controller drivers (except some specific or broken ones)
to handle larger data transfers. Previous constraint of 64K was artificial
and is not really required by PCI ATA BM specification or hardware.
mav [Fri, 11 Dec 2009 12:44:44 +0000 (12:44 +0000)]
MFC r200353:
Limit maximum I/O size, depending on command set supported by device.
It is required to suppot non-LBA48 devices with MAXPHYS above 128K.
Same is done in ada(4).
fabient [Fri, 11 Dec 2009 12:36:02 +0000 (12:36 +0000)]
MFC 196739:
Add counters for the i7 architecture which were accidentally left
out of the original commit of i7 support. These are all the counters
on pages A-32 and A-33 of the _Intel(R) 64 and IA32 Architectures
Software Developer's Manual Vol 3B_, June 2009. Almost all
of these counters relate to operations on the L2 cache.
dougb [Fri, 11 Dec 2009 01:23:58 +0000 (01:23 +0000)]
MFC r199958:
Update to BIND 9.6.1-P2. The vulnerability this is designed to fix is
related to DNSSEC validation on a resolving name server that allows
access to untrusted users. If your system does not fall into all 3 of
these categories you do not need to update immediately.
mav [Thu, 10 Dec 2009 23:51:24 +0000 (23:51 +0000)]
MFC r200282, r200290:
Change gmirror default balance algorithm from "split" to improved "load".
"split" is very ineffective for devices with rotating media as HDDs.
To be effective, it needs that transfer time reduction due to block
splitting was bigger then access time increase due to non-sequential
access. For modern HDDs I was able to reproduce it only with read sizes
of 2MB and above, which is almost not applicable in real life.
"load" algorithm same time is more universal and effective now.
pjd [Thu, 10 Dec 2009 18:38:40 +0000 (18:38 +0000)]
MFC r200124,r200126,
r200124:
Avoid using additional variable for storing an error if we are not going
to do anything with it.
r200126:
Fix deadlock when ZVOLs are present and we are replacing dead component or
calling scrub when pool is in a degraded state. It will try to taste ZVOLs,
which will lead to deadlock, as ZVOL will try to acquire the same locks as
replace/scrub is holding already.
We can't simply skip provider based on their GEOM class, because ZVOL can have
providers build on top of it and we need to skip those as well.
We do it by asking for ZFS::iszvol attribute. Any ZVOL-based provider will give
us positive answer and we have to skip those providers.
This way we remove possibility to create ZFS pools on top of ZVOLs, but it is
not very useful anyway.
I believe deadlock is still possible in some very complex situations like when
we have MD provider on top of UFS file on top of ZVOL. When we try to replace
dead component in the pool mentioned ZVOL is based on, there might be a
deadlock when ZFS will try to taste MD provider. There is no easy way to detect
that, but it isn't very common.
r200125,r200158:
Fix order of looking for providers.
Before r200125 the order of looking for providers was wrong. It was:
1. Find provider by name.
2. Find provider by guid.
3. Find provider by name and guid.
Where it should have been:
1. Find provider by name and guid.
2. Find provider by guid.
3. Find provider by name.
syrinx [Thu, 10 Dec 2009 11:52:16 +0000 (11:52 +0000)]
MFC r200063
Fix a problem with high CPU consumption (up to 30%) by bsnmpd on a loaded system.
Instead of constantly calling the mibII_idle function when the server is not busy
call the function only once every 10 seconds to avoid bsnmpd constantly doing
gettimeofday syscalls. Make the idle polling interval confugurable via
begemotIfDataPoll.
thompsa [Wed, 9 Dec 2009 23:11:27 +0000 (23:11 +0000)]
MFC r199060
Improve support for High-speed USB audio devices.
- fix issues regarding the mixer, where the interface number was not set in
time.
- fix wrong use of resolution parameter.
thompsa [Wed, 9 Dec 2009 22:42:40 +0000 (22:42 +0000)]
MFC r199816
Remove overuse of exclamation marks in kernel printfs, there mere fact a
message has been printed is enough to get someones attention. Also remove the
line number for DPRINTF/DPRINTFN, it already prints the funtion name and a
unique message.
thompsa [Wed, 9 Dec 2009 22:41:50 +0000 (22:41 +0000)]
MFC r199814
Disable interrupts after doing early takeover of the usb controller in case usb
isnt actually compiled in (or kldloaded) as the controller could cause spurious
interrupts.
thompsa [Wed, 9 Dec 2009 22:37:06 +0000 (22:37 +0000)]
MFC r199672
Improve High Speed slot allocation mechanism by moving the computation to the
endpoint rather than per xfer and provide functions around get/free of resources.
thompsa [Wed, 9 Dec 2009 22:32:36 +0000 (22:32 +0000)]
MFC r198776
- Add usb_fill_bulk_urb() and usb_bulk_msg() linux compat functions [1]
- Don't write actual length if the actual length pointer is NULL [2]
- correct Linux Compatibility error codes for short isochronous IN transfers
and make status field signed.
Submitted by: Leunam Elebek [1], Manuel Gebele [2]
thompsa [Wed, 9 Dec 2009 22:10:45 +0000 (22:10 +0000)]
MFC r197761,r198194,r198862
updates device entries supported with the product name not magic numbers
and sorts entries. WUSB54GCV2 is added.
overhauls urtw(4) for supporting RTL8187B devices properly that there
was major changes to initialize RF chipset and set H/W registers and
removed a lot of magic numbers on code.
nwhitehorn [Wed, 9 Dec 2009 21:56:55 +0000 (21:56 +0000)]
MFC r199169:
Reduce probe priority of USB input devices to BUS_PROBE_GENERIC from
BUS_PROBE_SPECIFIC. This allows device-specific drivers like atp to
attach reliably.
thompsa [Wed, 9 Dec 2009 21:34:38 +0000 (21:34 +0000)]
MFC r199575
- fix a transfer cancelling bug/segfault [1]
- correct a return code in the transfer cancel function.
- add new API function, libusb20_tr_bulk_intr_sync().
mav [Wed, 9 Dec 2009 17:20:10 +0000 (17:20 +0000)]
MFC r200121:
Do not ignore device interrupt if bus mastering is still active. It is
normal in case of media read error and some ATAPI cases, when transfer size
is unknown beforehand. PCI ATA BM specification tells that in case of such
underrun driver should just manually stop DMA engine. DMA engine should
same time guarantie that all bus mastering transfers completed at the moment
of driver reads interrupt flag asserted.
This change fixes interrupt storms and command timeouts in many cases.
mav [Wed, 9 Dec 2009 17:11:09 +0000 (17:11 +0000)]
MFC r200117:
On Soft Reset, read device signature from FIS receive area, instead of
PxSIG register. It works better for NVidia chipsets. ahci(4) does the same.
mav [Wed, 9 Dec 2009 13:32:49 +0000 (13:32 +0000)]
MFC r200223:
Explicitly acknowledge MSI completion, as required by SiI3124 datasheet.
It makes MSI working there. Later (and cheaper) PCIe chips (3132/3531)
still randomly crashing system in few seconds of high MSI rates, generating
something inaporopriate, like NMI or "Fatal trap 30".
mav [Wed, 9 Dec 2009 13:27:06 +0000 (13:27 +0000)]
MFC r200196:
Add Asynchronous Notification support for controllers without SNTF
capability by snooping SDB FIS receive area. It should be even faster
then regular way, but less reliable.
mav [Tue, 8 Dec 2009 23:23:45 +0000 (23:23 +0000)]
MFC r200086:
Change 'load' balancing mode algorithm:
- Instead of measuring last request execution time for each drive and
choosing one with smallest time, use averaged number of requests, running
on each drive. This information is more accurate and timely. It allows to
distribute load between drives in more even and predictable way.
- For each drive track offset of the last submitted request. If new request
offset matches previous one or close for some drive, prefer that drive.
It allows to significantly speedup simultaneous sequential reads.
rmacklem [Tue, 8 Dec 2009 22:41:37 +0000 (22:41 +0000)]
MFC: r199715
Modify the experimental nfs server so that it falls back to
using VOP_LOOKUP() when VFS_VGET() returns EOPNOTSUPP in the
ReaddirPlus RPC. This patch is based upon one by pjd@ for the
regular nfs server which has not yet been committed. It is needed
when a ZFS volume is exported and ReaddirPlus (which almost
always happens for NFSv4) is performed by a client. The patch
also simplifies vnode lock handling somewhat.
rmacklem [Tue, 8 Dec 2009 22:28:55 +0000 (22:28 +0000)]
MFC: r199616
Patch the experimental NFS server is a manner analagous to
r197525, so that the creation verifier is handled correctly
in va_atime for 64bit architectures. There were two problems.
One was that the code incorrectly assumed that
sizeof (struct timespec) == 8 and the other was that the tv_sec
field needs to be assigned from a signed 32bit integer, so that
sign extension occurs on 64bit architectures. This is required
for correct operation when exporting ZFS volumes.
Tested by: gerrit at pmp.uni-hannover.de
Reviewed by: pjd
delphij [Tue, 8 Dec 2009 18:23:51 +0000 (18:23 +0000)]
MFC revisions 196550 and 196552:
Add a new rc.d script, static_arp, which enables the administrator to
statically bind IPv4 <-> MAC address at boot time.
In order to use this, the administrator needs to configure the following
rc.conf(5) variable:
- static_arp_pairs: A list of names for static bind pairs, and,
- a series of static_arp_(name): the arguments that is being passed to
``arp -S'' operation.
nwhitehorn [Tue, 8 Dec 2009 05:37:08 +0000 (05:37 +0000)]
MFC r199886:
Add a CPU features framework on PowerPC and simplify CPU setup a little
more. This provides three new sysctls to user space:
hw.cpu_features - A bitmask of available CPU features
hw.floatingpoint - Whether or not there is hardware FP support
hw.altivec - Whether or not Altivec is available
nwhitehorn [Tue, 8 Dec 2009 05:27:06 +0000 (05:27 +0000)]
MFC r198445:
Turn on NAP mode on G5 systems, and refactor the HID0 setup code a little.
This makes my G5 Xserve sound slightly less like it is filled with
howling banshees.
MFC r198968:
Unbreak E500 builds. The inline assembly for the 970 CPUs
is invalid when compiling for BookE.
fabient [Mon, 7 Dec 2009 20:44:43 +0000 (20:44 +0000)]
MFC 198433:
Not all Intel Core (TM) CPUs implement PMC_CLASS_IAF fixed-function
counters. For such CPUs, use an alternate mapping of convenience
names to events supported by PMC_CLASS_IAP programmable counters.
delphij [Mon, 7 Dec 2009 19:59:28 +0000 (19:59 +0000)]
MFC revision 197579 and 199617:
Add two new fcntls to enable/disable read-ahead:
- F_READAHEAD: specify the amount for sequential access. The amount is
specified in bytes and is rounded up to nearest block size.
- F_RDAHEAD: Darwin compatible version that use 128KB as the sequential
access size.
A third argument of zero disables the read-ahead behavior.
Please note that the read-ahead amount is also constrainted by sysctl
variable, vfs.read_max, which may need to be raised in order to better
utilize this feature.
Thanks Igor Sysoev for proposing the feature and submitting the original
version, and kib@ for his valuable comments.
jhb [Mon, 7 Dec 2009 19:07:45 +0000 (19:07 +0000)]
MFC 200061:
The fd_mask type is an unsigned long, not an int, so treat the mask as a
long instead of an int when examining the results of select() to look for
RPC requests. Previously this routine would ignore RPC requests to sockets
whose file descriptor mod 64 was greater than 31 on a 64-bit platform.