]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
13 years agoRemove manual pages for functions that no longer exist.
alc [Sat, 9 Jul 2011 18:05:27 +0000 (18:05 +0000)]
Remove manual pages for functions that no longer exist.

MFC after: 1 week

13 years agoDocument copyin_nofault, copyout_nofault, uiomove_nofault.
kib [Sat, 9 Jul 2011 15:24:12 +0000 (15:24 +0000)]
Document copyin_nofault, copyout_nofault, uiomove_nofault.

Submitted by: alc

13 years agoAdd a facility to disable processing page faults. When activated,
kib [Sat, 9 Jul 2011 15:21:10 +0000 (15:21 +0000)]
Add a facility to disable processing page faults. When activated,
uiomove generates EFAULT if any accessed address is not mapped, as
opposed to handling the fault.

Sponsored by: The FreeBSD Foundation
Reviewed by: alc (previous version)

13 years agoUse 'curthread_pflags' instead of 'thread_pflags' to signify that only
kib [Sat, 9 Jul 2011 15:16:07 +0000 (15:16 +0000)]
Use 'curthread_pflags' instead of 'thread_pflags' to signify that only
curthread can be operated upon.

Requested by: attilio
MFC after: 1 week

13 years agoUse helper functions instead of manually managing TDP_INBDFLUSH.
kib [Sat, 9 Jul 2011 14:42:45 +0000 (14:42 +0000)]
Use helper functions instead of manually managing TDP_INBDFLUSH.

Sponsored by: The FreeBSD Foundation
Reviewed by: alc (previous version)
MFC after: 1 week

13 years agoImplement a helper functions to locally set thread-private flag, and
kib [Sat, 9 Jul 2011 14:41:28 +0000 (14:41 +0000)]
Implement a helper functions to locally set thread-private flag, and
restore it to the previous state. Note that only setting a flag locally
is supported.

Sponsored by: The FreeBSD Foundation
Reviewed by: alc (previous version)
MFC after: 1 week

13 years agoImplement pci_find_class(9), the function to find a pci device by its class.
kib [Sat, 9 Jul 2011 14:30:13 +0000 (14:30 +0000)]
Implement pci_find_class(9), the function to find a pci device by its class.

Sponsored by: The FreeBSD Foundation
Reviewed by: jhb
MFC after: 1 week

13 years agoImplement bitcount16.
kib [Sat, 9 Jul 2011 14:29:23 +0000 (14:29 +0000)]
Implement bitcount16.

Sponsored by: The FreeBSD Foundation
MFC after: 1 week

13 years agoFix style, since this file has just been touched in a major way.
se [Sat, 9 Jul 2011 12:20:15 +0000 (12:20 +0000)]
Fix style, since this file has just been touched in a major way.
No actual code changes.

13 years agoSome refactoring for easier maintenance of the code. This is a follow-up
se [Sat, 9 Jul 2011 12:14:57 +0000 (12:14 +0000)]
Some refactoring for easier maintenance of the code. This is a follow-up
to re-establishment of 64bit arithmetic, but is committed separately, to
not obscure that conversion. This commit does not change the observed
behaviour of expr in any way. Style will be fixed in a follow-up commit.

13 years agoMake /bin/expr support 64bit numeric range and range checks by default,
se [Sat, 9 Jul 2011 12:05:53 +0000 (12:05 +0000)]
Make /bin/expr support 64bit numeric range and range checks by default,
again. This brings back the behaviour of expr in FreeBSD-4, which had been
reverted due to an assumed incompatbility with POSIX.1 for FreeBSD-5.

This issue has been discussed in the freebsd-standards list, and the
consensus was, that POSIX.1 is in fact not violated by this extension,
since it affects only cases of POSIX undefined behaviour (overflow of
signed long).

Other operating systems did upgrade their versions of expr to support
64bit range, after it had been initially brought to FreeBSD. They have
used it for a decade without problems, meanwhile.

The -e option is retained, but it will only select less strict checking
of numeric parameters (leading white-space, leading "+" are allowed and
skipped, an empty string is considered to represent 0 in numeric context.)
The call of check_utility_compat() as a means of establishing backwards
compatibility with FreeBSD-4 is considered obsolete, but preserved in
this commit. It is expected to be removed in a later revision of this
file.
Reviewed by: bde, das, jilles
MFC after: 2 month (those parts that do not violate POLA)

13 years agoAdd missing "swapuse" resource limit.
trasz [Sat, 9 Jul 2011 08:42:23 +0000 (08:42 +0000)]
Add missing "swapuse" resource limit.

13 years ago- Add xdr_sizeof(3) to libc
kevlo [Sat, 9 Jul 2011 07:43:56 +0000 (07:43 +0000)]
- Add xdr_sizeof(3) to libc
- Document xdr_sizeof(3); from NetBSD

Discussed with: kib

13 years agoAdd an option to have a fail point term only execute when run by a
mdf [Fri, 8 Jul 2011 20:41:12 +0000 (20:41 +0000)]
Add an option to have a fail point term only execute when run by a
specified pid.  This is helpful for automated testing involving a global
knob that would otherwise be executed by many other threads.

