]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
13 years agoSync: merge r214077 through r214219 from ^/head.
dim [Fri, 22 Oct 2010 20:02:18 +0000 (20:02 +0000)]
Sync: merge r214077 through r214219 from ^/head.

13 years agoAdd workaround for BCM5906 A1 controller silicon bug. When
yongari [Fri, 22 Oct 2010 19:30:56 +0000 (19:30 +0000)]
Add workaround for BCM5906 A1 controller silicon bug. When
auto-negotiation results in half-duplex operation, excess collision
on the ethernet link may cause internal chip delays that may result
in subsequent valid frames being dropped due to insufficient
receive buffer resources. The workaround is to choose de-pipeline
method as a flow control decision for SDI. De-pipeline method
allows only 1 data in TxMbuf at a time such that a request to RDMA
from SDI is made only when TxMbuf is empty. Thanks for david for
providing detailed errata information.

13 years agoEnable TX MAC state machine lockup fix for both BCM5755 or higher
yongari [Fri, 22 Oct 2010 18:31:44 +0000 (18:31 +0000)]
Enable TX MAC state machine lockup fix for both BCM5755 or higher
and BCM5906. Publicly available data sheet just says it may happen
due to corrupted TxMbuf.

13 years agoRemove some spaces from __sym_compat() macro, since gas 2.17 is more
dim [Fri, 22 Oct 2010 18:14:25 +0000 (18:14 +0000)]
Remove some spaces from __sym_compat() macro, since gas 2.17 is more
fussy about spaces surrounding '@' signs in versioned symbol names.

13 years agoUpdate gcc's auto-host.h header for binutils 2.17: turn on
dim [Fri, 22 Oct 2010 18:12:40 +0000 (18:12 +0000)]
Update gcc's auto-host.h header for binutils 2.17: turn on
HAVE_COMDAT_GROUP, HAVE_GAS_WEAKREF and HAVE_LD_SYSROOT.

13 years agoGarbage collect gnu/lib/libiberty and gnu/lib/libg2c, these have not
dim [Fri, 22 Oct 2010 18:11:17 +0000 (18:11 +0000)]
Garbage collect gnu/lib/libiberty and gnu/lib/libg2c, these have not
been used for years.

13 years agoFix gdb compilation with new binutils:
dim [Fri, 22 Oct 2010 18:08:37 +0000 (18:08 +0000)]
Fix gdb compilation with new binutils:
bfd_get_section_size_before_reloc() has been renamed to
bfd_get_section_size().

13 years agoMake contrib/binutils/opcodes/mips-dic.c compile without warnings.
dim [Fri, 22 Oct 2010 18:07:29 +0000 (18:07 +0000)]
Make contrib/binutils/opcodes/mips-dic.c compile without warnings.

13 years agoAvoid using memcpy() for copying 32bit chunks. This shrinks
rdivacky [Fri, 22 Oct 2010 18:07:21 +0000 (18:07 +0000)]
Avoid using memcpy() for copying 32bit chunks. This shrinks
the resulting code a little.

Approved by:    rpaulo (mentor)
Reviewed by:    jhb

13 years agoMake contrib/binutils/bfd/coff-x86_64.c compile without warnings.
dim [Fri, 22 Oct 2010 18:06:58 +0000 (18:06 +0000)]
Make contrib/binutils/bfd/coff-x86_64.c compile without warnings.

13 years ago- Add a new PCI quirk to whitelist an old chipset that doesn't support
jhb [Fri, 22 Oct 2010 11:42:02 +0000 (11:42 +0000)]
- Add a new PCI quirk to whitelist an old chipset that doesn't support
  PCI-express or PCI-X capabilities if we are running in a virtual machine.
- Whitelist the Intel 82440 chipset used by QEMU.

Tested by: jfv
MFC after: 1 week

13 years agoValidate syscall_timing test names before starting to provide earlier
rwatson [Fri, 22 Oct 2010 11:22:19 +0000 (11:22 +0000)]
Validate syscall_timing test names before starting to provide earlier
feedback regarding user error.

Provide default loop and timing settings.

Add a new test that just times pread() without the open()/close().

Mark tests requiring a path argument so we can provide better feedback
to the user than EFAULT on (null).

Sponsored by: Google, Inc.
MFC after: 2 weeks

13 years agoRevert to r214147, errno is not clobbered as originally
bcr [Fri, 22 Oct 2010 08:51:49 +0000 (08:51 +0000)]
Revert to r214147, errno is not clobbered as originally
thought.

13 years agoUnbreak ia64.
marcel [Fri, 22 Oct 2010 04:43:04 +0000 (04:43 +0000)]
Unbreak ia64.

With r169630 I disabled symbol versioning because it broke rtld.  With
r211706 rtld got broken for ia64 & powerpc64.  It was fixed for powerpc64
with r212497.  In between, r211749 removed the exports table because the
version script handled the exports.  But wait, symbol versioning was
disabled on ia64.

With exports controlled by the version script and symbol versioning
disabled, all symbols are exported and too many symbols bind to the
definition in rtld. Let's just say that waird things happen.

So, enable symbol versioning on ia64 and apply a work-around for the
SIGSEGV that triggered r169630 to begin with: when rtld relocates
itself, it comes across r_debug_state and for some reason can't find the
definition. This causes a failure, relocation aborts and null pointers
galore. The work-around is to ignore the missing definition when rtld
is relocating itself and keep going.

Maybe with the next binutils this will all go away. Maybe not, in
which case I still need to figure out why r_debug_state cannot be found.

BTW: r_debug_state is in the symbol map -- I don't think any other rtld
symbols that rtld references are in the symbol map...

13 years agoMore simplifications
imp [Fri, 22 Oct 2010 00:11:55 +0000 (00:11 +0000)]
More simplifications

Submitted by:  Alex Kozlov

13 years agoRemove unnecessary variable.
imp [Fri, 22 Oct 2010 00:10:48 +0000 (00:10 +0000)]
Remove unnecessary variable.

Submitted by:  Alex Kozlov

13 years agoFix two typos
imp [Thu, 21 Oct 2010 23:08:42 +0000 (23:08 +0000)]
Fix two typos

