brucec [Thu, 24 Feb 2011 11:03:16 +0000 (11:03 +0000)]
MFC r218910:
The FD_FORM ioctl used to ignore errors from the floppy controller; now when
it encounters an error it returns an error from the ioctl.
Ignore any errors when using the FD_FORM ioctl.
hrs [Wed, 23 Feb 2011 19:07:50 +0000 (19:07 +0000)]
Import and update relnotes items for 8.2R:
fix SA table's cell width[1],
alq(4) improvement in details, TCP reassembly improved[2],
xz rewording[3], and
various grammer fixes[4].
yongari [Tue, 22 Feb 2011 21:24:36 +0000 (21:24 +0000)]
MFC r218710:
Fix a regression introduced in r215906. The change made in r215906
caused link re-negotiation whenever application joins or leaves a
multicast group. If driver is running, it would have established a
link so there is no need to start re-negotiation. The re-negotiation
broke established link which in turn stopped multicast application
working while re-negotiation is in progress.
brucec [Tue, 22 Feb 2011 17:37:13 +0000 (17:37 +0000)]
MFC r218839:
In the distribution list, 'A' is listed as the key to press to select both
'All' and 'Minimal'. Update the keys for Minimal and Custom to avoid the
conflict.
PR: bin/153809
Submitted by: Janne Snabb <snabb at epipe.com>
ken [Mon, 21 Feb 2011 18:11:56 +0000 (18:11 +0000)]
MFC: r218812
Fix several issues with the mps(4) driver.
When the driver ran out of DMA chaining buffers, it kept the timeout for
the I/O, and I/O would stall.
The driver was not freezing the device queue on errors.
mps.c: Pull command completion logic into a separate
function, and call the callback/wakeup for commands
that are never sent due to lack of chain buffers.
Add a number of extra diagnostic sysctl variables.
Handle pre-hardware errors for configuration I/O.
This doesn't panic the system, but it will fail the
configuration I/O and there is no retry mechanism.
So the device probe will not succeed. This should
be a very uncommon situation, however.
mps_sas.c: Freeze the SIM queue when we run out of chain
buffers, and unfreeze it when more commands
complete.
Freeze the device queue when errors occur, so that
CAM can insure proper command ordering.
Report pre-hardware errors for task management
commands. In general, that shouldn't be possible
because task management commands don't have S/G
lists, and that is currently the only error path
before we get to the hardware.
Handle pre-hardware errors (like out of chain
elements) for SMP requests. That shouldn't happen
either, since we should have enough space for two
S/G elements in the standard request.
For commands that end with
MPI2_IOCSTATUS_SCSI_IOC_TERMINATED and
MPI2_IOCSTATUS_SCSI_EXT_TERMINATED, return them
with CAM_REQUEUE_REQ to retry them unconditionally.
These seem to be related to back end, transport
related problems that are hopefully transient. We
don't want to go through the retry count for
something that is not a permanent error.
Keep track of the number of outstanding I/Os.
mpsvar.h: Track the number of free chain elements.
Add variables for the number of outstanding I/Os,
and I/O high water mark.
Add variables to track the number of free chain
buffers and the chain low water mark, as well as
the number of chain allocation failures.
ken [Mon, 21 Feb 2011 16:55:53 +0000 (16:55 +0000)]
MFC: r218811:
In the MPS driver, during device removal processing, don't assume that
the controller firmware will return all of our commands. Instead, keep
track of outstanding I/Os and return them to CAM once device removal
processing completes.
mpsvar.h: Declare the new "io_list" in the mps_softc.
mps.c: Initialize the new "io_list" in the mps softc.
mps_sas.c: o Track SCSI I/O requests on the io_list from the
time of mpssas_action() through mpssas_scsiio_complete().
o Zero out the request structures used for device
removal commands prior to filling them out.
o Once the target reset task management function completes
during device removal processing, assume any SCSI I/O
commands that are still oustanding will never return
from the controller, and process them manually.
yongari [Mon, 21 Feb 2011 01:19:09 +0000 (01:19 +0000)]
MFC r217524,217766:
Change model names of controller RTL_HWREV_8168_SPIN[123] to real ones.
s/RL_HWREV_8168_SPIN1/RL_HWREV_8168B_SPIN1/g
s/RL_HWREV_8168_SPIN2/RL_HWREV_8168B_SPIN2/g
s/RL_HWREV_8168_SPIN3/RL_HWREV_8168B_SPIN3/g
No functional changes.
r217766:
Apply TX interrupt moderation to all RTL810xE PCIe Fast Ethernet
controllers. Experimentation with RTL8102E, RTL8103E and RTL8105E
showed dramatic decrement of TX completion interrupts under high TX
load(e.g. from 147k interrupts/second to 10k interrupts/second)
With this change, TX interrupt moderation is applied to all
controllers except RTL8139C+.
yongari [Mon, 21 Feb 2011 01:08:13 +0000 (01:08 +0000)]
MFC r217499:
Implement initial jumbo frame support for RTL8168/8111 C/D/E PCIe
GbE controllers. It seems these controllers no longer support
multi-fragmented RX buffers such that driver have to allocate
physically contiguous buffers.
o Retire RL_FLAG_NOJUMBO flag and introduce RL_FLAG_JUMBOV2 to
mark controllers that use new jumbo frame scheme.
o Configure PCIe max read request size to 4096 for standard frames
and reduce it to 512 for jumbo frames.
o TSO/checksum offloading is not supported for jumbo frames on
these controllers. Reflect it to ioctl handler and driver
initialization.
o Remove unused rl_stats_no_timeout in softc.
o Embed a pointer to structure rl_hwrev into softc to keep track
of controller MTU limitation and remove rl_hwrev in softc since
that information is available through a pointer to structure
rl_hwrev.
Special thanks to Realtek for donating sample hardwares which made
this possible.
yongari [Mon, 21 Feb 2011 00:58:50 +0000 (00:58 +0000)]
MFC r217247,217381-217382,217384-217385:
r217247:
When driver is not running, do not send DUMP command to controller
and just show old (cached) values. Controller will not respond to
the command unless MAC is enabled so DUMP request for down
interface caused request timeout.
r217381:
Allow TX/RX checksum offloading to be configured independently.
r217382:
re_reset() should be called only after setting device specific
features.
r217384:
Make sure to check validity of dma maps before destroying.
r217385:
If driver is not able to allocate RX buffer, do not start driver.
While I'm here move RX buffer allocation and descriptor
initialization up to not touch hardware registers in case of RX
buffer allocation failure.
yongari [Mon, 21 Feb 2011 00:47:39 +0000 (00:47 +0000)]
MFC r217246,217832:
r217246:
Implement TSO on RealTek RTL8168/8111 C or later controllers.
RealTek changed TX descriptor format for later controllers so these
controllers require MSS configuration in different location of TX
descriptor. TSO is enabled by default for controllers that use new
descriptor format.
For old controllers, TSO is still disabled by default due to broken
frames under certain conditions but users can enable it.
Special thanks to Hayes Wang at RealTek.
r217832:
Disable TSO for all Realtek controllers. Experimentation showed
RTL8111C generated corrupted frames where TCP option header was
broken. All other sample controllers I have did not show such
problem so it could be RTL8111C specific issue. Because there are
too many variants it's hard to tell how many controllers have such
issue. Just disable TSO by default but have user override it.
yongari [Sun, 20 Feb 2011 01:24:59 +0000 (01:24 +0000)]
MFC r215432:
MCP55 is the only NVIDIA controller that supports VLAN tag
insertion/stripping and it also supports TSO over VLAN. Implement
TSO over VLAN support for MCP55 controller.
While I'm here clean up SIOCSIFCAP ioctl handler. Since nfe(4)
sets ifp capabilities based on various hardware flags in device
attach, there is no need to check hardware flags again in
SIOCSIFCAP ioctl handler. Also fix a bug which toggled both TX and
RX checksum offloading even if user requested either TX or RX
checksum configuration change.
Tested by: Rob Farmer ( rfarmer <> predatorlabs dot net )
yongari [Sun, 20 Feb 2011 01:15:26 +0000 (01:15 +0000)]
MFC r218141:
alc_rev was used without initialization such that it failed to
apply AR8152 v1.0 specific initialization code. Fix this bug by
explicitly reading PCI device revision id via PCI accessor.
Reported by: Gabriel Linder ( linder.gabriel <> gmail dot com )
yongari [Sun, 20 Feb 2011 01:02:11 +0000 (01:02 +0000)]
MFC r217353:
- Add a locked variant of jme_start() and invoke it directly while holding
the lock instead of queueing it to a task.
- Do not invoke jme_rxintr() to reclaim any unprocessed but received
packets when shutting down the interface. Instead, just drop these
packets to match the behavior of other drivers.
- Hold the driver lock in the interrupt handler to avoid races with
ioctl requests to down the interface.
kib [Fri, 18 Feb 2011 09:47:58 +0000 (09:47 +0000)]
MFC r218550:
For UIO_NOCOPY case of reading request on zfs vnode, which has vm object
attached, activate the page after the successful read, and free the page
if read was unsuccessfull.
brucec [Wed, 16 Feb 2011 21:41:44 +0000 (21:41 +0000)]
MFC r218620:
If the pf.conf(5) example file is copied when setting up a firewall it's
easy to forget about icmp. Update the file to show allowing icmp through
the firewall.
zack [Tue, 15 Feb 2011 20:53:01 +0000 (20:53 +0000)]
MFC: 217336
In the experimental NFS server, when converting an open-owner to a lock-owner,
start at sequence id 1 instead of 0, to match up with both Solaris and Linux.
keramida [Tue, 15 Feb 2011 06:33:35 +0000 (06:33 +0000)]
MFC 217746 from /head/usr.bin/top
Touch up the sample memory usage numbers a bit, to avoid wrapping
on terminal boundary. While here add definition for 'G' and fix
the indentation of 'K' units.
bz [Mon, 14 Feb 2011 16:54:03 +0000 (16:54 +0000)]
MFC r216466:
Bring back (most of) NATM to avoid further bitrot after r186119.
Keep three lines disabled which I am unsure if they had been used at all.
This will allow us to seek testers and possibly bring it all back.
ed [Sun, 13 Feb 2011 19:37:05 +0000 (19:37 +0000)]
Partially merge a change made in r200166.
It seems the utmpx fixes for who(1) also contained a small change to
make it work properly with the pts/%u naming. Unfortunately, this change
was never merged to FreeBSD 8. Properly remove the /dev/ part of the TTY
name instead of stripping until the last /.
Reported by: Eivind E <eivinde terraplane org>
Tested by: uqs@
jpaetzel [Sun, 13 Feb 2011 15:15:47 +0000 (15:15 +0000)]
MFC 218523:
Netgear renamed the WG311 to the WG311v1 after they released a second
version of it. There is also a WG311v3 which uses a chipset covered by
malo(4). Along the way add the WG311T to the list which is also an
atheros chipset.
simon [Sun, 13 Feb 2011 10:22:43 +0000 (10:22 +0000)]
MFC 218625:
Fix Incorrectly formatted ClientHello SSL/TLS handshake messages could
cause OpenSSL to parse past the end of the message.
Note: Applications are only affected if they act as a server and call
SSL_CTX_set_tlsext_status_cb on the server's SSL_CTX. This includes
Apache httpd >= 2.3.3, if configured with "SSLUseStapling On".
The very quick MFC is done to get this fix into 7.4 / 8.2.
Discussed with: re
Approved by: so (simon, for "instant" MFC)
Obtained from: OpenSSL CVS
Security: http://www.openssl.org/news/secadv_20110208.txt
Security: CVE-2011-0014
ae [Fri, 11 Feb 2011 05:56:14 +0000 (05:56 +0000)]
MFC r218278:
vdev's sectorsize should not be greater than 8 Kbytes and also
it should be power of 2. This prevents non-aligned access while
probing vdev's labels.
ae [Fri, 11 Feb 2011 05:37:05 +0000 (05:37 +0000)]
MFC r218014:
Add new user-friendly aliases for partition types for the MBR and
EBR schemes: fat32, ebr, linux-data, linux-raid, linux-swap and
linux-lvm. Add bios-boot GUID and alias for the GPT scheme. It used by
GRUB 2 loader. Also do sorting definitions of types in diskmbr.h
and in g_part.c.
marius [Tue, 8 Feb 2011 22:08:00 +0000 (22:08 +0000)]
MFC: r216961
Reserve INTR_MD[1-4] similarly to what BUS_DMA_BUS[1-4] are intended for
and switch sparc64 to use the first one for bus error filter handlers of
bridge drivers instead of (ab)using INTR_FAST for that so we eventually
can get rid of the latter.
kib [Tue, 8 Feb 2011 09:25:32 +0000 (09:25 +0000)]
MFC r218168:
Only process as much array elements as we find the sockets during
second phase of gc. Take linkage lock and recheck the eligibility
of the socket for gc, as well as call fhold() under the linkage lock.
For the ZFS kernel module, change the type of clock_t to int64_t.
The clock_t type in OpenSolaris is long (int64_t on amd64).
On FreeBSD clock_t is int32_t. The clock_t type is used in several places
in the ZFS code to store system uptime in milliseconds ("seconds * hz").
With hz=1000 we have a 32-bit integer overflow in 24 days, 20 hours,
31 minutes and 23.648 seconds. This has a user reported negative impact
on l2arc_feed_thread() and may cause unexpected results from other functions
using clock_t.
Reported by: Artem Belevich <fbsdlist@src.cx> on freebsd-fs@
brooks [Sun, 6 Feb 2011 13:59:03 +0000 (13:59 +0000)]
MFC r215213:
Add an (off by default) check for negative permissions (where the
group on a object has less permissions than everyone). These
permissions will not work reliably over NFS if you have more than
14 supplemental groups and are usually not what you mean.
emaste [Sun, 6 Feb 2011 01:13:10 +0000 (01:13 +0000)]
MFC r218207:
Revert part of r173264. Both aac_ioctl_sendfib and aac_ioctl_send_raw_srb
make use of the aac_ioctl_event callback, if acc_alloc_command fails.
This can end up in an infinite loop in the while loop in
aac_release_command.
kib [Sat, 5 Feb 2011 22:57:14 +0000 (22:57 +0000)]
MFC r217819:
Allow debugger to specify that children of the traced process should be
automatically traced. Extend the ptrace(PL_LWPINFO) to report that child
just forked.
To not change the struct thread layout, td_dbg_forked was placed at the
end of the structure.
jilles [Sat, 5 Feb 2011 21:47:04 +0000 (21:47 +0000)]
MFC r216019: sh: Make the test for cd/pwd with long pathnames more useful:
* Use $(getconf PATH_MAX /) to make sure we actually exercise the hard part
* Delete our test area even if the test fails
mav [Sat, 5 Feb 2011 21:34:26 +0000 (21:34 +0000)]
MFC r217774:
ICH7 SATA controller in legacy mode can provide access to SATA registers
via AHCI-like memory resource at BAR(5). Use it if BIOS was so kind to
allocate memory for that BAR. This allows hot-plug support and connection
speed reporting.
jilles [Sat, 5 Feb 2011 21:00:35 +0000 (21:00 +0000)]
MFC r216168: sh(1): Clean up documentation of built-in commands.
Make sure all built-in commands are in the subsection named such, except
exp, let and wordexp which are deliberately undocumented. The text said only
built-ins that really need to be a built-in were documented there but in
fact almost all of them were already documented.