197306 Commits

Author SHA1 Message Date
mav
cc6cca3f1e MFC r272748:
Implement software (mode page) and hardware (config) write protection.
2014-10-20 07:34:37 +00:00
mav
29253fce18 MFC r272734:
Add support for WRITE ATOMIC (16) command and report SBC-4 compliance.

Atomic writes are only supported for ZVOLs in "dev" mode.  In other cases
atomicity can not be guarantied and so the command is blocked.
2014-10-20 07:33:41 +00:00
mav
f7c3270824 MFC r272613:
Add support for MaxBurstLength and Expected Data transfer Length parameters.

Before this change target could send R2T request for write transfer of any
size, that could violate iSCSI RFC, which allows initiator to limit maximum
R2T size by negotiating MaxBurstLength connection parameter.

Also report an error in case of write underflow, when initiator provides
less data than initiator expects.  Previously in such case our target
sent R2T request for non-existing data, violating the RFC, and confusing
some initiators.  SCSI specs don't explicitly define how write underflows
should be handled and there are different oppinions, but reporting error
is hopefully better then violating iSCSI RFC with unpredictable results.
2014-10-20 07:32:33 +00:00
mav
5b5dd1452a MFC r272597: Fix length of Extended INQUIRY Data VPD page. 2014-10-20 07:31:23 +00:00
mav
df2c4c17fc MFC r271718 (by bdrewery): Correct a comment 2014-10-20 07:29:43 +00:00
mav
072d9b12ca MFC r271395 (by trasz):
Make sure we handle less than zero timeouts in iSCSI initiator and target
in a reasonable way.

Sponsored by:	The FreeBSD Foundation
2014-10-20 07:28:18 +00:00
yongari
7aaab4b0ed MFC r271073:
Do not blindly announce 1000baseT half-duplex capability in
  autonegotiation.  Some controllers like cgem(4) do not support
  half-duplex at gigabit speeds.
2014-10-20 07:25:57 +00:00
rpaulo
1a4e934f15 MFC r271975:
Improvements to asmc(4):

 1. changed the code so that 2**16 keys are supported
 2. changed the number of possible fans in a system from 2 to 6
 3. added write support for some fan sysctls
 4. added a new sysctl which shows the ID of the fan
 5. added four more apple models with their temperature keys
 6. changed the maxnumber of temperature keys from 36 to 80
 7. replaced several fixed buf sizes to sizeof buf

 Obtained from:	     Denis Ahrens denis at h3q.com
2014-10-20 04:42:28 +00:00
emaste
ae8c60e6aa MFC r273219: Do nothing in vt_upgrade if there is no vt driver
Previously, if no drivers attached at boot we would panic with
  "vtbuf_fill_locked begin.tp_row 0 must be < screen height 0".

PR:		192248
2014-10-20 01:01:55 +00:00
emaste
f22cd31080 MFC r273178: Update vt(4) for UEFI defaults and special keys
vt(4) is the default console for UEFI boot [1], and the bitmapped
  kern.vt.spclkeys sysctl has been replaced with individual kern.vt.kbd_*
  enable sysctls.

PR:		193710
2014-10-20 00:22:08 +00:00
ache
537ec842e6 MFC r272562,r272678,r272679
1) Fix the case we have less arguments for format string than we expected.
2) Return error on unsupported format specs.
(both according to POSIX)
3) For %Z format, understand "UTC" name too.

PR:     93197
2014-10-19 21:16:24 +00:00
hrs
525f95cd64 MFC r273285:
- Honer MK_KERBEROS for Heimdal rc.d scripts.
- Add rc.c/kerberos to OLD_FILES.
2014-10-19 20:54:04 +00:00
antoine
3da91303cf Restore ABI compatibility with 10.0-RELEASE, so that stable/10 users can use
official freebsd packages
2014-10-19 12:11:25 +00:00
tuexen
84b9f624de MFC 273168:
Fix the reported streams in a SCTP_STREAM_RESET_EVENT, if a
sent incoming stream reset request was responded with failed
or denied.
Thanks to Peter Bostroem from Google for reporting the issue.
2014-10-19 11:31:23 +00:00
mav
7f2e56c17d MFC r273143: Remove setting BIO_DONE flag for BIOs that have done() method.
This fixes use-after-free, caused by geom_disk, completing same BIO twice
to save extra allocation, and getting BIO_DONE set after the first.
2014-10-19 08:47:27 +00:00
pfg
f2b9523abe MFC r272958, r273006:
ddb: space/tab fixes and ANSI-fy function declarations.