Submitted by: Benedict Reuschling

13 years agoMore support for IMAGE installations
imp [Thu, 21 Oct 2010 22:46:10 +0000 (22:46 +0000)]
More support for IMAGE installations

13 years agoMinor tweaks in compression support:
imp [Thu, 21 Oct 2010 22:33:50 +0000 (22:33 +0000)]
Minor tweaks in compression support:
o We need an eval here to get the right expansion of the command
o bs=128k doesn't work in some cases, so eliminate it and cope with the
  minor performance hit.

Submitted by: john hixson

13 years agoUniversally use uintmax_t in syscall_timing; rearrange arithmetic to
rwatson [Thu, 21 Oct 2010 21:08:12 +0000 (21:08 +0000)]
Universally use uintmax_t in syscall_timing; rearrange arithmetic to
suffer fewer rounding errors with smaller numbers; fix argc validation
so multiple tests run on a single command line.

Sponsored by: Google, Inc.
MFC after: 2 weeks

13 years agoUpdate makeinfo include paths, and configuration settings for the as
dim [Thu, 21 Oct 2010 20:34:29 +0000 (20:34 +0000)]
Update makeinfo include paths, and configuration settings for the as
info page.

13 years agoUpdate ldscript extension list.
dim [Thu, 21 Oct 2010 20:33:09 +0000 (20:33 +0000)]
Update ldscript extension list.

13 years agoUse one file per line in SRCS= definition, to make insertions and
dim [Thu, 21 Oct 2010 20:31:59 +0000 (20:31 +0000)]
Use one file per line in SRCS= definition, to make insertions and
deletions easier, and sort the file list.

13 years agoCall chainevh callback when we are invoked with neither MOD_LOAD nor
delphij [Thu, 21 Oct 2010 20:31:50 +0000 (20:31 +0000)]
Call chainevh callback when we are invoked with neither MOD_LOAD nor
MOD_UNLOAD.  This makes it possible to add custom hooks for other module
events.

Return EOPNOTSUPP when there is no callback available.

Pointed out by: jhb
Reviewed by: jhb
MFC after: 1 month

13 years agoApply upstream changes to genscripts.sh, while attempting to keep the
dim [Thu, 21 Oct 2010 20:30:35 +0000 (20:30 +0000)]
Apply upstream changes to genscripts.sh, while attempting to keep the
diff as small as possible.

13 years agoRemove weird double-pasted sections in armelfb?_fbsd.sh.
dim [Thu, 21 Oct 2010 20:29:16 +0000 (20:29 +0000)]
Remove weird double-pasted sections in armelfb?_fbsd.sh.

13 years agoRegenerate config.h for ld.
dim [Thu, 21 Oct 2010 20:28:23 +0000 (20:28 +0000)]
Regenerate config.h for ld.

13 years agoRemove bignum-copy.c from SRCS=, as it no longer exists. Remove
dim [Thu, 21 Oct 2010 20:27:40 +0000 (20:27 +0000)]
Remove bignum-copy.c from SRCS=, as it no longer exists.  Remove
tc-sparc-fixed.c entirely, since the fix has been integrated into
contrib/binutils/gas/config/tc-sparc.c by upstream.  Define TARGET_OS
in addition to the other TARGET_XXX defines.

13 years agoUse one file per line in SRCS= definition, to make insertions and
dim [Thu, 21 Oct 2010 20:23:53 +0000 (20:23 +0000)]
Use one file per line in SRCS= definition, to make insertions and
deletions easier, and sort the file list.

13 years agoRegenerate config.h for as.
dim [Thu, 21 Oct 2010 20:22:32 +0000 (20:22 +0000)]
Regenerate config.h for as.

13 years agoFix typo in last commit.
glebius [Thu, 21 Oct 2010 20:22:00 +0000 (20:22 +0000)]
Fix typo in last commit.

Submitted by: bcr

13 years agoAdd new upstream file, and update TARGET definition.
dim [Thu, 21 Oct 2010 20:21:36 +0000 (20:21 +0000)]
Add new upstream file, and update TARGET definition.

13 years agoUse one file per line in SRCS= definition, to make insertions and
dim [Thu, 21 Oct 2010 20:20:33 +0000 (20:20 +0000)]
Use one file per line in SRCS= definition, to make insertions and
deletions easier, and sort the file list.

13 years agoRegenerate config.h for libbinutils.
dim [Thu, 21 Oct 2010 20:18:34 +0000 (20:18 +0000)]
Regenerate config.h for libbinutils.

13 years agoUpdate BFD version and date, and add new upstream files. Also remove
dim [Thu, 21 Oct 2010 20:17:13 +0000 (20:17 +0000)]
Update BFD version and date, and add new upstream files.  Also remove
the elf32-arm-fbsd.c kludge; it is now integrated cleanly into
contrib/binutils/bfd/elf32-arm.c.

13 years agoUse one file per line in SRCS= definition, to make insertions and
dim [Thu, 21 Oct 2010 20:08:16 +0000 (20:08 +0000)]
Use one file per line in SRCS= definition, to make insertions and
deletions easier, and sort the file list.

13 years agoRegenerate bfd.h and config.h.fbsd.
dim [Thu, 21 Oct 2010 20:04:28 +0000 (20:04 +0000)]
Regenerate bfd.h and config.h.fbsd.

13 years agoAdd new upstream file to libiberty.
dim [Thu, 21 Oct 2010 20:02:47 +0000 (20:02 +0000)]
Add new upstream file to libiberty.

13 years agoUse one file per line in SRCS= definition, to make insertions and
dim [Thu, 21 Oct 2010 20:01:21 +0000 (20:01 +0000)]
Use one file per line in SRCS= definition, to make insertions and
deletions easier.

13 years agoUpdate binutils VERSION define for 2.17, and create separate
dim [Thu, 21 Oct 2010 19:58:20 +0000 (19:58 +0000)]
Update binutils VERSION define for 2.17, and create separate
TARGET_VENDOR and TARGET_OS defines.  Set TARGET_TUPLE from
BINUTILS_ARCH, TARGET_VENDOR and TARGET_OS.