MFC after: 1 week

13 years agostyle(9) and cleanup fixes.
mdf [Fri, 8 Jul 2011 20:41:07 +0000 (20:41 +0000)]
style(9) and cleanup fixes.

MFC after: 1 week

13 years agoAdd device ID for the Davicom 56PDV PCI Modem.
jhb [Fri, 8 Jul 2011 17:45:38 +0000 (17:45 +0000)]
Add device ID for the Davicom 56PDV PCI Modem.

PR: kern/75132
Submitted by: Mike Tancsa @ Sentex (older patch against puc(4))
MFC after: 1 week

13 years agoImplement basic support for memory attributes. At this time we only
marcel [Fri, 8 Jul 2011 16:30:54 +0000 (16:30 +0000)]
Implement basic support for memory attributes. At this time we only
distinguish between UC and WB memory so that we can map the page to
either a region 6 address (for UC) or a region 7 address (for WB).

This change is only now possible, because previously we would map
regions 6 and 7 with 256MB translations and on top of that had the
kernel mapped in region 7 using a wired translation. The introduction
of the PBVM moved the kernel into its own region and freed up region
7 and allowed us to revert to standard page-sized translations.

This commit inroduces pmap_page_to_va() that respects the attribute.

13 years agoNote that -a, -C, -H, -j, and -z are also toggles.
jhb [Fri, 8 Jul 2011 13:45:53 +0000 (13:45 +0000)]
Note that -a, -C, -H, -j, and -z are also toggles.

PR: bin/158682
Reported by: arundel
MFC after: 3 days

13 years agoFix the "passability" test in fdcopy().
jonathan [Fri, 8 Jul 2011 12:19:25 +0000 (12:19 +0000)]
Fix the "passability" test in fdcopy().

Rather than checking to see if a descriptor is a kqueue, check to see if
its fileops flags include DFLAG_PASSABLE.

At the moment, these two tests are equivalent, but this will change with
the addition of capabilities that wrap kqueues but are themselves of type
DTYPE_CAPABILITY. We already have the DFLAG_PASSABLE abstraction, so let's
use it.

This change has been tested with [the newly improved] tools/regression/kqueue.

Approved by: mentor (rwatson), re (Capsicum blanket)
Sponsored by: Google Inc

13 years agoClarify the meaning of a test.
jonathan [Fri, 8 Jul 2011 12:16:30 +0000 (12:16 +0000)]
Clarify the meaning of a test.

Rather than using err() if either of two failure conditions
fires (which can produce spurious error messages), just use
errx() if the one condition that really matters fires.

In practice, this single test is enough to detect the failure
mode we're looking for (kqueue being inherited across fork).

Approved by: mentor (rwatson), re (Capsicum blanket)
Sponsored by: Google Inc

13 years agoAdd new USB 3G driver.
hselasky [Fri, 8 Jul 2011 10:58:56 +0000 (10:58 +0000)]
Add new USB 3G driver.

Submitted by: PseudoCylon <moonlightakkiy@yahoo.ca>
MFC after: 14 days

13 years agoIn the experimental soreceive_stream():
andre [Fri, 8 Jul 2011 10:50:13 +0000 (10:50 +0000)]
In the experimental soreceive_stream():

 o Move the non-blocking socket test below the SBS_CANTRCVMORE so that EOF
   is correctly returned on a remote connection close.
 o In the non-blocking socket test compare SS_NBIO against the so->so_state
   field instead of the incorrect sb->sb_state field.
 o Simplify the ENOTCONN test by removing cases that can't occur.

Submitted by: trociny (with some further tweaks by committer)
Tested by: trociny

13 years agoPermit ARP to proceed for IPv4 host routes for which the gateway is the
zec [Fri, 8 Jul 2011 09:38:33 +0000 (09:38 +0000)]
Permit ARP to proceed for IPv4 host routes for which the gateway is the
same as the host address.  This already works fine for INET6 and ND6.

While here, remove two function pointers from struct lltable which are
only initialized but never used.

MFC after: 3 days

13 years agoFixing building bustage on 32 bits platforms when WARNS >= 2. Note that
avatar [Fri, 8 Jul 2011 01:35:33 +0000 (01:35 +0000)]
Fixing building bustage on 32 bits platforms when WARNS >= 2.  Note that
this fix only applies to zalloc.c, the other part of libstand such like
qdivrem.c still gives compilation warnings on sparc64 tinderbox builds;
therefore, WARNS level isn't changed for now.

Submitted by: Garrett Cooper <yanegomi@gmail.com>
Reviewed by: bde

13 years agoDelete the /etc/rc.d/nfsserver script, since it is no
rmacklem [Fri, 8 Jul 2011 00:49:50 +0000 (00:49 +0000)]
Delete the /etc/rc.d/nfsserver script, since it is no
longer used by /etc/rc.d/nfsd and it is no longer necessary
to load the old nfs server by default, when nfs_server_enable="YES".

Tested by: sgk at troutmask.apl.washington.edu
Reviewed by: rc (Andrzej Tobola)

