143391 Commits

Author SHA1 Message Date
kmacy
408657ab73 RTF_RNH_LOCKED needs to be passed in the flags arg not report,
apologies to thompsa
2008-12-12 02:07:45 +00:00
thompsa
7a14f2c921 Pass RTF_RNH_LOCKED to rtalloc1 sunce the node head is locked, this avoids a
recursive lock panic on inet6 detach.

Reviewed by:	kmacy
2008-12-12 01:46:59 +00:00
csjp
7073cd1683 Consider processes attaching/detaching from tun(4) devices as being link
state changes.  This change modifies tunopen and tunclose to call the
if_link_state_change() function.  Among other things, this will result in
devd(8) receiving events from devctl(4) for linkup/link down.  This allows
us to do several useful things, including initializing tunnel parameters
and adding routes.

Discussed on:	freebsd-net@
MFC after:	2 weeks
2008-12-12 01:36:50 +00:00
yongari
9d93d25c0e It seems there are still issues on multicast perfect filtering.
Disable it until I find spare time to analyze the issue.

Reported by:	Goran Lowkrantz <glz <> hidden-powers DOT com>
MFC after:	3 days
2008-12-12 01:26:11 +00:00
marcus
6ee3b0271a Add a man page for VOP_VPTOCNP.
Reviewed by:	arch
Approved by:	kib
2008-12-12 01:08:28 +00:00
marcus
8fb62ae773 Implement VOP_VPTOCNP for devfs. Directory and character device vnodes are
properly translated to their component names.

Reviewed by:	arch
Approved by:	kib
2008-12-12 01:00:38 +00:00
marcus
baed66a337 Add a simple VOP_VPTOCNP implementation for deadfs which returns EBADF.
Reviewed by:	arch
Approved by:	kib
2008-12-12 00:59:36 +00:00
marcus
ff6f42aa70 Add a new error VOP, VOP_ENOENT. This function will simply return ENOENT.
Reviewed by:	arch
Approved by:	kib
2008-12-12 00:58:52 +00:00
marcus
91e684d7f9 Add a new VOP, VOP_VPTOCNP, which translates a vnode to its component name
on a best-effort basis.  Teach vn_fullpath to use this new VOP if a
regular VFS cache lookup fails.  This VOP is designed to supplement the
VFS cache to provide a better chance that a vnode-to-name lookup will
succeed.

Currently, an implementation for devfs is being committed.  The default
implementation is to return ENOENT.

A big thanks to kib for the mentorship on this, and to pho for running it
through his stress test suite.

Reviewed by:	arch
Approved by:	kib
2008-12-12 00:57:38 +00:00
thompsa
509ce401ea Remove superfluous return statements from the end of void functions. 2008-12-11 23:17:48 +00:00
thompsa
f0bc2443fb Format and wrap function declarations. 2008-12-11 23:13:02 +00:00
kmacy
4014de0d1b Add entry for if_transmit and if_qflush 2008-12-11 22:51:11 +00:00
ed
9afe297ee5 Add kqueue()-support to pseudo-terminal master devices.
One thing I didn't expect many applications to use, was kqueue() on
pseudo-terminal master devices. There are applications that use kqueue()
on the TTY itself (rtorrent, etc). That doesn't mean we shouldn't
implement this. Libraries like libevent use kqueue() by default, which
means they wouldn't be able to use kqueue().

The old TTY layer implements a very broken version of kqueue() by
performing the actual polling on the TTY device.

Discussed with:	peter
2008-12-11 21:44:02 +00:00
thompsa
72cc5b329b Add entries for some Option, Sierra and Stelera 3G cards. 2008-12-11 21:08:14 +00:00
ed
965f53efcf Don't forget to add "npts" to rlimit_ident[] as well.
When I added RLIMIT_NPTS, I forgot to add it to rlimit_ident[]. Make
sure the rlimit_ident[] array is always RLIM_NLIMITS elements big. So if
we ever forget to add new rlimits to this list again. it will contain a
null pointer, instead of random data.