13 years agoFree opencrypto sessions on suspend, as they also might keep encryption keys.
pjd [Thu, 21 Oct 2010 19:44:28 +0000 (19:44 +0000)]
Free opencrypto sessions on suspend, as they also might keep encryption keys.

13 years agoThe firmware always sets bit 14 and 15, to get the real associd we need
bschmidt [Thu, 21 Oct 2010 19:30:55 +0000 (19:30 +0000)]
The firmware always sets bit 14 and 15, to get the real associd we need
to clear those bits.

MFC after: 1 week

13 years agoInstead of calling return when reaching the end of the assoc notification
bschmidt [Thu, 21 Oct 2010 19:28:52 +0000 (19:28 +0000)]
Instead of calling return when reaching the end of the assoc notification
break the loop instead. We want to run the code after the while loop
to set an associd and capinfo. If we don't do this net80211 will drop
frames because it assumes the node has not yet been associated.

MFC after: 1 week

13 years agoReapply change from r210245. In binutils 2.17, the code in question has
dim [Thu, 21 Oct 2010 19:27:27 +0000 (19:27 +0000)]
Reapply change from r210245.  In binutils 2.17, the code in question has
moved from ld/emultempl/elf32.em to ld/ldlang.c, so apply approximately
the same change as upstream, which has description:

* ldlang.c (lang_insert_orphan): Add __start_<section> symbol assignment
  inside output section statement.  Ensure only one set of symbols per
  output section.
* emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Add non-dollar
  sections before dollar sections.  Correct add_child list insertion.

Taken from upstream git commit 7e01d69a19a8fd079887f26853c8565da15ff340,
with permission to use it under GPLv2 from the author.

13 years ago- When disabling ktracing on a process, free any pending requests that
jhb [Thu, 21 Oct 2010 19:17:40 +0000 (19:17 +0000)]
- When disabling ktracing on a process, free any pending requests that
  may be left.  This fixes a memory leak that can occur when tracing is
  disabled on a process via disabling tracing of a specific file (or if
  an I/O error occurs with the tracefile) if the process's next system
  call is exit().  The trace disabling code clears p_traceflag, so exit1()
  doesn't do any KTRACE-related cleanup leading to the leak.  I chose to
  make the free'ing of pending records synchronous rather than patching
  exit1().
- Move KTRACE-specific logic out of kern_(exec|exit|fork).c and into
  kern_ktrace.c instead.  Make ktrace_mtx private to kern_ktrace.c as a
  result.

MFC after: 1 month

13 years agoMerge ^vendor/binutils/dist@214082 into contrib/binutils.
dim [Thu, 21 Oct 2010 19:11:14 +0000 (19:11 +0000)]
Merge ^vendor/binutils/dist@214082 into contrib/binutils.

13 years agoAdd Cambridge/Google tag since the copyright has been updated.
rwatson [Thu, 21 Oct 2010 19:03:24 +0000 (19:03 +0000)]
Add Cambridge/Google tag since the copyright has been updated.

MFC after: 2 weeks

13 years agoFurther syscall_timing improvements: allow an arbitrary "path" string
rwatson [Thu, 21 Oct 2010 19:01:59 +0000 (19:01 +0000)]
Further syscall_timing improvements: allow an arbitrary "path" string
argument to be passed on the command line, allowing file-related tests
to be pointed at wherever desired.

Sponsored by: Google, Inc.
MFC after: 2 weeks

13 years agoModify the experimental NFS server in a manner analagous to
rmacklem [Thu, 21 Oct 2010 18:49:12 +0000 (18:49 +0000)]
Modify the experimental NFS server in a manner analagous to
r214049 for the regular NFS server, so that it will not do
a VOP_LOOKUP() of ".." when at the root of a file system
when performing a ReaddirPlus RPC.

MFC after: 10 days

13 years agoDocument strtonum()s behavior of setting errno to 0 when no error is found.
bcr [Thu, 21 Oct 2010 18:30:48 +0000 (18:30 +0000)]
Document strtonum()s behavior of setting errno to 0 when no error is found.

PR:             docs/143330
Submitted by:   Efstratios Karatzas (gpf dot kira at gmail dot com)
Discussed with: ru@
MFC after:      7 days

13 years agoSync with OpenBSD rev. 1.13:
bcr [Thu, 21 Oct 2010 18:21:19 +0000 (18:21 +0000)]
Sync with OpenBSD rev. 1.13:
strtonum does not require limits.h

Obtained from:  OpenBSD
Discussed with: ru@
MFC after:      5 days

13 years agoClarify a misleading comment. The test in pci_reserve_map() was meant to
jhb [Thu, 21 Oct 2010 17:46:23 +0000 (17:46 +0000)]
Clarify a misleading comment.  The test in pci_reserve_map() was meant to
ignore BARs that are invalid due to having a size of zero, not to ignore
BARs with an existing base of zero.  While here, reorganize the code
slightly to make the intent clearer.

Reported by: avg
MFC after: 1 week

13 years agoFix bug in recent syscall_timing change: measure the number of iterations
rwatson [Thu, 21 Oct 2010 17:35:08 +0000 (17:35 +0000)]
Fix bug in recent syscall_timing change: measure the number of iterations
each loop, rather than once up front.  The distinction is unimportant
when doing a fix iteration count, but when using a timer, it should vary.

Sponsored by: Google, Inc.
MFC after: 2 weeks

13 years ago- Make 'vm_refcnt' volatile so that compilers won't be tempted to treat
jhb [Thu, 21 Oct 2010 17:29:32 +0000 (17:29 +0000)]
- Make 'vm_refcnt' volatile so that compilers won't be tempted to treat
  its value as a loop invariant.  Currently this is a no-op because
  'atomic_cmpset_int()' clobbers all memory on current architectures.
- Use atomic_fetchadd_int() instead of an atomic_cmpset_int() loop to drop
  a reference in vmspace_free().

Reviewed by: alc
MFC after: 1 month

13 years agoLeft over from prior patch removed.
imp [Thu, 21 Oct 2010 17:29:18 +0000 (17:29 +0000)]
Left over from prior patch removed.

Submitted by: John Hixon
PR: 151442 (but the patch was backwards there)