13 years agoNote the PF version.
obrien [Thu, 7 Jul 2011 23:17:56 +0000 (23:17 +0000)]
Note the PF version.

Discussed with: bz

13 years agoFix the /etc/rc.d/nfsd script so that it no longer uses
rmacklem [Thu, 7 Jul 2011 20:59:42 +0000 (20:59 +0000)]
Fix the /etc/rc.d/nfsd script so that it no longer uses
the /etc/rc.d/nfsserver script to load the old nfs server
module.

Tested by: sgk at troutmask.apl.washington.edu
Reviewed by: rc (hrs)

13 years agoGrab the rlock before checking if our interface is enabled, it could be
thompsa [Thu, 7 Jul 2011 20:02:09 +0000 (20:02 +0000)]
Grab the rlock before checking if our interface is enabled, it could be
possible to hit a dead pointer when changing interfaces.

PR: kern/156978
Submitted by: Andrew Boyer
MFC after: 1 week

13 years agoEnsure that kqueue is not inherited across fork().
jonathan [Thu, 7 Jul 2011 18:07:03 +0000 (18:07 +0000)]
Ensure that kqueue is not inherited across fork().

Modify the existing unit test (from libkqueue) which already exercises process events via
fork() and kill(). Now, the child process simply checks that the 'kqfd' descriptor is invalid.

Some minor modifications were required to make err() work correctly. It seems that this test
was imported using the output of a configure script, but config.h was not included in key
places, nor was its syntax correct (need '#define HAVE_FOO 1' rather than '#define HAVE_FOO').

Finally, change main() to run the "proc" suite by default, but widened the '#if TODO' in
proc.c to include the non-functioning test event_trigger().

Approved by: mentor (rwatson), re (Capsicum blanket)
Sponsored by: Google Inc

13 years agoStyle fix - macros are supposed to be uppercase.
trasz [Thu, 7 Jul 2011 17:44:42 +0000 (17:44 +0000)]
Style fix - macros are supposed to be uppercase.

13 years agoMake a comment more accurate.
jonathan [Thu, 7 Jul 2011 17:00:42 +0000 (17:00 +0000)]
Make a comment more accurate.

This comment refers to CAP_NT_SMBS, which does not exist; it should refer to SMB_CAP_NT_SMBS.
Fixing this comment makes it easier for people interested in Capsicum to grep around for
capability rights, whose identifiers are of the form 'CAP_[A-Z_]'.

Approved by: mentor (rwatson), re (Capsicum blanket)
Sponsored by: Google Inc

13 years agoFix memset sizeofs
kevlo [Thu, 7 Jul 2011 15:41:40 +0000 (15:41 +0000)]
Fix memset sizeofs

Reviewed by: bschmidt

13 years agoAlways skip the kernel idle process if requested, it is not specific to
jhb [Thu, 7 Jul 2011 13:37:46 +0000 (13:37 +0000)]
Always skip the kernel idle process if requested, it is not specific to
the 'CPU' mode.

PR: bin/158677
Reported by: arundel
MFC after: 3 days

13 years agoAdd again the checking for log_arp_permanent_modify that was by accident
ae [Thu, 7 Jul 2011 11:59:51 +0000 (11:59 +0000)]
Add again the checking for log_arp_permanent_modify that was by accident
removed in the r186119.

PR: kern/154831
MFC after: 1 week

13 years agoRemove the TCP_SORECEIVE_STREAM compile time option. The use of
andre [Thu, 7 Jul 2011 10:37:14 +0000 (10:37 +0000)]
Remove the TCP_SORECEIVE_STREAM compile time option.  The use of
soreceive_stream() for TCP still has to be enabled with the loader
tuneable net.inet.tcp.soreceive_stream.

Suggested by: trociny and others

13 years agoAdd an extra tab between fs_file and fs_vfstype
kevlo [Thu, 7 Jul 2011 01:22:50 +0000 (01:22 +0000)]
Add an extra tab between fs_file and fs_vfstype

Reviewed by: nwhitehorn

13 years agoA fix to make the LINT-NOINET build happy, if this
jfv [Thu, 7 Jul 2011 00:46:50 +0000 (00:46 +0000)]
A fix to make the LINT-NOINET build happy, if this
works out the ixgbe driver should be changed as well.

13 years agoAll the racct_*() calls need to happen with the proc locked. Fixing this
trasz [Wed, 6 Jul 2011 20:06:44 +0000 (20:06 +0000)]
All the racct_*() calls need to happen with the proc locked.  Fixing this
won't happen before 9.0.  This commit adds "#ifdef RACCT" around all the
"PROC_LOCK(p); racct_whatever(p, ...); PROC_UNLOCK(p)" instances, in order
to avoid useless locking/unlocking in kernels built without "options RACCT".

13 years agoConditionally compile in the IPv4/IPv6 address family support.
pluknet [Wed, 6 Jul 2011 15:18:32 +0000 (15:18 +0000)]
Conditionally compile in the IPv4/IPv6 address family support.
Test it with feature_present(3), so that we do not end up with passing
an unsupported version to NgSendMsg(3).