Spotted by:	rwatson
2008-12-11 18:32:05 +00:00
ps
1b2020cf17 Fix a leak introduced in r185902. We should free the devspec if
we've successfully found a zfs pool.
2008-12-11 16:48:35 +00:00
bz
83a32f8750 Put a global variables, which were virtualized but formerly
missed under VIMAGE_GLOBAL.

Start putting the extern declarations of the  virtualized globals
under VIMAGE_GLOBAL as the globals themsevles are already.
This will help by the time when we are going to remove the globals
entirely.

While there garbage collect a few dead externs from ip6_var.h.

Sponsored by:	The FreeBSD Foundation
2008-12-11 16:26:38 +00:00
bz
83955c51af Put the VIMAGE options together in one place.
Sponsored by:	The FreeBSD Foundation
2008-12-11 16:13:17 +00:00
bz
9a73283b1f Order #includes - also to reduce diffs with vimage branches in p4.
Sponsored by:	The FreeBSD Foundation
2008-12-11 16:09:31 +00:00
bz
29e59eea19 Use the correct INIT_VNET_INET() as the virtualized variable here
are in vinet.h not in vinet6.h

Sponsored by:	The FreeBSD Foundation
2008-12-11 16:05:07 +00:00
jhb
160f4765eb Add constants for fields in the local APIC error status register and a
routine to read it.
2008-12-11 15:56:30 +00:00
bz
200cc006cb Error in case anyone tried to compile with both options VIMAGE and
the (temporary) option VIMAGE_GLOBALS.

Sponsored by:	The FreeBSD Foundation:
2008-12-11 15:44:53 +00:00
bz
7bc8c0cbd6 Whitespace changes only - tabs must have been converted to spaces
somehow, when moving the code from p4 to svn.

Sponsored by:	The FreeBSD Foundation
2008-12-11 15:42:59 +00:00
rwatson
ec93db95da Add missing "goto set_head" for SO_IPX_CHECKSUM; otherwise we fall through
to the SO_HEADERS_ON_OUTPUT case and set that instead.

MFC after:	1 week
Found with:	Coverity Prevent(tm)
Coverity ID:	3988
2008-12-11 10:29:35 +00:00
imp
806f871aea Push mips support into the tree. 2008-12-11 08:22:20 +00:00
imp
feb07c8eb0 Push mips support into the tree. 2008-12-11 08:20:34 +00:00
imp
0ca6a3767d Push mips support for ld into the tree. 2008-12-11 08:18:45 +00:00
imp
0c666bc344 Push mips support for as into the tree. 2008-12-11 08:15:14 +00:00
imp
c5945ab9fc Remove redundant assignment. 2008-12-11 07:00:23 +00:00
des
a5ecf5f20c Apply the same defaults to https as to http.
Submitted by:	Mike Tancsa <mike@sentex.net>
MFC after:	1 week
2008-12-11 06:54:36 +00:00
imp
e6342fe8be Update to the interrupt handling code:
o Try to be smarter about reading the ExCA CSC register.  Now, we only
  do it for 16-bit cards.  Add some experimental code to treat it like
  a power interrupt, but I'm not 100% sure that I like it.  It may be
  removed upon further testing.  It seemed to help in one test case, but
  the evidence may be inconclusive.  This may be beneficial for cleaning up
  exca_reset and exca_wait_ready.
o Check for CSTS events on the socket event register.  We ask for it when
  we're powering up a card, but I don't think we're otherwise using
  it.  Just ACK the interrupt for now.  In theory, we can use it
  instead of the busy wait we do in cbb_cardbus_reset.  More research
  is necessary to see if we can optimize things there when we're
  waiting for the DEVVENDOR register to become valid.
