jhb [Tue, 17 Nov 2009 15:28:14 +0000 (15:28 +0000)]
MFC 198820:
Ensure 'kvm' is always initialized. If "-M" was not specified and the
garbage value on the stack was not zero, then 'ddb capture' would try to
use the garbage value as a kvm_t pointer.
mav [Tue, 17 Nov 2009 15:04:58 +0000 (15:04 +0000)]
MFC r198331:
Separate CAM_DEV_IDENTIFY_DATA_VALID flag from CAM_DEV_INQUIRY_DATA_VALID.
Add workaround for very old devices without support for mode setting.
Add some PATA bus scanning support.
Remove some SCSIsms.
mav [Tue, 17 Nov 2009 14:56:00 +0000 (14:56 +0000)]
MFC r198328:
Add support for PIO-only devices.
Fix maxio values and 256 sectors transactions for 28bits commands.
Implement periodic ordered commands insertion, sames as da driver does.
Remove some SCSIsms.
bz [Tue, 17 Nov 2009 14:30:09 +0000 (14:30 +0000)]
MFC r198049:
Immediately after clearing a pending callout that didn't make it due
to the lock we hold, disable interrupts, and announce to the firmware
that we are shutting down. Especially do this before disabling blocks.
This makes some types of machines with asf enabled no longer hang upon
boot, when we start configuring the interface.
mav [Tue, 17 Nov 2009 12:23:14 +0000 (12:23 +0000)]
MFC r198582:
Turn off use of ATA_A_4BIT on modern hardware. This flag was already
obsoleted in 1996 by ATA-2, and crashes some modern hardware like some
revisions of the Serverworks K2 SATA controller. Even very ancient
hardware seems not to require it. In the unlikely event this causes
problems, the previous behavior can be re-enabled by defining
ATA_LEGACY_SUPPORT at the top of this file.
kib [Tue, 17 Nov 2009 11:43:53 +0000 (11:43 +0000)]
MFC r198853:
If socket buffer space appears to be lower then sum of count of
already prepared bytes and next portion of transfer, inner loop of
kern_sendfile() aborts, not preparing next mbuf for socket buffer, and
not modifying any outer loop invariants. The thread loops in the outer
loop forever.
Instead of breaking from inner loop, prepare only bytes that fit into
the socket buffer space.
bms [Tue, 17 Nov 2009 10:59:51 +0000 (10:59 +0000)]
MFC r199287:
Fix a functional regression in multicast.
Userland daemons need to see IGMP traffic regardless of the group;
omit the imo filter check if the proto is IGMP. The kernel part
of IGMP will have already filtered appropriately at this point.
Submitted by: Franz Struwig
Reported by: Ivor Prebeg, Franz Struwig
jfv [Mon, 16 Nov 2009 18:58:45 +0000 (18:58 +0000)]
On a 32 bit kernel the igb driver may cause a page
fault panic due to a failed bounce page allocation
during RX mbuf setup. The large demand on bounce pages
is due to the alignment requirement in the tag. This
restriction was removed in the ixgbe driver with no
ill effects and so is being removed here also.
rmacklem [Sun, 15 Nov 2009 19:26:06 +0000 (19:26 +0000)]
MFC: r199053
Add a check for the connection being shut down to the krpc
client just before queuing a request for the connection. The
code already had a check for the connection being shut down
while the request was queued, but not one for the shut down
having been initiated by the server before the request was
in the queue. This fixes some cases of problems w.r.t. reconnecting
to a NFS server that drops inactive TCP connections.
Tested by: Olaf Seibert, Daniel Braniss
Reviewed by: dfr
jh [Sun, 15 Nov 2009 14:11:26 +0000 (14:11 +0000)]
MFC r197956:
- Catch SIGHUP to perform cleanup before exiting.
- Exit if getch() returns with an error other than EINTR. Otherwise
systat(1) may get stuck in an infinite loop if it doesn't receive
SIGHUP when terminal closes.
- Remove attempt to clear stdio error indicators. getch() doesn't use
stdio, making it useless.
- Remove unneeded masking of getch() return value.
stas [Sun, 15 Nov 2009 11:30:59 +0000 (11:30 +0000)]
- MFC r198320:
Introduce new option BCE_JUMBO_HDRSPLIT that allows user to enable header
in bce(4) instead of (ab)using ZERO_COPY_SOCKETS that was not
into if_bce.c anyway. It is disabled by default.
rnoland [Sat, 14 Nov 2009 16:14:51 +0000 (16:14 +0000)]
MFC r199241
This patch addresses an overflow in the the zfs boot code and allows
users to boot from zfs raidz volumes. This has been tested by a number
of users and does not impact those which are not booting from zfs raidz
volumes.
pjd [Sat, 14 Nov 2009 11:59:59 +0000 (11:59 +0000)]
MFC r198703,r199156,r199157:
r198703:
- zfs_zaccess() can handle VAPPEND too, so map V_APPEND to VAPPEND and call
zfs_access() instead of vaccess() in this case as well.
- If VADMIN is specified with another V* flag (unlikely) call both
zfs_access() and vaccess() after spliting V* flags.
This fixes "dirtying snapshot!" panic.
PR: kern/139806
Reported by: Carl Chave <carl@chave.us>
In co-operation with: jh
r199156:
Avoid passing invalid mountpoint to getnewvnode().
Reported by: rwatson
Tested by: rwatson
r199157:
Be careful which vattr fields are set during setattr replay.
Without this fix strange things can appear after unclean shutdown like
files with mode set to 07777.
edwin [Thu, 12 Nov 2009 10:44:29 +0000 (10:44 +0000)]
MFC of r199107, tzdata2009r:
- Three Australian stations in Antarctica have changed their time zone:
Casey moved from UTC+8 to UTC+11
Davis moved from UTC+7 to UTC+5
Mawson moved from UTC+6 to UTC+5
The changes occurred on 2009-10-18 at 02:00 (local times).
thompsa [Wed, 11 Nov 2009 01:33:06 +0000 (01:33 +0000)]
MFC r199058
Integrate lost interrupts patch from the old USB stack.
Some EHCI chips from VIA / ATI seem to trigger interrupts before writing back
the qTD status, or miss signalling occasionally under heavy load. If the host
machine is too fast, we can miss transaction completion - when we scan the
active list the transaction still seems to be active. This generally exhibits
itself as a umass stall that never recovers.
We work around this behaviour by setting up this callback after any softintr
that completes with transactions still pending, giving us another chance to
check for completion after the writeback has taken place
thompsa [Wed, 11 Nov 2009 01:27:58 +0000 (01:27 +0000)]
MFC r199055
- fix refcounting error during data transfer
- fix a memory leak on the USB backend
- fix invalid pointer computations (in one case memory outside the allocated
area was written in LibUSB v1.0)
- make sure memory is always initialised, also in failing cases
- add missing functions from v1.0.4
kensmith [Mon, 9 Nov 2009 21:39:42 +0000 (21:39 +0000)]
Comment out the sbp(4) entry for GENERIC config files that contain it.
There are known issues with this driver that are beyond what can be
fixed for 8.0-RELEASE and the bugs can cause boot failure on some systems.
It's not clear if it impacts all systems and there is interest in getting
the problem fixed so for now just comment it out instead of remove it.
Commit straight to stable/8, this is an 8.0-RELEASE issue. Head was left
alone so work on it can continue there.
nwhitehorn [Mon, 9 Nov 2009 21:30:45 +0000 (21:30 +0000)]
Insta-MFC of r199084,199108:
Increase the size of the OFW translations buffer to handle G5 systems
that use many translation regions in firmware, and add bounds checking
to prevent buffer overflows in case even the new value is exceeded.
Short MFC requested by re since the problem this fixes breaks CD boot on
most G5 systems, making them uninstallable.
Reported by: Jacob Lambert
Approved by: re (kensmith,kib)
Requested by: re
jhb [Mon, 9 Nov 2009 18:56:47 +0000 (18:56 +0000)]
Cleanup mergeinfo for libc. Part of the damage was caused by a merge from
a partial checkout of libc in a user branch up to head. Don't do merges
from sparse trees!
kensmith [Mon, 9 Nov 2009 18:09:10 +0000 (18:09 +0000)]
MFC r198719:
> While certain supported Symbios/LSI SCSI chips (532c896, 53c1000, 53c1010)
> do support 64bit addresses, the current SCRIPTS code supports only 32bit
> addresses causing data corruption for buffer addresses >4GB. This problem
> affects 64bit machines with more than 4GB RAM or amd64 with 4GB and
> memory hole remapping.
> Work-around this problem with a bus_dma tag that requests bounce-buffers
> for addresses >4GB. This causes some overhead, but given the maximum SCSI
> bus speed of 160MB/s compared, the effect should hardly be noticeable.
> The problem was reported by Mike Watters (mike at mwatters net) who also
> verified that this fix cures the problem.
>
> Since this change is a NOOP on systems with less than 4GB RAM and fixes
> data corruption (in RAM and on disk) on systems with more than 4GB, I hope
> that this change is accepted for 8.0.
Requested by: Stefan Esser (se at freebsd dot org)[1]
Reviewed by: jhb, scottl
[1] Stefan requested this be part of 8.0 but has been unavailable to do
the MFC since submitting the request. We want to get 8.0-RC3 started
so I'm doing the merges with re@ hat on.
ume [Mon, 9 Nov 2009 15:11:37 +0000 (15:11 +0000)]
MFC r198976, r198993:
- Don't call LLE_FREE() after nd6_free().
- Make nd6_llinfo_timer() does its job, again. ln->la_expire was
greater than time_second, in most cases.
oleg [Mon, 9 Nov 2009 10:13:24 +0000 (10:13 +0000)]
MFC r198845:
Fix two issues that can lead to exceeding configured pipe bandwidth:
- do not expire queues which are not ready to be expired.
- properly calculate available burst size.
mav [Fri, 6 Nov 2009 10:56:43 +0000 (10:56 +0000)]
MFC r198700:
Add support for different request block format used by Gen-IIe Marvell SATA.
This adds support for Marvell 6042/7042 chips and Adaptec 1430SA controller.
MFC r198718:
Allow newly added controllers to use full I/O sizes.
mav [Fri, 6 Nov 2009 10:45:37 +0000 (10:45 +0000)]
MFC r197783:
- Revert r191568 partially. Forcing AHCI mode by changing device subclass
and progif is evil. It doesn't work reliably[1] and we should honor BIOS
configuration by the user.
- If the SATA controller is enbled but combined mode is disabled, mask off
the emulated IDE channel on the legacy IDE controller.
attilio [Fri, 6 Nov 2009 10:15:15 +0000 (10:15 +0000)]
MFC r198868, r198950:
Opteron rev E family of processor expose a bug where acq memory barriers
can be broken, resulting in random breakages.
Printout a warning message if affecred family and model are found.
trasz [Fri, 6 Nov 2009 09:39:35 +0000 (09:39 +0000)]
MFC r197789:
Fix ACL support on sparc64. Turns out that fuword(9) fetches 64 bits
instead of sizeof(int), and on sparc64 that resulted in fetching wrong
value for acl_maxcnt, which in turn caused __acl_get_link(2) to fail
with EINVAL.
PR: sparc64/139304
Submitted by: Dmitry Afanasiev <KOT at MATPOCKuH.Ru>
mjacob [Thu, 5 Nov 2009 18:25:26 +0000 (18:25 +0000)]
Unbreak SBus cards which have been broken (apparently) for a while.
Most of the pieces came from Marius- correct settings for channels
and resource management. The one piece missing was that you cannot
for SBus cards replace 32 bit operations with A64 operations- not
supported. This is an MFC of r198822.
netchild [Thu, 5 Nov 2009 08:31:42 +0000 (08:31 +0000)]
MFC r196511:
- Update config to doxygen 1.5.2 (I use this with 1.5.9).
- Add linprocfs and linsysfs to the linuxulator dox.
- Take the generated includes from the .m files from a subdirectory
instead of putting everything into $(.OBJDIR). This imporves the
human readbility of the source directory contents a lot, if you do not
create a separate OBJDIR.
- Assume UTF-8 encoding for every input file.
- Strip the source and dest path from the output, we are not interested
in the absolute location on the machine where the docs are created,
relative the the root of the FreeBSD source is what interests us.
- Exclude .svn directories.
- Switch to alphabetic index.
- Use one line per INCLUDE_PATH member in the common dox-config.
- Bump the __FreeBSD__ version to 9. [here in the MFC: to 8]
- Switch from hardcoded .m files to an run-time generated one. Takes
a little bit more time to get started with actual work, but at least
is more future-proof. If you generate dox for all subsystems, the
time to find all .m files in the source is magnitutes lower than
producing the docs.
- Make the *DEST_PATH overidable from the environment. This allows to
produce the output directly in the docroot of a webserver.
- Fix the path when telling the user where he can find the API docs.
jhb [Wed, 4 Nov 2009 20:49:14 +0000 (20:49 +0000)]
MFC 198554:
Fix some problems with effective mmap() offsets > 32 bits. This was
partially fixed on amd64 earlier. Rather than forcing linux_mmap_common()
to use a 32-bit offset, have it accept a 64-bit file offset. This offset
is then passed to the real mmap() call. Rather than inventing a structure
to hold the normal linux_mmap args that has a 64-bit offset, just pass
each of the arguments individually to linux_mmap_common() since that more
closes matches the existing style of various kern_foo() functions.
yongari [Wed, 4 Nov 2009 18:31:43 +0000 (18:31 +0000)]
MFC r197586:
It seems some 82559ER controllers do not support Rx checksum
offloading. Datasheet said nothing about the limitation of 82559ER
except WOL. Explicitly disable Rx checksum offloading for
controllers that is known to lack the capability.
PR: kern/138135
Tested by: Gooderum, Mark < mgooderum <> websense dot com >
jhb [Wed, 4 Nov 2009 16:58:26 +0000 (16:58 +0000)]
MFC 197772:
When the timeout backoff hits the maximum value, leave it capped at the
maximum value rather than setting it to the result of a boolean expression
that is always true.
edwin [Wed, 4 Nov 2009 10:46:55 +0000 (10:46 +0000)]
MFC of r198825: tzdata2009q
- New region: Asia/Novokuznetsk
- Kemerovo oblast' (Kemerovo region) in Russia will change current
time zone on 29 March 2010
- Add historical data for Hongkong 1941 - 1980
- Syria will go to winter time in the last weekend of October 2009.
emaste [Mon, 2 Nov 2009 16:54:23 +0000 (16:54 +0000)]
MFC r197011:
Increase AAC_CMD_TIMEOUT from 30s to 120s to help avoid spurious
"COMMAND 0x........ TIMEOUT AFTER .. SECONDS" messages. Any commands
that get truly stuck will still trigger the warning and the hardware
health check, just a little bit later.
emaste [Mon, 2 Nov 2009 16:32:32 +0000 (16:32 +0000)]
MFC r197692:
In fill_kinfo_thread, copy the thread's name into struct kinfo_proc even
if it is empty. Otherwise the previous thread's name would remain in the
struct and then be reported for this thread.