No functional change.
2014-10-18 19:22:59 +00:00
kib
fafa0f4166 MFC r272952:
Do not set IN_ACCESS flag for read-only mounts.
2014-10-18 15:31:53 +00:00
kib
08803fec5e MFC r272534:
Add IO_RANGELOCKED flag for vn_rdwr(9), which specifies that vnode is
not locked, but range is.
2014-10-18 15:28:01 +00:00
hselasky
09684679cf MFC r273135:
Update the OFED Linux compatibility layer and
Mellanox hardware driver(s):

- Properly name an inclusion guard
- Fix compile warnings regarding unsigned enums
- Add two new sysctl nodes
- Remove all empty linux header files
- Make an error printout more verbose
- Use "mod_delayed_work()" instead of
  cancelling and starting a timeout.
- Implement more Linux scatterlist
  functions.

Sponsored by:	Mellanox Technologies
2014-10-18 07:07:34 +00:00
adrian
31d0e366f3 MFC r273112: Set the DROP_EN bit before the RX queue is brought up and active.
He noticed issues setting this bit in SRRCTL after the queue was up,
so doing it from the sysctl handler isn't enough and may not actually
work correctly.

This commit doesn't remove the sysctl path or try to change its
behaviour.  I'll talk with others about how to finish fixing that
before I tackle that.

PR:           kern/194311
Submitted by: luigi
MFC after:    3 days
Sponsored by: Norse Corp, Inc
2014-10-18 01:02:30 +00:00
jhb
c818e625dc MFC 268369,268817,272771,272772:
Rewrite timeout(9) to be callout(9)-centric instead.  Move the description
of timeout(9) to the end and mark it prominently as deprecated.  Document
somewhat how times are specified for the 'sbt' variants.  Better explain
how using callout_init_*() to associate a lock with a callout resolves
common races.
2014-10-17 20:03:01 +00:00
jhb
8376a78d70 MFC 272668:
Properly set the timeout in a query_state.  The global query_timeout
configuration value is an integer count of seconds, it is not a timeval.
Using memcpy() to copy a timeval from it put garbage into the tv_usec
field.

PR:		194025
2014-10-17 19:55:12 +00:00
jhb
c8f54eb474 MFC 272449:
Require p_cansched() for changing a process' protection status via
procctl() rather than p_cansee().
2014-10-17 19:28:21 +00:00
emaste
9ea4006705 MFC r257302 by rea:
binutils/bfd: fix printf-like format strings for "bfd *" arguments

  There is a special format argument '%B' that directly handles values
  of type 'bfd *', they must be used instead of '%s'.  Manifestations
  of this bug can be seen in ld(1) error messages, for example,
    http://lists.freebsd.org/pipermail/freebsd-current/2013-August/043580.html
    http://lists.freebsd.org/pipermail/freebsd-current/2013-October/045404.html
2014-10-17 16:23:36 +00:00
jhb
b183e8b3c4 MFC 272182:
Don't panic if a resource is allocated twice.  Instead, print a warning and
fail the allocation request.  Allocations of "reserved" resources such as
PCI BARs already fail the request instead of panic'ing in this case.
2014-10-17 15:29:47 +00:00
gjb
14d211224f MFC r273093, r273096:
r273093:
  Merge the following from ^/projects/release-vmimage:
  r272436, r272437, r272792:

  r272436:
    Remove the first argument to panic(), which was initially
    intended to be the exit code, however when a non-zero exit
    code was returned to release/Makefile, this would prevent
    any remaining (and possibly successful) stages from being
    attempted.

  r272437:

    If the vm-base target fails, prevent the vm-image target
    from being run since it cannot possibly succeed.

  r272792:

    Add /usr/local/bin and /usr/local/sbin to PATH, needed
    if third-party software needs to use utilities outside
    of the base system during post-install stages (indexinfo
    is one culprit).