13 years agoFurther enhancements to syscall_timing:
rwatson [Thu, 21 Oct 2010 17:27:39 +0000 (17:27 +0000)]
Further enhancements to syscall_timing:

- Use getopt rather than hand-parsed arguments
- Allow iterations to be specified and/or a new number of seconds bound
  on the number of iterations
- Fix printout of timer resolution
- Add new tests, such as TCP and UDP socket creation, and open/read/close
  of /dev/zero and /dev/null.

Sponsored by: Google, Inc.
MFC after: 2 weeks

13 years agoThis patch will only list components if the directory exists. The
imp [Thu, 21 Oct 2010 17:23:48 +0000 (17:23 +0000)]
This patch will only list components if the directory exists. The
directory exist on PC-BSD but not FreeBSD, so an extra check is made.

Submitted by: John Hixson
PR: 151461

13 years agoDocument possibility to read from stdin.
glebius [Thu, 21 Oct 2010 17:23:09 +0000 (17:23 +0000)]
Document possibility to read from stdin.

13 years agoThis is an updated patch to the last patch to do this which fixes a
imp [Thu, 21 Oct 2010 17:20:37 +0000 (17:20 +0000)]
This is an updated patch to the last patch to do this which fixes a
local variable issue. This patch decompresses compressed images to the
stdout when writing to a device to avoid running out of space issues.

Submitted by: John Hixson
Pr: 151049

13 years agoThis small patch updates the "geli setkey" flags pc-sysinstall uses
imp [Thu, 21 Oct 2010 17:14:44 +0000 (17:14 +0000)]
This small patch updates the "geli setkey" flags pc-sysinstall uses
when saving a users passphrase, to make it work in HEAD with recent
geli improvements.

Submitted by: Kris Moore
PR: 151002

13 years agoMake it possible to read input from stdin.
glebius [Thu, 21 Oct 2010 17:05:15 +0000 (17:05 +0000)]
Make it possible to read input from stdin.

Without this change I don't see a way to
unpack a multivolume archive without wasting
disk space for a temporary file.

13 years agoReshuffle SIOCGIFCONF32 handler from r155224.
pluknet [Thu, 21 Oct 2010 16:20:48 +0000 (16:20 +0000)]
Reshuffle SIOCGIFCONF32 handler from r155224.

- move all the chunks into one file, which allows to hide SIOCGIFCONF32
  global definition as well.
- replace __amd64__ with proper COMPAT_FREEBSD32 around.
- handle 32bit capacity before going into the handler itself instead of
  doing internal 32bit specific changes within it (e.g. as it's done for
  SIOCGDEFIFACE32_IN6).
- use explicitely sized types for ABI compat.

Approved by: kib (mentor)
MFC after: 2 weeks

13 years agoImprove the structure and implementation of the syscall_timing
rwatson [Thu, 21 Oct 2010 16:08:31 +0000 (16:08 +0000)]
Improve the structure and implementation of the syscall_timing
microbenchmark suite:

- Use common benchmark_start/benchmark_stop routines to simplify
  individual benchmarks.
- Add a central table of tests with names, where new tests can be
  hooked in easily.
- Add new benchmarks for dup, shm_open, shm_open + fstat, fork,
  vfork, vfork + exec, chroot, setuid.
- Accept a number of loops, not just a number of iterations.
- Report results more usefully in a table.

Sponsored by: Google, Inc.
MFC after: 2 weeks

13 years agoFix error handling logic of pututxline(3).
ed [Thu, 21 Oct 2010 15:10:35 +0000 (15:10 +0000)]
Fix error handling logic of pututxline(3).

Instead of only returning NULL when the entry is invalid and can't be
matched against the current database, also return it when it cannot open
the log files properly.

13 years agoFix a bug introduced in r213067 where we use authentication key before
pjd [Thu, 21 Oct 2010 12:58:26 +0000 (12:58 +0000)]
Fix a bug introduced in r213067 where we use authentication key before
initializing it.

13 years agomdoc: make pages render with mandoc
uqs [Thu, 21 Oct 2010 12:27:13 +0000 (12:27 +0000)]
mdoc: make pages render with mandoc

It's a bit more pedantic regarding .Bl list elements. This has an added
benefit of unbreaking the ipfw(8) manpage, where groff was silently
skipping one list element.

13 years agoEnable copyback and system PD states.
pluknet [Thu, 21 Oct 2010 10:46:18 +0000 (10:46 +0000)]
Enable copyback and system PD states.

Reviewed by: jhb
Approved by: avg (mentor)
MFC after: 1 week
X-MFC-After: r214130

13 years agoUpdate PD state firmware definitions: add copyback, system.
pluknet [Thu, 21 Oct 2010 10:38:52 +0000 (10:38 +0000)]
Update PD state firmware definitions: add copyback, system.

Reviewed by: jhb
Approved by: avg (mentor)
MFC after: 1 week

13 years agoRemove code duplication by introducing static gctl_param_add() function which
pjd [Thu, 21 Oct 2010 10:38:14 +0000 (10:38 +0000)]
Remove code duplication by introducing static gctl_param_add() function which
is now used by both gctl_ro_param() and gctl_rw_param().

13 years ago- Simplify gctl_get_handle() a bit.
pjd [Thu, 21 Oct 2010 10:36:36 +0000 (10:36 +0000)]
- Simplify gctl_get_handle() a bit.
- Prefer 'unsigned int' over 'u_int' in userland code.

13 years agoIn syscall_module_handler(): all switch branches return, remove
delphij [Thu, 21 Oct 2010 08:57:25 +0000 (08:57 +0000)]
In syscall_module_handler(): all switch branches return, remove
unreached code as pointed out in a Chinese forum [1].

[1] http://www.freebsdchina.org/forum/viewtopic.php?t=50619

Pointed out by: btw616 <btw s qq com>
MFC after: 1 month

13 years agoFix printing of files located on ZFS filesystem with an st_dev or
edwin [Thu, 21 Oct 2010 06:52:14 +0000 (06:52 +0000)]
Fix printing of files located on ZFS filesystem with an st_dev or
st_ino larger than 2**31.