Approved by: glebius

13 years agoHandle a race between device_pager and devsw in a more graceful manner:
attilio [Wed, 6 Jul 2011 15:09:52 +0000 (15:09 +0000)]
Handle a race between device_pager and devsw in a more graceful manner:
return an error code rather than panic the kernel.

Sponsored by: Sandvine Incorporated
Reviewed by: kib
Tested by: pho
MFC after: 2 weeks

13 years agoAdd missing unlocks.
glebius [Wed, 6 Jul 2011 09:43:25 +0000 (09:43 +0000)]
Add missing unlocks.

13 years agoOnly increment the ypcnt once per data record. The old implementation
gordon [Wed, 6 Jul 2011 06:34:08 +0000 (06:34 +0000)]
Only increment the ypcnt once per data record. The old implementation
was incrementing it twice making it impossible to iterate the table
since the records were 1, 3, 5, 7 (or 2, 4, 6, 8 for the v3 records).

MFC after: 10 days

13 years agoUpdate to version 9.6-ESV-R4-P3
dougb [Wed, 6 Jul 2011 00:48:31 +0000 (00:48 +0000)]
Update to version 9.6-ESV-R4-P3

ALL BIND USERS ARE ENCOURAGED TO UPGRADE IMMEDIATELY

This update addresses the following vulnerability:

CVE-2011-2464
=============
Severity: High
Exploitable: Remotely

Description:

A defect in the affected BIND 9 versions allows an attacker to remotely
cause the "named" process to exit using a specially crafted packet. This
defect affects both recursive and authoritative servers. The code location
of the defect makes it impossible to protect BIND using ACLs configured
within named.conf or by disabling any features at compile-time or run-time.

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-2464
https://www.isc.org/software/bind/advisories/cve-2011-2464

13 years agoApply bug fixes
dougb [Wed, 6 Jul 2011 00:47:27 +0000 (00:47 +0000)]
Apply bug fixes

Submitted by: marius

13 years agoRemove the IDR_CHEETAH_MAX_BN_PAIRS limit from cheetah_ipi_selected().
marius [Tue, 5 Jul 2011 20:05:06 +0000 (20:05 +0000)]
Remove the IDR_CHEETAH_MAX_BN_PAIRS limit from cheetah_ipi_selected().
This is just a simple approach. For reasons unknown OpenSolaris uses a
more sophisticated one involving IPIing the remaining CPUs in reverse
order after the first batch of 32.

13 years agoDelete files made obsolete because they were moved to sys/nfs
rmacklem [Tue, 5 Jul 2011 19:26:58 +0000 (19:26 +0000)]
Delete files made obsolete because they were moved to sys/nfs
in order to be shared by both NFS clients.

13 years agoIt can be useful to know which page still has mappings.
marius [Tue, 5 Jul 2011 18:55:56 +0000 (18:55 +0000)]
It can be useful to know which page still has mappings.

13 years ago- pmap_cache_remove() and pmap_protect_tte() are only used within pmap.c
marius [Tue, 5 Jul 2011 18:50:40 +0000 (18:50 +0000)]
- pmap_cache_remove() and pmap_protect_tte() are only used within pmap.c
  so static'ize them.
- Correct a typo.

13 years agoRemove #ifdef notyet code dating back to 4.3BSD Net/2 (and possibly earlier).
cperciva [Tue, 5 Jul 2011 18:49:55 +0000 (18:49 +0000)]
Remove #ifdef notyet code dating back to 4.3BSD Net/2 (and possibly earlier).