r273096:
  Merge the following from ^/projects/release-vmimage:
  r273076, r273077, r273079, r273095:

  r273076:
    Add a separate make(1) target to release/Makefile to
    build FreeBSD virtual machine disk images for use on
    the Microsoft Azure service.

    For now, this target is not directly connected to the
    build, however can be manually invoked.

    The 'vm-azure' target invokes {amd64,i386}/mk-azure.sh,
    which does the heavy lifting to produce proper VHDs.
    mk-azure.sh uses a configuration file, defaulting to
    tools/azure.conf if otherwise unset.

  r273077:
    Clear VM_RC_LIST.

  r273079:
    Fix signal list to trigger umount(8).

  r273095:
    Output an informational message when mkimg(1) runs, so it
    does not appear that the process has stopped while waiting
    for a 'y/n' response when waagent is deprovisioned.

Relnotes:	yes
Sponsored by:	The FreeBSD Foundation
2014-10-16 23:16:26 +00:00
delphij
4b803d9674 MFC r272583: MFV r272500:
Don't inherit flags other than DS_FLAG_CI_DATASET and DS_FLAG_INCONSISTENT
when cloning.  This prevents DS_FLAG_DEFER_DESTROY being inherited from a
clone that is marked for deferred destroy, which causes snapshots of the
clone being destroyed when getting a hold or clone.

Illumos issue:
    5150 zfs clone of a defer_destroy snapshot causes strangeness
2014-10-16 22:44:30 +00:00
delphij
0615551739 MFC r272527:
Don't make nested definition for range_seg_cache.

Reported by:	ian
2014-10-16 22:40:22 +00:00
delphij
6fe321f152 MFC r272506: MFV r272495:
In arc_kmem_reap_now(), reap range_seg_cache too to reclaim memory in
response of memory pressure.

Illumos issue:
    5163 arc should reap range_seg_cache
2014-10-16 22:33:09 +00:00
delphij
9f9b89ac40 MFV r273060:
Use write_psize instead of write_asize when doing vdev_space_update.
Without this change the accounting of L2ARC usage would be wrong and
give 16EB free space because the number became negative and overflows.

