emaste [Mon, 31 Mar 2008 20:11:46 +0000 (20:11 +0000)]
MFC aac_cam.c 1.30:
Merge from Adaptec a 64 bit fix and a workaround for luns != 0
returning CAM_SEL_TIMEOUT on SAS controllers, which prevented
passthrough devices from being created.
emaste [Mon, 31 Mar 2008 19:50:53 +0000 (19:50 +0000)]
MFC aac.c 1.130:
Restore creation of passthrough devices with newer controller firmware by
putting the correct size in the fib header. Presumably the older firmware
silently ignored a bad size field.
(This change tested with a 3805 controller. Passthrough devices were
created when running firmware build 12814, but not 15323 or later. With
this change they're created for both old and new firmware versions.)
emaste [Mon, 31 Mar 2008 17:04:10 +0000 (17:04 +0000)]
MFC aac.c 1.131:
Diff reduction to Adaptec driver build 15317 (refactoring and code shuffling):
- Resource allocation in aac_alloc (moved from from aac_init)
- Interrupt setup in aac_setup_intr (from aac_attach)
- Container probing in aac_get_container_info (from aac_startup and
aac_handle_aif)
- Firmware status check moved to aac_check_firmware from aac_init
remko [Sat, 29 Mar 2008 13:44:36 +0000 (13:44 +0000)]
MFC rev 1.84 route.c
In route.c in newroute() there's a call to exit(0) if the command was
'get'. Since rtmsg() always gets called and returns 0 on success and -1
on failure, it's possible to exit with a suitable exit code by calling
exit(ret != 0) instead, as is done at the end of newroute().
kib [Thu, 27 Mar 2008 13:53:52 +0000 (13:53 +0000)]
MFC
rev. 1.682 of sys/amd64/amd64/machdep.c
rev. 1.16 of sys/amd64/ia32/ia32_signal.c
rev. 1.33 of sys/amd64/linux32/linux32_sysvec.c
rev. 1.666 of sys/i386/i386/machdep.c
rev. 1.152 of sys/i386/linux/linux_sysvec.c
rev. 1.39 of sys/i386/svr4/svr4_machdep.c
rev. 1.402 of sys/pc98/pc98/machdep.c
Modify the signal handler frame setup code to clear the DF {e,r}flags
bit on the amd64/i386 for the signal handlers.
jkim [Mon, 24 Mar 2008 17:49:34 +0000 (17:49 +0000)]
MFC: 1.24-1.26
- Check device masks and bypass printing headers if capable device does
not exist. /etc/rc.d/mixer tried to restore non-existent recording
source because /var/var/db/mixer*-state contains '=rec' for example.
- Remove hardcoded mixer2 and mixer3 and do the right thing.
- Replace getopt(3) with hand-rolled option parser. It was not able
to handle 'mixer -rec mic' although it is a valid command.
- Make '-s' and '-S' mutualy exclusive as mixer(8) says.
- Do not re-read recording source unless it has been modified.
- Clean up code and fix style(9) nits.
jkim [Mon, 24 Mar 2008 17:23:25 +0000 (17:23 +0000)]
MFC: 1.80-1.83
- Prefer clock_gettime(2) over gettimeofday(2) and use CLOCK_MONOTONIC
as it is only used to track elapsed time.[1]
- Fix compiler warnings and style(9) bugs.
[1] CLOCK_MONOTONIC is used on here because CLOCK_MONOTONIC_FAST is
unimplemented on RELENG_6.
remko [Mon, 24 Mar 2008 10:46:00 +0000 (10:46 +0000)]
MFC rev 1.73 newfs.8
Replace reference from vinum.8 to gvinum.8, it was advised in the PR to
replace this with vinum.4, but that's the kernel interface manual, which
is not appropriate in my understanding. I think that gvinum is a suitable
replacement for this.
PR: docs/121938
Submitted by: "Federico" <federicogalvezdurand at yahoo dot com>
MFC after: 3 days
mtm [Thu, 20 Mar 2008 10:53:18 +0000 (10:53 +0000)]
MFC:
The check for errors from the mount command did not work as
intended because another command (echo) is executed between
the mount command and the check.
mav [Tue, 18 Mar 2008 17:39:42 +0000 (17:39 +0000)]
MFC:
Improve apply callback error reporting:
Before this patch callback returned result of the last finished call chain.
Now it returns last nonzero result from all call chain results in this request.
As soon as this improvement gives reliable error reporting, it is now possible
to remove dirty workaround in ng_socket, made to return ENOBUFS error statuses
of request-response operations. That workaround was responsible for returning
ENOBUFS errors to completely unrelated requests working at the same time
on socket.
mav [Tue, 18 Mar 2008 17:33:03 +0000 (17:33 +0000)]
MFC rev. 1.25
Add session ID hashing to speedup incoming packets dispatch in case
of many connections working via the same tunnel. For example, in case
of full "client <-> LAC <-> LNS" setup.
yongari [Tue, 18 Mar 2008 02:17:36 +0000 (02:17 +0000)]
MFC if_bfe.c rev 1.44, if_bfereg.h rev 1.11 to RELENG_6:
Fix link state handling in bfe(4).
o conversion to callout(9) API.
o add a missing driver lock in bfe_ifmedia_sts().
o use our callout to drive watchdog timer.
o restart Tx routine if pending queued packets are present in
watchdog handler.
o unarm watchdog timer only if there are no queued packets.
o don't blindly reset phy and let phy driver handle link change
request in bfe_init_locked().
o return the status of mii_mediachg() to caller in
bfe_ifmedia_upd(). Previously it always returned 0 to caller.
o add check for IFF_DRV_RUNNING flag as well as IFF_DRV_OACTIVE
in bfe_start_locked().
o implement miibus_statchg method that keeps track of current
link state changes as well as negotiated speed/duplex/
flow-control configuration.
Reprogram MAC to appropriate duplex state. Flow-control
configuration was also implemented but commented out at the
moment. The flow-control configuration will be enabled again
after we have general flow-control framework in mii layer.
yongari [Tue, 18 Mar 2008 02:01:21 +0000 (02:01 +0000)]
MFC if_lge.c rev 1.53 to RELENG_6:
Plug memory leak in jumbo buffer allocation failure path.
Patch in the PR was modified to check active jumbo buffers in use
and other possible jumbo buffer leak.
Jumbo buffer usage in lge(4) still wouldn't be reliable due to lack
of driver lock in local jumbo buffer allocator. Either introduce
a new lock to protect jumbo buffer or switch to UMA backed page
allocator for jumbo frame is required.
I've removed informational device_printf in lge_free_jumbo_mem as
lge_dev member variable in softc does not exist on RELENG_6.
if_printf can't be used as sc->lge_ifp could be NULL.
yongari [Tue, 18 Mar 2008 01:33:47 +0000 (01:33 +0000)]
MFC: if_msk.c 1.30, if_msk.c 1.31 to RELENG_6
To overcome hardware checksum offload bug msk(4) used to compute
TCP/UDP checksum in driver for short frames. For frames that requires
hardware VLAN tag insertion, the checksum offload trick does not
work due to changes of checksum offset in mbuf after the VLAN tag.
Disable hardware checksum offload for VLAN interface to fix the bug.
yongari [Tue, 18 Mar 2008 01:27:15 +0000 (01:27 +0000)]
MFC: if_msk.c 1.29, if_mskreg.h 1.12 to RELENG_6
Workaround GMAC hardware hang of Yukon II on the receipt of pause
frames. This bug seems to happen on certain hardware model/revision
(e.g. 88E8053) but it's not identified which hardwares are affected.
Revision 1.4 of if_mskreg.h was not enough to workaround the bug.
To workaround it, inrease GMAC FIFO threshold by one FIFO word to
flush received pause frames.
emax [Tue, 18 Mar 2008 00:29:26 +0000 (00:29 +0000)]
MFC:
Add support for the NAP, GN and PANU profiles to the sdpd(8).
It should be mentioned that a somewhat similar patch was
submitted by Rako < rako29 at gmail dot com >
emax [Tue, 18 Mar 2008 00:26:01 +0000 (00:26 +0000)]
MFC:
Add structures to hold SDP parameters for the NAP, GN and PANU profiles.
It should be mentioned that a somewhat similar patch was submitted by
Rako < rako29 at gmail dot com >
rpaulo [Mon, 17 Mar 2008 19:57:21 +0000 (19:57 +0000)]
MFC r1.71:
Some PIIX4 chipsets need to be told to generate Stop Breaks by
setting
the appropriate bit in the DEVACTB register.
This change allows the C2 state on those systems to work as expected.
Reviewed by: njl
Submitted by: Andriy Gapon <avg at icyb.net.ua>
antoine [Mon, 17 Mar 2008 19:08:32 +0000 (19:08 +0000)]
MFC to RELENG_6
- Make Disk_Names() behave as documented in libdisk(3): return an array
of disk names, where you must free each pointer, as well as the array
by hand. [1]
- Destaticize "disks" in Disk_Names, it has no reasons to be static.
alfred [Sat, 15 Mar 2008 03:20:53 +0000 (03:20 +0000)]
In calcru, we make sure the thread's state is correct, however we
do not emit the thread or proc information making debugging this
assertion difficult.
Emit the thread/proc that caused the KASSERT to fail to ease debugging.
Note: this assert does not exist in later branches of FreeBSD.
emax [Fri, 14 Mar 2008 16:11:20 +0000 (16:11 +0000)]
MFC:
Add an option to register DUN (Dial-Up Networking) service on the same
RFCOMM channel if needed. There is really no good reason to not to support
this. AT-command exchange can be faked with chat script in ppp.conf.
emaste [Fri, 14 Mar 2008 15:25:44 +0000 (15:25 +0000)]
Honour mpsafe_vfs=0 in softdep_flush. This is basically a MFC of revision
1.206, except that Giant remains unconditionally acquired in the #ifdef
QUOTA case here (as QUOTA-enabled UFS on RELENG_6 is not MPSAFE).
> Change sysinstall's handling of X11 stuff. Doing it in pieces was
> probably the right thing to do a while ago but xorg has progressed
> to the point that for novice users (who are the ones expected to think
> installing X11 during an install...) it's best to just install the
> whole x11/xorg metaport for them. This removes the X11 sub-menus
> and sets it up so you just select whether or not you want X11. While
> here garbage collect an X11 configuration menu I missed removing when
> I removed support for attempting xorg configuration from inside sysinstall
> a while ago.
wollman [Thu, 13 Mar 2008 02:33:20 +0000 (02:33 +0000)]
MFC rev. 1.26:
stdio is currently limited to file descriptors not greater than
{SHRT_MAX}, so {STREAM_MAX} should be no greater than that. (This
does not exactly meet the letter of POSIX but comes reasonably close
to it in spirit.)
brooks [Wed, 12 Mar 2008 17:41:37 +0000 (17:41 +0000)]
Sync with current merging revs 1.27 and 1.31.
1.27:
Use get_if_var() to retrieve interface specific values of dhclient_flags
and background_dhclient. This allows interfaces who's names are not
valid parts of shell variables and shortens the code.
1.31:
When the state of the interface changes rapidly enough there is a race
where dhclient is in the process of exiting due to the link going down
when the link coming up causes devd to try and start a new one. This
results is the link being up, but no dhclient running.
Work around this race by checking a second time after a one second delay
before refusing to start a dhclient instance due to one already being
running.
mav [Tue, 11 Mar 2008 19:14:10 +0000 (19:14 +0000)]
MFC rev. 1.23-1.24
To avoid control data losses, do not acknowledge recieving of control packet
if netgraph reported error while delivering to destination.
Reset 'next send' counter to the last requested by peer on ack timeout,
to resend all subsequest packets after lost one again without additional hints.
mav [Tue, 11 Mar 2008 19:04:42 +0000 (19:04 +0000)]
MFC rev. 1.61
Send only one incoming notification at a time to reduce queue
trashing and improve performance.
Remove waitflag argument from ng_ksocket_incoming2(), it means nothing
as function call was queued by netgraph.
Remove node validity check, as node validity guarantied by netgraph.
Update comments.
mav [Mon, 10 Mar 2008 20:38:56 +0000 (20:38 +0000)]
MFC: rev. 1.148-1.149
Implement 128 items node name hash for faster name search.
Increase node ID hash size from 32 to 128 items.
Increase default queue items allocation limit from 512 to 4096 items
to avoid terrible unpredicted effects for netgraph operation of their
exhaustion while allocating control messages.
Add separate configurable 512 items limit for data items allocation
for DoS/overload protection.
Add pc98 specific code to adjust the firmware geometry when it differs
from the actual geometry. This enables support of disks larger than
~120GB on pc98 boxes.
rwatson [Mon, 10 Mar 2008 10:23:37 +0000 (10:23 +0000)]
Merge db_input.c:1.39 from HEAD to RELENG_6:
Reserve two bytes at the end of the DDB input line in db_readline() to
hold the newline and nul terminator. Otherwise, there are cases where
garbage may end up in the command history due to a lack of a nul
terminator, or input may end up without room for a newline.
PR: 119079
Submitted by: Michael Plass <mfp49_freebsd@plass-family.net>
mav [Sun, 9 Mar 2008 20:05:39 +0000 (20:05 +0000)]
MFC rev. 1.93-1.94
Make session ID generator to use session ID hash.
Make session ID generator thread-safe.
Use more compact LIST instead of TAILQ for session hash.
Add all listening hooks into LIST to simplify searches.
Use ng_findhook() instead of own equal implementation.
rwatson [Sun, 9 Mar 2008 14:50:28 +0000 (14:50 +0000)]
Merge db_input.c:1.38 from HEAD to RELENG_6:
When redrawing an input line, count backspaces to get to the beginning of
the input field from the current cursor location, rather than the end of
the input line, as the cursor may not be at the end of the line.
Otherwise, we may overshoot, overwriting a bit of the previous line and
failing to fully overwrite the current line.
PR: 119079
Submitted by: Michael Plass <mfp49_freebsd@plass-family.net>
'spi' and the return value of ntohl are unsigned. Remove the extra >=0
check which was always true.
Document the special meaning of spi values of 0 and 1-255 with a comment.
In case of failure we can directly return ENOBUFS because
'result' is still NULL and we do not need to free anything.
That allows us to gc the entire goto parts and a now unused variable.
Add a missing return so that we drop out in case of an error and
do not continue with a NULL pointer. [1]
While here change the return of the error handling code path above.
I cannot see why we should always return 0 there. Neither does KAME
nor do we in here for the similar check in all the other functions.
Looking at {ah,esp}_input_cb it seems we might be able to end up
without an mtag in ipsec4_common_input_cb.
So in case of !IPCOMP (AH,ESP) only change the m_tag_id if an mtag
was passed to ipsec4_common_input_cb.
MFC rev. 1.15 ipsec_input.c
Though we are only called for the three security protocols we can
handle, document those sprotos using an IPSEC_ASSERT so that it will
be clear that 'spi' will always be initialized when used the first time.
Implement ICMPv6 support in ipsec6_get_ulp().
This is needed to make security policies work correctly if ICMPv6 type
and/or code are given. See setkey(8) 'upperspec' para. for details.