From the PR:

   Printing from a ZFS filesystem using 'lp' fails and returns an
   email reporting "Your printer job was not printed because it was
   not linked to the original file".

   In order to protect against files being switched when files
   are printed using 'lp' or 'lpr -s', the st_dev and st_ino
   values for the original file are saved by lpr and verified
   by lpd before the file is printed. Unfortunately, lpr prints
   both values using '%d' (although both fields are unsigned)
   and lpd(8) assumes a string of decimal digits.

   ZFS (at least) generates st_dev values greater than 2^31-1,
   resulting in negative values being printed - which lpd cannot
   parse, leading it to report that the file has been switched.

   A similar problem would occur with large inode numbers.

   How-To-Repeat:

   Find a file with either st_dev or st_ino greater than 2^31-1
   (stat(1) will report both numbers) and print it with 'lpq -s'.
   This should generate an email reporting that the file could
   not be printed because it was not linked to the original file

PR: bin/151567
Submitted by: Peter Jeremy <Peter.Jeremy@alcatel-lucent.com>
MFC after: 1 week

13 years agoUpdate PCI power management registers per PCI Bus Power Management Interface
jkim [Wed, 20 Oct 2010 23:41:16 +0000 (23:41 +0000)]
Update PCI power management registers per PCI Bus Power Management Interface
Specification Rev. 1.2.  Rename pp_pcmcsr field of PM capabilities to pp_bse
to avoid further confusions and adjust some comments accordingly.  The real
PMCSR (Power Management Control/Status Register) is PCIR_POWER_STATUS and
it is actually BSE (PCI-to-PCI Bridge Support Extensions) register.

13 years agoUse closefrom(2) instead of close(2) in a loop.
pjd [Wed, 20 Oct 2010 21:10:01 +0000 (21:10 +0000)]
Use closefrom(2) instead of close(2) in a loop.

MFC after: 1 week

13 years agoBring in geli suspend/resume functionality (finally).
pjd [Wed, 20 Oct 2010 20:50:55 +0000 (20:50 +0000)]
Bring in geli suspend/resume functionality (finally).

Before this change if you wanted to suspend your laptop and be sure that your
encryption keys are safe, you had to stop all processes that use file system
stored on encrypted device, unmount the file system and detach geli provider.