I think the benefit of making the code cleaner and easier to understand
outweighs the humour of leaving this intact (or possibly changing it to
#ifdef not_yet_and_probably_never).

MFC after: 2 weeks

13 years agoIn pmap_remove_all() assert that the page is neither fictitious nor
marius [Tue, 5 Jul 2011 18:46:19 +0000 (18:46 +0000)]
In pmap_remove_all() assert that the page is neither fictitious nor
unmanaged as also done on other architectures.

Reviewed by: alc

13 years agoDon't allow lro->len to exceed 65535, as this will result in overflow
cperciva [Tue, 5 Jul 2011 18:43:54 +0000 (18:43 +0000)]
Don't allow lro->len to exceed 65535, as this will result in overflow
when len is inserted back into the synthetic IP packet and cause a
multiple of 2^16 bytes of TCP "packet loss".

This improves Linux->FreeBSD netperf bandwidth by a factor of 300 in
testing on Amazon EC2.

Reviewed by: jfv
MFC after: 2 weeks

13 years agoCorrect cpu_monitor() and cpu_mwait() for amd64. These instructions take
jkim [Tue, 5 Jul 2011 18:42:10 +0000 (18:42 +0000)]
Correct cpu_monitor() and cpu_mwait() for amd64.  These instructions take
%rcx as "extensions" in long mode.  If any unused bit is set in %rcx, these
instructions cause general protection fault.  Fix style nits and synchronize
i386 with amd64.

13 years agoCall pmap_qremove() before freeing or unwiring the pages, otherwise
marius [Tue, 5 Jul 2011 18:40:37 +0000 (18:40 +0000)]
Call pmap_qremove() before freeing or unwiring the pages, otherwise
there's a window during which a page can be re-used before its previous
mapping is removed.

Reviewed by: alc
MFC after: 1 week

13 years agoDelete files made obsolete by the change in default NFS client
rmacklem [Tue, 5 Jul 2011 18:40:19 +0000 (18:40 +0000)]
Delete files made obsolete by the change in default NFS client
and the move of nfs_kdtrace.h to sys/nfs.

13 years agoFollow Linux by unconditionally stripping the RX vlan tag from incoming
nwhitehorn [Tue, 5 Jul 2011 15:00:55 +0000 (15:00 +0000)]
Follow Linux by unconditionally stripping the RX vlan tag from incoming
packets. It turns out that all firmware versions insert it, whether or not
they support VLAN tagging.

Submitted by: glevand <geoffrey.levand at mail dot ru>

13 years agoUpdate manual page. Mention IPv6 support, and notice that main
glebius [Tue, 5 Jul 2011 14:55:17 +0000 (14:55 +0000)]
Update manual page. Mention IPv6 support, and notice that main
argument isn't actually a node, but a netgraph path.

13 years agoRewrite the flowctl utility to add it support for displaying
glebius [Tue, 5 Jul 2011 14:50:06 +0000 (14:50 +0000)]
Rewrite the flowctl utility to add it support for displaying
both IPv4 and IPv4 flows.

13 years agoo Eliminate flow6_hash_entry in favor of flow_hash_entry. We don't need
glebius [Tue, 5 Jul 2011 14:48:39 +0000 (14:48 +0000)]
o Eliminate flow6_hash_entry in favor of flow_hash_entry. We don't need
  a separate struct to start a slist of semi-opaque structs. This
  makes some code more compact.
o Rewrite ng_netflow_flow_show() and its API/ABI:
  - Support for IPv6 is added.
  - Request and response now use same struct. Structure specifies
    version (6 or 4), index of last retrieved hash, and also index
    of last retrieved entry in the hash entry.

13 years agoOnly print entries for which ut_host points to a character device.
ed [Tue, 5 Jul 2011 14:12:48 +0000 (14:12 +0000)]
Only print entries for which ut_host points to a character device.

Now that we use utmpx, we more often have entries for which the ut_line
is left blank. To prevent us from returning struct stat for "/dev/",
check that the resulting stat structure belongs to a character device.

13 years agoRework _fget to accept capability parameters.
jonathan [Tue, 5 Jul 2011 13:45:10 +0000 (13:45 +0000)]
Rework _fget to accept capability parameters.

This new version of _fget() requires new parameters:
- cap_rights_t needrights
    the rights that we expect the capability's rights mask to include
    (e.g. CAP_READ if we are going to read from the file)

- cap_rights_t *haverights
    used to return the capability's rights mask (ignored if NULL)

- u_char *maxprotp
    the maximum mmap() rights (e.g. VM_PROT_READ) that can be permitted
    (only used if we are going to mmap the file; ignored if NULL)

- int fget_flags
    FGET_GETCAP if we want to return the capability itself, rather than
    the underlying object which it wraps

Approved by: mentor (rwatson), re (Capsicum blanket)
Sponsored by: Google Inc

13 years agoRemove useless initialization.
trociny [Tue, 5 Jul 2011 06:12:28 +0000 (06:12 +0000)]
Remove useless initialization.

Approved by: pjd (mentor)
MFC after: 3 days

13 years agoThe algorithm used by nfscl_getopen() could have resulted in
rmacklem [Mon, 4 Jul 2011 23:32:09 +0000 (23:32 +0000)]
The algorithm used by nfscl_getopen() could have resulted in
multiple instances of the same lock_owner when a process both
inherited an open file descriptor plus opened the same file itself.
Since some NFSv4 servers cannot handle multiple instances of
the same lock_owner string, this patch changes the algorithm
used by nfscl_getopen() in the new NFSv4 client to keep that
from happening. The new algorithm is simpler, since there is
no longer any need to ascend the process's parentage tree because
all NFSv4 Closes for a file are done at VOP_INACTIVE()/VOP_RECLAIM(),
making the Opens indistinct w.r.t. use with Lock Ops.
This problem was discovered at the recent NFSv4 interoperability
Bakeathon.

MFC after: 2 weeks

13 years ago- General grammar and mdoc(7) fixes. [1] [2]
gjb [Mon, 4 Jul 2011 23:00:26 +0000 (23:00 +0000)]
- General grammar and mdoc(7) fixes. [1] [2]
- While here, remove a paragraph about userspace operation that
  has been outdated for some time. [2]

PR: 158623
Submitted by: Ben Kudak (kaduk % mit!edu) [1]
Reviewed by: glebius [2]
MFC after: 1 week

13 years ago - Speed up pendingblock processing again. Having too much delay between
jeff [Mon, 4 Jul 2011 22:08:04 +0000 (22:08 +0000)]
 - Speed up pendingblock processing again.  Having too much delay between
   ffs_blkfree() and the pending adjustment causes all kinds of
   space related problems.

13 years ago - Handle D_JSEGDEP in the softdep_sync_buf() switch. These can now
jeff [Mon, 4 Jul 2011 21:04:25 +0000 (21:04 +0000)]
 - Handle D_JSEGDEP in the softdep_sync_buf() switch.  These can now
   find themselves on snapshot vnodes.

Reported by: pho

13 years ago - It is impossible to run request_cleanup() while doing a copyonwrite.
jeff [Mon, 4 Jul 2011 20:53:55 +0000 (20:53 +0000)]
 - It is impossible to run request_cleanup() while doing a copyonwrite.
   This will most likely cause new block allocations which can recurse
   into request cleanup.
 - While here optimize the ufs locking slightly.  We need only acquire and
   drop once.
 - process_removes() and process_truncates() also is only needed once.
 - Attempt to flush each item on the worklist once but do not loop forever
   if some can not be completed.

Discussed with: mckusick

13 years ago - Fix an inode quota leak. We need to decrement the quota once and only
jeff [Mon, 4 Jul 2011 20:52:23 +0000 (20:52 +0000)]
 - Fix an inode quota leak.  We need to decrement the quota once and only
   once.

Tested by: pho
Reviewed by: mckusick

13 years agoFix build with NETGRAPH_DEBUG.
glebius [Mon, 4 Jul 2011 20:50:09 +0000 (20:50 +0000)]
Fix build with NETGRAPH_DEBUG.

13 years agopf(4) tags now store the state key but tcp_respond tries to reuse a mbuf as an optimi...
eri [Mon, 4 Jul 2011 17:43:04 +0000 (17:43 +0000)]
pf(4) tags now store the state key but tcp_respond tries to reuse a mbuf as an optimization.
This makes pf find the wrong state and cause errors reported with state mismatches.
Clear the cached state link on the pf(4) tag to avoid the state mismatches.

Approved by: bz

13 years agoAdd a trivial script for creating memstick images. These are not
marcel [Mon, 4 Jul 2011 17:03:19 +0000 (17:03 +0000)]
Add a trivial script for creating memstick images. These are not
bootable yet, but proven to be useful without it already.

13 years agoDisable PREEMPTION for now. See also PR ia64/147501.
marcel [Mon, 4 Jul 2011 16:59:26 +0000 (16:59 +0000)]
Disable PREEMPTION for now. See also PR ia64/147501.

13 years agoAdd kernel functions to unwrap capabilities.
jonathan [Mon, 4 Jul 2011 14:40:32 +0000 (14:40 +0000)]
Add kernel functions to unwrap capabilities.

cap_funwrap() and cap_funwrap_mmap() unwrap capabilities, exposing the
underlying object. Attempting to unwrap a capability with an inadequate
rights mask (e.g. calling cap_funwrap(fp, CAP_WRITE | CAP_MMAP, &result)
on a capability whose rights mask is CAP_READ | CAP_MMAP) will result in
ENOTCAPABLE.

Unwrapping a non-capability is effectively a no-op.

These functions will be used by Capsicum-aware versions of _fget(), etc.

Approved by: mentor (rwatson), re (Capsicum blanket)
Sponsored by: Google Inc

13 years agoFix build with NETGRAPH_DEBUG.
glebius [Mon, 4 Jul 2011 13:55:55 +0000 (13:55 +0000)]
Fix build with NETGRAPH_DEBUG.

13 years ago- Remove the now unused CPU_NAND_ATOMIC()
attilio [Mon, 4 Jul 2011 12:18:12 +0000 (12:18 +0000)]
- Remove the now unused CPU_NAND_ATOMIC()
- Add a comment explaining that CPU_OR_ATOMIC() and
  CPU_COPY_STORE_REL() are special wrappers used to cater particular
  cases.

13 years agoWith retirement of cpumask_t and usage of cpuset_t for representing a
attilio [Mon, 4 Jul 2011 12:04:52 +0000 (12:04 +0000)]
With retirement of cpumask_t and usage of cpuset_t for representing a
mask of CPUs, pc_other_cpus and pc_cpumask become highly inefficient.

Remove them and replace their usage with custom pc_cpuid magic (as,
atm, pc_cpumask can be easilly represented by (1 << pc_cpuid) and
pc_other_cpus by (all_cpus & ~(1 << pc_cpuid))).

This change is not targeted for MFC because of struct pcpu members
removal and dependency by cpumask_t retirement.

MD review by: marcel, marius, alc
Tested by: pluknet
MD testing by: marcel, marius, gonzo, andreast

13 years agoMake the USB keyboard driver more HID compliant.
hselasky [Mon, 4 Jul 2011 07:37:28 +0000 (07:37 +0000)]
Make the USB keyboard driver more HID compliant.
Try to auto-detect keyboards which should use the BOOT protocol.

MFC after: 2 weeks

13 years ago- Use refcount(9) API to manage node and hook refcounting.
glebius [Mon, 4 Jul 2011 07:03:44 +0000 (07:03 +0000)]
- Use refcount(9) API to manage node and hook refcounting.
- Make ng_unref_node() void, since caller shouldn't be
  interested in whether node is valid after call or not,
  since it can't be guaranteed to be valid. [1]

Ok from: julian [1]

13 years agoARP code reuses mbuf from ARP request to make a reply, but it does not
ae [Mon, 4 Jul 2011 05:47:48 +0000 (05:47 +0000)]
ARP code reuses mbuf from ARP request to make a reply, but it does not
reset rcvif to NULL. Since rcvif is not NULL, ipfw(4) supposes that ARP
replies were received on specified interface.
Reset rcvif to NULL for ARP replies to fix this issue.

PR: kern/131817
Reviewed by: glebius
MFC after: 1 month

13 years agoAdd sanity check for ifm_version in struct if_msghdr.
hrs [Mon, 4 Jul 2011 03:19:06 +0000 (03:19 +0000)]
Add sanity check for ifm_version in struct if_msghdr.

13 years agoModify the new NFSv4 client so that it appends a file handle
rmacklem [Sun, 3 Jul 2011 21:44:26 +0000 (21:44 +0000)]
Modify the new NFSv4 client so that it appends a file handle
to the lock_owner4 string that goes on the wire. Also, add
code to do a ReleaseLockOwner Op on the lock_owner4 string
before a Close. Apparently not all NFSv4 servers handle multiple
instances of the same lock_owner4 string, at least not in a
compatible way. This patch avoids having multiple instances,
except for one unusual case, which will be fixed by a future commit.
Found at the recent NFSv4 interoperability Bakeathon.

Tested by: tdh at excfb.com
MFC after: 2 weeks

13 years agoImprove portability of config(8).
ed [Sun, 3 Jul 2011 20:59:57 +0000 (20:59 +0000)]
Improve portability of config(8).

- Use strlen(dp->d_name) instead of the unportable dp->d_namlen. Rename
  i to len to make it slightly more descriptive and prevent negative
  indexing of the array.
- Replace index() by strchr().

This supposedly fixes compilation on GNU systems.

Submitted by: Robert Millan <rmh debian org> (original patch)
MFC after: 3 weeks

13 years agoTag mbufs of all incoming frames or packets with the interface's FIB
bz [Sun, 3 Jul 2011 16:08:38 +0000 (16:08 +0000)]
Tag mbufs of all incoming frames or packets with the interface's FIB
setting (either default or if supported as set by SIOCSIFFIB, e.g.
from ifconfig).

Submitted by: Alexander V. Chernikov (melifaro ipfw.ru)
Reviewed by: julian
MFC after: 2 weeks

13 years agoRemove extra white space to comply with style for the rest of the struct.
bz [Sun, 3 Jul 2011 15:34:09 +0000 (15:34 +0000)]
Remove extra white space to comply with style for the rest of the struct.

MFC after: 2 weeks

13 years agoIntroduce a quirk for broken USB MIDI hardware instead of limiting performance
hselasky [Sun, 3 Jul 2011 13:27:23 +0000 (13:27 +0000)]
Introduce a quirk for broken USB MIDI hardware instead of limiting performance
in general.

MFC after: 1 week

13 years agoAdd infrastructure to allow all frames/packets received on an interface
bz [Sun, 3 Jul 2011 12:22:02 +0000 (12:22 +0000)]
Add infrastructure to allow all frames/packets received on an interface
to be assigned to a non-default FIB instance.

You may need to recompile world or ports due to the change of struct ifnet.

Submitted by: cjsp
Submitted by: Alexander V. Chernikov (melifaro ipfw.ru)
(original versions)
Reviewed by: julian
Reviewed by: Alexander V. Chernikov (melifaro ipfw.ru)
MFC after: 2 weeks
X-MFC: use spare in struct ifnet

13 years agoWhen iterating over a paging queue, explicitly check for PG_MARKER, instead
alc [Sat, 2 Jul 2011 23:42:04 +0000 (23:42 +0000)]
When iterating over a paging queue, explicitly check for PG_MARKER, instead
of relying on zeroed memory being interpreted as an empty PV list.

Reviewed by: kib

13 years agoInitialize marker pages as held rather than fictitious/wired. Marking the
alc [Sat, 2 Jul 2011 23:34:47 +0000 (23:34 +0000)]
Initialize marker pages as held rather than fictitious/wired.  Marking the
page as held is more useful as a safety precaution in case someone forgets
to check for PG_MARKER.

Reviewed by: kib

13 years agoFix for "nomatch" event for ums and ukbd drivers when uhid is loaded.
hselasky [Sat, 2 Jul 2011 20:58:33 +0000 (20:58 +0000)]
Fix for "nomatch" event for ums and ukbd drivers when uhid is loaded.

MFC after: 3 days

13 years agoFix problem about USB MIDI TX data format, that some devices only accept
hselasky [Sat, 2 Jul 2011 20:26:37 +0000 (20:26 +0000)]
Fix problem about USB MIDI TX data format, that some devices only accept
a maximum of 4 bytes (one command) per short terminated USB transfer.
Optimise the TX case by sending multiple USB frames.

MFC after: 1 week

13 years agoDefine the CAPABILITIES kernel option.
jonathan [Sat, 2 Jul 2011 15:41:22 +0000 (15:41 +0000)]
Define the CAPABILITIES kernel option.

This option will enable Capsicum capabilities, which provide a fine-grained
mask on operations that can be performed on file descriptors.

Approved by: mentor (rwatson), re (Capsicum blanket ok)
Sponsored by: Google Inc

13 years agoReintroduce the cioctl() hook in the TTY layer for digi(4).
ed [Sat, 2 Jul 2011 13:54:20 +0000 (13:54 +0000)]
Reintroduce the cioctl() hook in the TTY layer for digi(4).

The cioctl() hook can be used by drivers to add ioctls to the *.init and
*.lock devices. This commit breaks the ttydevsw ABI, since this
structure didn't provide any padding. To prevent ABI breakage in the
future, add a tsw_spare.

Submitted by: Peter Jeremy <peter jeremy alcatel lucent com>
Obtained from: kern/152254 (slightly modified)

13 years agoUltraSPARC-IV CPUs seem to be affected by a not publicly documented
marius [Sat, 2 Jul 2011 12:56:03 +0000 (12:56 +0000)]
UltraSPARC-IV CPUs seem to be affected by a not publicly documented
erratum causing them to trigger stray vector interrupts accompanied by a
state in which they even fault on locked TLB entries. Just retrying the
instruction in that case gets the CPU back on track though. OpenSolaris
also just ignores a certain number of stray vector interrupts.
While at it, implement the stray vector interrupt handling for SPARC64-VI
which use these for indicating uncorrectable errors in interrupt packets.

13 years agoDon't waste a delay slot.
marius [Sat, 2 Jul 2011 11:46:23 +0000 (11:46 +0000)]
Don't waste a delay slot.

13 years ago- For Cheetah- and Zeus-class CPUs don't flush all unlocked entries from
marius [Sat, 2 Jul 2011 11:14:54 +0000 (11:14 +0000)]
- For Cheetah- and Zeus-class CPUs don't flush all unlocked entries from
  the TLBs in order to get rid of the user mappings but instead traverse
  them an flush only the latter like we also do for the Spitfire-class.
  Also flushing the unlocked kernel entries can cause instant faults which
  when called from within cpu_switch() are handled with the scheduler lock
  held which in turn can cause timeouts on the acquisition of the lock by
  other CPUs. This was easily seen with a 16-core V890 but occasionally
  also happened with 2-way machines.
  While at it, move the SPARC64-V support code entirely to zeus.c. This
  causes a little bit of duplication but is less confusing than partially
  using Cheetah-class bits for these.
- For SPARC64-V ensure that 4-Mbyte page entries are stored in the 1024-
  entry, 2-way set associative TLB.
- In {d,i}tlb_get_data_sun4u() turn off the interrupts in order to ensure
  that ASI_{D,I}TLB_DATA_ACCESS_REG actually are read twice back-to-back.

Tested by:      Peter Jeremy (16-core US-IV), Michael Moll (2-way SPARC64-V)

13 years agoUsing .comm to declare intrnames and eintrnames causes binutils 2.17.50 to
marius [Sat, 2 Jul 2011 10:17:26 +0000 (10:17 +0000)]
Using .comm to declare intrnames and eintrnames causes binutils 2.17.50 to
merge the two.

13 years ago- Fix typo in check_for_nested_with_variably_modified present
uqs [Fri, 1 Jul 2011 20:45:55 +0000 (20:45 +0000)]
- Fix typo in check_for_nested_with_variably_modified present
- Implement -Wvariable-decl.
- Port -Wtrampolines support from gcc3.
(all three also via OpenBSD)

PR: gnu/127136, gnu/157019
Submitted by: Henning Petersen, Pedro Giffuni
MFC after: 6 weeks

13 years agoFix a typo.
sem [Fri, 1 Jul 2011 19:22:27 +0000 (19:22 +0000)]
Fix a typo.

Approved by: kib

13 years agoFix r223695 to compile on architectures which don't use the MBR scheme; wrap
marius [Fri, 1 Jul 2011 18:31:59 +0000 (18:31 +0000)]
Fix r223695 to compile on architectures which don't use the MBR scheme; wrap
the MBR support in the common part of the loader in #ifdef's and enable it
only for userboot for now.

13 years agoDefine cap_rights_t and DTYPE_CAPABILITY, which are required to
jonathan [Fri, 1 Jul 2011 12:13:48 +0000 (12:13 +0000)]
Define cap_rights_t and DTYPE_CAPABILITY, which are required to
implement Capsicum capabilities.

Approved by: mentor (rwatson), re (bz)

13 years agoBump date after the previous commit.
pluknet [Fri, 1 Jul 2011 10:57:10 +0000 (10:57 +0000)]
Bump date after the previous commit.