Obtained from:  FreeNAS (issue #6239)
2014-10-16 22:12:23 +00:00
glebius
9ea3e68626 Merge r272385 by melifaro from head:
Free radix mask entries on main radix destroy.
  This is temporary commit to be merged to 10.
  Other approach (like hash table) should be used
  to store different masks.

PR:             194078
2014-10-16 20:46:02 +00:00
glebius
86f98e492e Merge r272358 from head:
Use rn_detachhead() instead of direct free(9) for radix tables.
2014-10-16 20:43:12 +00:00
smh
d66b9a9949 MFC r273158:
Prevent ZFS leaking pool free space

Early MFC approved by re@

Approved by:	re@ (glebius)
Sponsored by:	Multiplay
2014-10-16 08:33:11 +00:00
jkim
d37b3c75ad MFC: r272718
Make kern.nswbuf tunable from loader.
2014-10-15 20:04:21 +00:00
jkim
0b5b22505e MFC: r273144, r273146
Merge OpenSSL 1.0.1j.

Relnotes:	yes
2014-10-15 19:59:43 +00:00
jhb
44cc4e9f20 MFC 271721:
Explicitly specify MAP_SHARED when mapping the stats file descriptor.
2014-10-15 19:27:14 +00:00
kib
92c5a45b89 MFC r272761:
Add an argument to the x86 pmap_invalidate_cache_range() to request
forced invalidation of the cache range regardless of the presence of
self-snoop feature.

MFC r272943:
MFi386 r272761.
2014-10-15 14:07:24 +00:00
kib
c4d948e445 MFC r272070:
Expand the libthr(3) manpage to document knobs accepted by libthr.so
and explain some internal working of the library, neccessary to
understand the knobs effects.

MFC r272153 (by pluknet):
Fix description of mutex acquisition.
2014-10-15 13:39:00 +00:00
kib
6dfd0e1c93 MFC r272069:
Switch the defaults to not split the RLIMIT_STACK-sized initial thread
stack into the stacks of the created threads.  Add knob
LIBPTHREAD_SPLITSTACK_MAIN to restore the older behaviour.
2014-10-15 13:36:01 +00:00
mav
3c28f63ca3 MFC r272756: Properly report 12Gbps connection rate.
Reviewed by:	kadesai, slm
2014-10-15 08:03:12 +00:00
ae
1dfece27ff MFC r272749:
Fix comment.
2014-10-15 04:34:07 +00:00
pfg
ca6df600d4 MFC r267851:
Continue the crusade towards a dev_clone()-free kernel, removing its
usage from dtrace. The dtrace code already uses cdevpriv(9) since FreeBSD
8, so this change is quite harmless.

Originally by:	davide
Reviewed by:	markj
2014-10-14 23:16:52 +00:00
mjg
6eb4db1c33 MFC r269023,r272503,r272505,r272523,r272567,r272569,r272574
Prepare fget_unlocked for reading fd table only once.

Some capsicum functions accept fdp + fd and lookup fde based on that.
Add variants which accept fde.

===============================

Add sequence counters with memory barriers.

Current implementation is somewhat simplistic and hackish,
will be improved later after possible memory barrier overhaul.

===============================

Plug capability races.

fp and appropriate capability lookups were not atomic, which could result in
improper capabilities being checked.

This could result either in protection bypass or in a spurious ENOTCAPABLE.

Make fp + capability check atomic with the help of sequence counters.

===============================

Put and #ifdef _KERNEL around the #include for opt_capsicum.h to
hopefully allow the build to finish after r272505.

===============================

filedesc: fix up breakage introduced in 272505

Include sequence counter supports incoditionally [1]. This fixes reprted build
problems with e.g. nvidia driver due to missing opt_capsicum.h.

Replace fishy looking sizeof with offsetof. Make fde_seq the last member in
order to simplify calculations.

===============================

Keep struct filedescent comments within 80-char limit.

===============================

seq_t needs to be visible to userspace
2014-10-14 21:19:23 +00:00
skreuzer
d384077778 MFC r269627:
Mention tmpfs(5)

PR:             192389
Submitted by:   yaneurabeya@gmail.com
Approved by:    hrs (mentor)
2014-10-14 19:21:04 +00:00
gjb
bf64761c21 Revert r273084:
In the stable/ branches, release.prev intentionally points to the
  previous version, in addition to a number of intentional version
  mappings for the errata.html page, that this commit breaks.

Reported by:	hrs
Approved by:	re (implicit)
Sponsored by:	The FreeBSD Foundation
2014-10-14 16:44:15 +00:00
gjb
d8c07bdc2c Clean up the stable/10 errata document now that releng/10.1
has precedence over releng/10.0.

Approved by:	re (implicit)
Sponsored by:	The FreeBSD Foundation
2014-10-14 13:06:13 +00:00
gjb
209cc41052 Update the FreeBSD versions in the stable/10 errata documentation
to reflect reality.

Approved by:	re (implicit)
Sponsored by:	The FreeBSD Foundation
2014-10-14 13:03:11 +00:00
gjb
dcfed64a2e MFC r272414:
Merge the following revisions from ^/projects/release-vmimage:

  r272234, r272236, r272262, r272264, r272269, r272271, r272272,
  r272277, r272279, r272376, r272380, r272381, r272392, r272234,
  r272412:

  r272234:
    Initial commit to include virtual machine images as part
    of the FreeBSD release builds.

    This adds a make(1) environment variable requirement,
    WITH_VMIMAGES, which triggers the virtual machine image
    targets when not defined to an empty value.

    Relevant user-driven variables include:

     o VMFORMATS:	The virtual machine image formats to create.
       Valid formats are provided by running 'mkimg --formats'

     o VMSIZE:	The size of the resulting virtual machine
       image.  Typical compression is roughly 140Mb, regardless
       of the target size (10GB, 15GB, 20GB, 40GB sizes have been
       tested with the same result).

     o VMBASE:	The prefix of the virtual machine disk images.
       The VMBASE make(1) environment variable is suffixed with
       each format in VMFORMATS for each individual disk image, as
       well as '.img' for the source UFS filesystem passed to
       mkimg(1).

    This also includes a new script, mk-vmimage.sh, based on how
    the VM images for 10.0-RELEASE, 9.3-RELEASE, and 10.1-RELEASE
    were created (mk-vmimage.sh in ^/user/gjb/thermite/).

    With the order in which the stages need to occur, as well as
    sanity-checking error cases, it makes much more sense to
    execute a shell script called from make(1), using env(1) to
    set specific parameters for the target image than it does to
    do this in make(1) directly.

  r272236:
    Use VMBASE in place of a hard-coded filename in the CLEANFILES
    list.

  r272262:
    Remove a 'set -x' that snuck in during testing.

  r272264:
    release/Makefile:
      Connect the virtual machine image build to the release
      target if WITH_VMIMAGES is set to a non-empty value.

    release/release.sh:
      Add WITH_VMIMAGES to RELEASE_RMAKEFLAGS.

    release/release.conf.sample:
      Add commented entries for tuning the release build if the
      WITH_VMIMAGES make(1) environment variable is set to
      a non-empty value.

  r272269:
    release/Makefile:
      Include .OBJDIR in DESTDIR in the vm-base target.

    release/release.sh:
      Provide the full path to mddev.

  r272271:
    Fix UFS label for the root filesystem.

  r272272:
    Remove comments left in accidentally while testing, so the
    VM /etc/fstab is actually created.

  r272277:
    Remove the UFS label from the root filesystem since it is added
    by mkimg(1) as a gpt label, consistent with the fstab(5) entry.

  r272279:
    Comment cleanup in panic() message when mkimg(1) does not support
    the requested disk image format.

  r272376:
    Separate release/scripts/mk-vmimage.sh to machine-specific
    scripts, making it possible to mimic the functionality for
    non-x86 targets.

    Move echo output if MAKEFLAGS is empty outside of usage().

    Remove TARGET/TARGET_ARCH evaluation.

  r272380:
    Avoid using env(1) to set values passed to mk-vmimage.sh,
    and instead pass the values as arguments to the script,
    making it easier to run this by hand, without 'make release'.

    Add usage_vm_base() and usage_vm_image() usage helpers.

  r272381:
    After evaluating WITH_VMIMAGES is non-empty, ensure
    the mk-vmimage.sh script exists before running it.

  r272392:
    Add WITH_COMPRESSED_VMIMAGES variable, which when set enables
    xz(1) compression of the virtual machine images.

    This is intentionally separate to allow more fine-grained
    tuning over which images are compressed, especially in cases
    where compressing 20GB sparse images can take hours.

  r272412:
    Document the new 'vm-image' target, and associated release.conf
    variables.

  r272413:
    Remove two stray comments added during the initial iterations
    of testing, no longer needed.

Sponsored by:	The FreeBSD Foundation
2014-10-14 12:23:44 +00:00
mav
2cb46b9c51 MFC r271588: Update CAM CCB accounting for the new status quo.
devq_openings counter lost its meaning after allocation queues has gone.
held counter is still meaningful, but problematic to update due to separate
locking of CCB allocation and queuing.

To fix that replace devq_openings counter with allocated counter.  held is
now calculated on request as difference between number of allocated, queued
and active CCBs.
2014-10-14 12:13:01 +00:00
trasz
625b27b4d0 MFC r272932:
Mark iscontrol(8) and iscsi_initiator(4) obsolete.

Differential Revision:	https://reviews.freebsd.org/D931
Reviewed by:	wblock@
Sponsored by:	The FreeBSD Foundation
2014-10-14 07:52:37 +00:00