This isn't very handy. If you are a lucky user of a laptop where suspend/resume
actually works with FreeBSD (I'm not!) you most likely want to suspend your
laptop, because you don't want to start everything over again when you turn
your laptop back on.

And this is where geli suspend/resume steps in. When you execute:

# geli suspend -a

geli will wait for all in-flight I/O requests, suspend new I/O requests, remove
all geli sensitive data from the kernel memory (like encryption keys) and will
wait for either 'geli resume' or 'geli detach'.

Now with no keys in memory you can suspend your laptop without stopping any
processes or unmounting any file systems.

When you resume your laptop you have to resume geli devices using 'geli resume'
command. You need to provide your passphrase, etc. again so the keys can be
restored and suspended I/O requests released.

Of course you need to remember that 'geli suspend' won't clear file system
cache and other places where data from your geli-encrypted file system might be
present. But to get rid of those stopping processes and unmounting file system
won't help either - you have to turn your laptop off. Be warned.

Also note, that suspending geli device which contains file system with geli
utility (or anything used by 'geli resume') is not very good idea, as you won't
be able to resume it - when you execute geli(8), the kernel will try to read it
and this read I/O request will be suspended.

13 years ago- Add missing comments.
pjd [Wed, 20 Oct 2010 20:01:45 +0000 (20:01 +0000)]
- Add missing comments.
- Make a comment consistent with others.

13 years agoGet rid of hand-rolled closefrom(3).
ed [Wed, 20 Oct 2010 19:53:29 +0000 (19:53 +0000)]
Get rid of hand-rolled closefrom(3).

13 years agoCorrect typos.
pjd [Wed, 20 Oct 2010 19:52:27 +0000 (19:52 +0000)]
Correct typos.

13 years agoIntroduce a new tunable 'hw.pci.do_power_suspend'. This tunable lets you
jkim [Wed, 20 Oct 2010 16:47:09 +0000 (16:47 +0000)]
Introduce a new tunable 'hw.pci.do_power_suspend'.  This tunable lets you
avoid PCI power state transition from D0 to D3 for suspending case.  Default
is 1 or enabled.

13 years agoDo not apply do_power_resume for suspending P2P bridge as we did in r214064.
jkim [Wed, 20 Oct 2010 16:40:14 +0000 (16:40 +0000)]
Do not apply do_power_resume for suspending P2P bridge as we did in r214064.

13 years agoNetwork driver updates
jchandra [Wed, 20 Oct 2010 09:50:11 +0000 (09:50 +0000)]
Network driver updates
- Fix network driver issue on a XLS eval board (major# 8).
- Fix issue uncovered by r213475 in check for XGMII

Submitted by: Sriram Gorti (srgorti at netlogicmicro dot com)

13 years agoOn uniprocessor, warn and fixup hardware cpu mask if more than on CPU
jchandra [Wed, 20 Oct 2010 09:41:36 +0000 (09:41 +0000)]
On uniprocessor, warn and fixup hardware cpu mask if more than on CPU
is enabled by the bootloader.

13 years agoRemove setpgid() call before executing child process.
ed [Wed, 20 Oct 2010 09:35:20 +0000 (09:35 +0000)]
Remove setpgid() call before executing child process.

Using a separate process group here is bad, since (for example) job
control in the TTY layer prevents interaction with the TTY, causing the
child process to hang.

Mentioned on: current@
MFC after: 2 weeks

13 years agoWorkaround strange situation when EDMA_RESQIP register returns zero instead
mav [Wed, 20 Oct 2010 07:47:31 +0000 (07:47 +0000)]
Workaround strange situation when EDMA_RESQIP register returns zero instead
of proper value. It caused bunch of "EMPTY CRPB" messages and potentially
may cause premature requests completion, which could cause data corruption.
For most cases it seems enough to just reread register to get proper value.
To protect against worse cases - erase processed queue entries with
impossible values and ignore them if problem still happen.

13 years agoSome style cleanup:
mav [Wed, 20 Oct 2010 07:22:34 +0000 (07:22 +0000)]
Some style cleanup:
- remove commented debugging code;
- wrap long lines.

13 years agocatch up manual pages with rename of vm_page_sleep_busy to vm_page_sleep_if_busy
avg [Wed, 20 Oct 2010 06:29:11 +0000 (06:29 +0000)]
catch up manual pages with rename of vm_page_sleep_busy to vm_page_sleep_if_busy

Suggested by: alc
MFC after: 4 days

13 years agoVOP_GETPAGES.9: clarify and correct description of parameters and requirements
avg [Wed, 20 Oct 2010 05:57:54 +0000 (05:57 +0000)]
VOP_GETPAGES.9: clarify and correct description of parameters and requirements

In cooperation with alc and kib, who provided valuable insights and
suggestions.

Reviewed by: alc, kib (earlier version)
MFC after: 4 days

13 years agoPG_BUSY -> VPO_BUSY, PG_WANTED -> VPO_WANTED in manual pages and comments
avg [Wed, 20 Oct 2010 05:17:23 +0000 (05:17 +0000)]
PG_BUSY -> VPO_BUSY, PG_WANTED -> VPO_WANTED in manual pages and comments

Reviewed by: alc
MFC after: 4 days

13 years agoo Put missed w/space back.
maxim [Wed, 20 Oct 2010 04:53:03 +0000 (04:53 +0000)]
o Put missed w/space back.

Submitted by: Garrett Cooper
MFC after: 3 days

13 years agoRevert revision 214007, I realized that MySQL wants to resolve
davidxu [Wed, 20 Oct 2010 02:34:02 +0000 (02:34 +0000)]
Revert revision 214007, I realized that MySQL wants to resolve
a silly rwlock deadlock problem, the deadlock is caused by writer
waiters, if a thread has already locked a reader lock, and wants to
acquire another reader lock, it will be blocked by writer waiters,
but we had already fixed it years ago.

13 years ago- Don't include sx.h, it is not needed.
davidxu [Wed, 20 Oct 2010 00:41:38 +0000 (00:41 +0000)]
- Don't include sx.h, it is not needed.
- Check NULL pointer, move timeout calculation code outside of
  process lock.

13 years agoCorrect handling of shared interrupt in sis_intr(). r212116 incorrectly
yongari [Wed, 20 Oct 2010 00:19:25 +0000 (00:19 +0000)]
Correct handling of shared interrupt in sis_intr(). r212116 incorrectly
released a drver lock for shared interrupt case such that it caused
panic. While I'm here check whether driver is still running before
serving TX/RX handler.

Reported by: Jerahmy Pocott < QUAKENET1 <> optusnet dot com dot au >
Tested by: Jerahmy Pocott < QUAKENET1 <> optusnet dot com dot au >
MFC after: 3 days

13 years agoAdd workaround for BCM5906 controller silicon bug. If device
yongari [Tue, 19 Oct 2010 23:04:23 +0000 (23:04 +0000)]
Add workaround for BCM5906 controller silicon bug. If device
receive two back-to-back send BDs with less than or equal to 8
total bytes then the device may hang. The two back-to-back send
BDs must be in the same frame for this failure to occur.
Thanks to davidch for detailed errata information.

Reviewed by: davidch

13 years agoImport the binutils-2_17-branch from the sourceware CVS repository,
dim [Tue, 19 Oct 2010 21:13:25 +0000 (21:13 +0000)]
Import the binutils-2_17-branch from the sourceware CVS repository,
exactly as it was on Tue, 7 Aug 2007 00:00:13 +0000.

Corresponds to git commit b458c361f01f7a257f897d0961d0a379ee999aaa.

This is currently (and most likely forever :) the last commit on this
branch.

13 years agoSync: merge r213992 through r214076 from ^/head.
dim [Tue, 19 Oct 2010 21:02:05 +0000 (21:02 +0000)]
Sync: merge r213992 through r214076 from ^/head.

13 years agoImprove the Xen para-virtualized device infrastructure of FreeBSD:
gibbs [Tue, 19 Oct 2010 20:53:30 +0000 (20:53 +0000)]
Improve the Xen para-virtualized device infrastructure of FreeBSD:

 o Add support for backend devices (e.g. blkback)
 o Implement extensions to the Xen para-virtualized block API to allow
   for larger and more outstanding I/Os.
 o Import a completely rewritten block back driver with support for fronting
   I/O to both raw devices and files.
 o General cleanup and documentation of the XenBus and XenStore support code.
 o Robustness and performance updates for the block front driver.
 o Fixes to the netfront driver.

Sponsored by: Spectra Logic Corporation

sys/xen/xenbus/init.txt:
Deleted: This file explains the Linux method for XenBus device
enumeration and thus does not apply to FreeBSD's NewBus approach.

sys/xen/xenbus/xenbus_probe_backend.c:
Deleted: Linux version of backend XenBus service routines.  It
was never ported to FreeBSD.  See xenbusb.c, xenbusb_if.m,
xenbusb_front.c xenbusb_back.c for details of FreeBSD's XenBus
support.

sys/xen/xenbus/xenbusvar.h:
sys/xen/xenbus/xenbus_xs.c:
sys/xen/xenbus/xenbus_comms.c:
sys/xen/xenbus/xenbus_comms.h:
sys/xen/xenstore/xenstorevar.h:
sys/xen/xenstore/xenstore.c:
Split XenStore into its own tree.  XenBus is a software layer built
on top of XenStore.  The old arrangement and the naming of some
structures and functions blurred these lines making it difficult to
discern what services are provided by which layer and at what times
these services are available (e.g. during system startup and shutdown).

sys/xen/xenbus/xenbus_client.c:
sys/xen/xenbus/xenbus.c:
sys/xen/xenbus/xenbus_probe.c:
sys/xen/xenbus/xenbusb.c:
sys/xen/xenbus/xenbusb.h:
Split up XenBus code into methods available for use by client
drivers (xenbus.c) and code used by the XenBus "bus code" to
enumerate, attach, detach, and service bus drivers.

sys/xen/reboot.c:
sys/dev/xen/control/control.c:
Add a XenBus front driver for handling shutdown, reboot, suspend, and
resume events published in the XenStore.  Move all PV suspend/reboot
support from reboot.c into this driver.

sys/xen/blkif.h:
New file from Xen vendor with macros and structures used by
a block back driver to service requests from a VM running a
different ABI (e.g. amd64 back with i386 front).

sys/conf/files:
Adjust kernel build spec for new XenBus/XenStore layout and added
Xen functionality.

sys/dev/xen/balloon/balloon.c:
sys/dev/xen/netfront/netfront.c:
sys/dev/xen/blkfront/blkfront.c:
sys/xen/xenbus/...
sys/xen/xenstore/...
o Rename XenStore APIs and structures from xenbus_* to xs_*.
o Adjust to use of M_XENBUS and M_XENSTORE malloc types for allocation
  of objects returned by these APIs.
o Adjust for changes in the bus interface for Xen drivers.

sys/xen/xenbus/...
sys/xen/xenstore/...
Add Doxygen comments for these interfaces and the code that
implements them.

sys/dev/xen/blkback/blkback.c:
o Rewrite the Block Back driver to attach properly via newbus,
  operate correctly in both PV and HVM mode regardless of domain
  (e.g. can be in a DOM other than 0), and to deal with the latest
  metadata available in XenStore for block devices.

o Allow users to specify a file as a backend to blkback, in addition
  to character devices.  Use the namei lookup of the backend path
  to automatically configure, based on file type, the appropriate
  backend method.

The current implementation is limited to a single outstanding I/O
at a time to file backed storage.

sys/dev/xen/blkback/blkback.c:
sys/xen/interface/io/blkif.h:
sys/xen/blkif.h:
sys/dev/xen/blkfront/blkfront.c:
sys/dev/xen/blkfront/block.h:
Extend the Xen blkif API: Negotiable request size and number of
requests.

This change extends the information recorded in the XenStore
allowing block front/back devices to negotiate for optimal I/O
parameters.  This has been achieved without sacrificing backward
compatibility with drivers that are unaware of these protocol
enhancements.  The extensions center around the connection protocol
which now includes these additions:

o The back-end device publishes its maximum supported values for,
  request I/O size, the number of page segments that can be
  associated with a request, the maximum number of requests that
  can be concurrently active, and the maximum number of pages that
  can be in the shared request ring.  These values are published
  before the back-end enters the XenbusStateInitWait state.

o The front-end waits for the back-end to enter either the InitWait
  or Initialize state.  At this point, the front end limits it's
  own capabilities to the lesser of the values it finds published
  by the backend, it's own maximums, or, should any back-end data
  be missing in the store, the values supported by the original
  protocol.  It then initializes it's internal data structures
  including allocation of the shared ring, publishes its maximum
  capabilities to the XenStore and transitions to the Initialized
  state.

o The back-end waits for the front-end to enter the Initalized
  state.  At this point, the back end limits it's own capabilities
  to the lesser of the values it finds published by the frontend,
  it's own maximums, or, should any front-end data be missing in
  the store, the values supported by the original protocol.  It
  then initializes it's internal data structures, attaches to the
  shared ring and transitions to the Connected state.

o The front-end waits for the back-end to enter the Connnected
  state, transitions itself to the connected state, and can
  commence I/O.

Although an updated front-end driver must be aware of the back-end's
InitWait state, the back-end has been coded such that it can
tolerate a front-end that skips this step and transitions directly
to the Initialized state without waiting for the back-end.

sys/xen/interface/io/blkif.h:
o Increase BLKIF_MAX_SEGMENTS_PER_REQUEST to 255.  This is
  the maximum number possible without changing the blkif
  request header structure (nr_segs is a uint8_t).

o Add two new constants:
  BLKIF_MAX_SEGMENTS_PER_HEADER_BLOCK, and
  BLKIF_MAX_SEGMENTS_PER_SEGMENT_BLOCK.  These respectively
  indicate the number of segments that can fit in the first
  ring-buffer entry of a request, and for each subsequent
  (sg element only) ring-buffer entry associated with the
          "header" ring-buffer entry of the request.

o Add the blkif_request_segment_t typedef for segment
  elements.

o Add the BLKRING_GET_SG_REQUEST() macro which wraps the
  RING_GET_REQUEST() macro and returns a properly cast
  pointer to an array of blkif_request_segment_ts.

o Add the BLKIF_SEGS_TO_BLOCKS() macro which calculates the
  number of ring entries that will be consumed by a blkif
  request with the given number of segments.

sys/xen/blkif.h:
o Update for changes in interface/io/blkif.h macros.

o Update the BLKIF_MAX_RING_REQUESTS() macro to take the
  ring size as an argument to allow this calculation on
  multi-page rings.

o Add a companion macro to BLKIF_MAX_RING_REQUESTS(),
  BLKIF_RING_PAGES().  This macro determines the number of
  ring pages required in order to support a ring with the
  supplied number of request blocks.

sys/dev/xen/blkback/blkback.c:
sys/dev/xen/blkfront/blkfront.c:
sys/dev/xen/blkfront/block.h:
o Negotiate with the other-end with the following limits:
      Reqeust Size:   MAXPHYS
      Max Segments:   (MAXPHYS/PAGE_SIZE) + 1
      Max Requests:   256
      Max Ring Pages: Sufficient to support Max Requests with
                      Max Segments.

o Dynamically allocate request pools and segemnts-per-request.

o Update ring allocation/attachment code to support a
  multi-page shared ring.

o Update routines that access the shared ring to handle
  multi-block requests.

sys/dev/xen/blkfront/blkfront.c:
o Track blkfront allocations in a blkfront driver specific
  malloc pool.

o Strip out XenStore transaction retry logic in the
  connection code.  Transactions only need to be used when
  the update to multiple XenStore nodes must be atomic.
  That is not the case here.

o Fully disable blkif_resume() until it can be fixed
  properly (it didn't work before this change).

o Destroy bus-dma objects during device instance tear-down.

o Properly handle backend devices with powef-of-2 sector
  sizes larger than 512b.

sys/dev/xen/blkback/blkback.c:
Advertise support for and implement the BLKIF_OP_WRITE_BARRIER
and BLKIF_OP_FLUSH_DISKCACHE blkif opcodes using BIO_FLUSH and
the BIO_ORDERED attribute of bios.

sys/dev/xen/blkfront/blkfront.c:
sys/dev/xen/blkfront/block.h:
Fix various bugs in blkfront.

       o gnttab_alloc_grant_references() returns 0 for success and
 non-zero for failure.  The check for < 0 is a leftover
 Linuxism.

       o When we negotiate with blkback and have to reduce some of our
 capabilities, print out the original and reduced capability before
 changing the local capability.  So the user now gets the correct
 information.

o Fix blkif_restart_queue_callback() formatting.  Make sure we hold
  the mutex in that function before calling xb_startio().

o Fix a couple of KASSERT()s.

        o Fix a check in the xb_remove_* macro to be a little more specific.

sys/xen/gnttab.h:
sys/xen/gnttab.c:
Define GNTTAB_LIST_END publicly as GRANT_REF_INVALID.

sys/dev/xen/netfront/netfront.c:
Use GRANT_REF_INVALID instead of driver private definitions of the
same constant.

sys/xen/gnttab.h:
sys/xen/gnttab.c:
Add the gnttab_end_foreign_access_references() API.

This API allows a client to batch the release of an array of grant
references, instead of coding a private for loop.  The implementation
takes advantage of this batching to reduce lock overhead to one
acquisition and release per-batch instead of per-freed grant reference.

While here, reduce the duration the gnttab_list_lock is held during
gnttab_free_grant_references() operations.  The search to find the
tail of the incoming free list does not rely on global state and so
can be performed without holding the lock.

sys/dev/xen/xenpci/evtchn.c:
sys/dev/xen/evtchn/evtchn.c:
sys/xen/xen_intr.h:
o Implement the bind_interdomain_evtchn_to_irqhandler API for HVM mode.
  This allows an HVM domain to serve back end devices to other domains.
  This API is already implemented for PV mode.

o Synchronize the API between HVM and PV.

sys/dev/xen/xenpci/xenpci.c:
o Scan the full region of CPUID space in which the Xen VMM interface
  may be implemented.  On systems using SuSE as a Dom0 where the
  Viridian API is also exported, the VMM interface is above the region
  we used to search.

o Pass through bus_alloc_resource() calls so that XenBus drivers
  attaching on an HVM system can allocate unused physical address
  space from the nexus.  The block back driver makes use of this
  facility.

sys/i386/xen/xen_machdep.c:
Use the correct type for accessing the statically mapped xenstore
metadata.

sys/xen/interface/hvm/params.h:
sys/xen/xenstore/xenstore.c:
Move hvm_get_parameter() to the correct global header file instead
of as a private method to the XenStore.

sys/xen/interface/io/protocols.h:
Sync with vendor.

sys/xeninterface/io/ring.h:
Add macro for calculating the number of ring pages needed for an N
deep ring.

To avoid duplication within the macros, create and use the new
__RING_HEADER_SIZE() macro.  This macro calculates the size of the
ring book keeping struct (producer/consumer indexes, etc.) that
resides at the head of the ring.

Add the __RING_PAGES() macro which calculates the number of shared
ring pages required to support a ring with the given number of
requests.

These APIs are used to support the multi-page ring version of the
Xen block API.

sys/xeninterface/io/xenbus.h:
Add Comments.

sys/xen/xenbus/...
o Refactor the FreeBSD XenBus support code to allow for both front and
  backend device attachments.

o Make use of new config_intr_hook capabilities to allow front and back
  devices to be probed/attached in parallel.

o Fix bugs in probe/attach state machine that could cause the system to
  hang when confronted with a failure either in the local domain or in
  a remote domain to which one of our driver instances is attaching.

o Publish all required state to the XenStore on device detach and
  failure.  The majority of the missing functionality was for serving
  as a back end since the typical "hot-plug" scripts in Dom0 don't
  handle the case of cleaning up for a "service domain" that is not
  itself.

o Add dynamic sysctl nodes exposing the generic ivars of
  XenBus devices.

o Add doxygen style comments to the majority of the code.

o Cleanup types, formatting, etc.

sys/xen/xenbus/xenbusb.c:
Common code used by both front and back XenBus busses.

sys/xen/xenbus/xenbusb_if.m:
Method definitions for a XenBus bus.

sys/xen/xenbus/xenbusb_front.c:
sys/xen/xenbus/xenbusb_back.c:
XenBus bus specialization for front and back devices.

MFC after: 1 month

13 years agoRemove undocumented and stale debug.acpi.do_powerstate tunable. It was
jkim [Tue, 19 Oct 2010 20:38:21 +0000 (20:38 +0000)]
Remove undocumented and stale debug.acpi.do_powerstate tunable.  It was
added with hw.pci.do_powerstate but the PCI version was splitted into two
separate tunables later and now this is completely stale.  To make it worse,
PCI devices enumerated in ACPI tree ignore this tunable as it is handled by
a function in acpi_pci.c instead.

13 years agoUpdate the BFD and binutils version defines.
dim [Tue, 19 Oct 2010 20:17:17 +0000 (20:17 +0000)]
Update the BFD and binutils version defines.

13 years agoMerge ^vendor/binutils/dist@214033 into contrib/binutils.
dim [Tue, 19 Oct 2010 20:14:32 +0000 (20:14 +0000)]
Merge ^vendor/binutils/dist@214033 into contrib/binutils.

The change made to bfd/elf.c in upstream revision 1.217.4.3 (which was a
revert of an earlier change), caused objcopy on powerpc to fail to copy
debug info from kernel modules.  This had to be fixed by applying the
diff from upstream revision 1.243 on top of it.

13 years agoStop disallowing device nodes to be passed to camcontrol(8) since libcam
brucec [Tue, 19 Oct 2010 20:05:25 +0000 (20:05 +0000)]
Stop disallowing device nodes to be passed to camcontrol(8) since libcam
already allows both device names and nodes to be specified.

Reviewed by: avg