o Rework the comments a bit.  Minor tidying up.  Etc.
2008-12-11 06:27:18 +00:00
sam
0d95748a8b add missing break
Coverity ID:	4159
2008-12-11 04:03:50 +00:00
sam
a25059eaa2 add missing break
Coverity ID:	4151
2008-12-11 04:03:13 +00:00
das
c1b028f516 Consolidate some variable initializations. No substantive change. 2008-12-11 02:39:27 +00:00
yongari
73a287aa0c Make WOL work on RTL8168B. This controller seems to require
explicit command to enable Rx MAC prior to entering D3.

Tested by:	Cyrus Rahman <crahman <> gmail DOT com>
2008-12-11 02:24:11 +00:00
ps
dcd4d48fc8 Avoid a double free in devopen by not freeing the device structure
in zfs_dev_open.  This stops a panic in the loader when trying to
read from a zfs device and no zfs devices exist.
2008-12-11 02:23:49 +00:00
yongari
1dec308af8 Don't access undocumented register 0x82 on controllers that
have no such register. While here clear undocumented PHY
register 0x0B for RTL8110S.

Obtained from:	RealTek FreeBSD driver
2008-12-11 01:41:38 +00:00
yongari
5bbe456ad7 Newer RealTek controllers requires setting stop request bit to
terminate active Tx/Rx operation.
2008-12-11 01:26:18 +00:00
bz
e65de9d982 Correctly check the number of prison states to not access anything
outside the prison_states array.
When checking if there is a name configured for the prison, check the
first character to not be '\0' instead of checking if the char array
is present, which it always is. Note, that this is different for the
*jailname in the syscall.

Found with:	Coverity Prevent(tm)
CID:		4156, 4155
MFC after:	4 weeks (just that I get the mail)
2008-12-11 01:04:25 +00:00
bz
da8c897826 Add 32-bit compat support for AIO.
jhb probably forgot to commit this file with r185878 and will want to
review this. It unbreaks the build here.

Obtained from:	p4 //depot/user/jhb/lock/compat/freebsd32/freebsd32_signal.h#2
2008-12-11 00:58:05 +00:00
yongari
b23743de45 Always put controller into known state before device intialization.
While here remove re_reset calls invoked in system error case as
controller reset is always done in device initialization.
2008-12-11 00:46:07 +00:00
yongari
f630de1b0f Partly revert r185756. RTL8169SC doesn't like reduced delays in
GMII access while Tx/Rx is in progress.

Reported by:	Jaakko Heinonen <jh <> saunalahti DOT fi>,
		Anton Yuzhaninov <citrin <> citrin DOT ru>
Tested by:	Jaakko Heinonen <jh <> saunalahti DOT fi>
2008-12-11 00:30:26 +00:00
zec
7b573d1496 Conditionally compile out V_ globals while instantiating the appropriate
container structures, depending on VIMAGE_GLOBALS compile time option.

Make VIMAGE_GLOBALS a new compile-time option, which by default will not
be defined, resulting in instatiations of global variables selected for
V_irtualization (enclosed in #ifdef VIMAGE_GLOBALS blocks) to be
effectively compiled out.  Instantiate new global container structures
to hold V_irtualized variables: vnet_net_0, vnet_inet_0, vnet_inet6_0,
vnet_ipsec_0, vnet_netgraph_0, and vnet_gif_0.

Update the VSYM() macro so that depending on VIMAGE_GLOBALS the V_
macros resolve either to the original globals, or to fields inside
container structures, i.e. effectively

#ifdef VIMAGE_GLOBALS
#define V_rt_tables rt_tables
#else
#define V_rt_tables vnet_net_0._rt_tables
#endif

Update SYSCTL_V_*() macros to operate either on globals or on fields
inside container structs.

Extend the internal kldsym() lookups with the ability to resolve
selected fields inside the virtualization container structs.  This
applies only to the fields which are explicitly registered for kldsym()
visibility via VNET_MOD_DECLARE() and vnet_mod_register(), currently
this is done only in sys/net/if.c.

Fix a few broken instances of MODULE_GLOBAL() macro use in SCTP code,
and modify the MODULE_GLOBAL() macro to resolve to V_ macros, which in
turn result in proper code being generated depending on VIMAGE_GLOBALS.

De-virtualize local static variables in sys/contrib/pf/net/pf_subr.c
which were prematurely V_irtualized by automated V_ prepending scripts
during earlier merging steps.  PF virtualization will be done
separately, most probably after next PF import.

Convert a few variable initializations at instantiation to
initialization in init functions, most notably in ipfw.  Also convert
TUNABLE_INT() initializers for V_ variables to TUNABLE_FETCH_INT() in
initializer functions.

Discussed at:	devsummit Strassburg
Reviewed by:	bz, julian
Approved by:	julian (mentor)
Obtained from:	//depot/projects/vimage-commit2/...
X-MFC after:	never
Sponsored by:	NLnet Foundation, The FreeBSD Foundation
2008-12-10 23:12:39 +00:00
bz
f30a0a94fe Make sure nmbclusters are initialized before maxsockets
by running the tunable_mbinit() SYSINIT at SI_ORDER_MIDDLE
before the init_maxsockets() SYSINT at SI_ORDER_ANY.

Reviewed by:		rwatson, zec
Sponsored by:		The FreeBSD Foundation
MFC after:		4 weeks
2008-12-10 22:17:09 +00:00
bz
72852bcf84 Style changes only. Put the return type on an extra line[1] and
add an empty line at the beginning as we do not have any local
variables.

Submitted by:	rwatson [1]
Reviewed by:	rwatson
MFC after:	4 weeks
2008-12-10 22:10:37 +00:00
ed
4400e3e134 Remove added newlines from logged messages written to /dev/console.
The /dev/console device node logs all strings that are written to it.
When the string does not contain a trailing newline, it appends one. I
can imagine this was useful a long time ago, but with our current
rc-scripts, it generates a whole bunch of messages that look like:

| Configuring syscons:
|  blanktime
| .

By not appending the newlines, the output of `dmesg -a' is now (almost?)
exactly the same as what the user will see on the console device
(syscons, uart).
2008-12-10 21:48:05 +00:00
jhb
0bf9254d64 Regen. 2008-12-10 20:57:16 +00:00
jhb
f3dcc2d9e0 - Add 32-bit compat system calls for VFS_AIO. The system calls live in the
aio code and are registered via the recently added SYSCALL32_*() helpers.
- Since the aio code likes to invoke fuword and suword a lot down in the
  "bowels" of system calls, add a structure holding a set of operations for
  things like storing errors, copying in the aiocb structure, storing
  status, etc.  The 32-bit system calls use a separate operations vector to
  handle fuword32 vs fuword, etc.  Also, the oldsigevent handling is now
  done by having seperate operation vectors with different aiocb copyin
  routines.
- Split out kern_foo() functions for the various AIO system calls so the
  32-bit front ends can manage things like copying in and converting
  timespec structures, etc.
- For both the native and 32-bit aio_suspend() and lio_listio() calls,
  just use copyin() to read the array of aiocb pointers instead of using
  a for loop that iterated over fuword/fuword32.  The error handling in
  the old case was incomplete (lio_listio() just ignored any aiocb's that
  it got an EFAULT trying to read rather than reporting an error), and
  possibly slower.

MFC after:	1 month
2008-12-10 20:56:19 +00:00
jhb
b771657b30 Rather than using a char array with explicit assumptions about the layout
of 'struct osigevent' in 'struct aiocb', use int and void pointer spare
members that are identical to 'struct osigevent'.

MFC after:	1 month
2008-12-10 19:45:58 +00:00
kib
ca4d4f3494 Relock user map earlier, to have the lock held when break leaves the
loop earlier due to sbuf error.

Pointy hat to:	me
Submitted by:	dchagin
2008-12-10 16:11:09 +00:00