]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
7 years agoMFC r316611:
asomers [Fri, 28 Apr 2017 14:48:29 +0000 (14:48 +0000)]
MFC r316611:

sbin/mount: strcpy -> strlcpy

Reported by: Coverity
CID: 10111731011174
Sponsored by: Spectra Logic Corp

7 years agoMFC r316610:
asomers [Fri, 28 Apr 2017 14:45:03 +0000 (14:45 +0000)]
MFC r316610:

usr.bin/netstat: strcpy -> strlcpy

Reported by: Coverity
CID: 10067411006744
Sponsored by: Spectra Logic Corp

7 years agoMFC r316548:
asomers [Fri, 28 Apr 2017 14:43:14 +0000 (14:43 +0000)]
MFC r316548:

Quiet 450.status-security when *_inline="YES"

Previously, 450.status-security would always set rc=3 in inline mode,
because it doesn't know whether "periodic security" is going to find
anything interesting. But this annoyingly results in daily reports that
simply say "Security check: \n\n-- End of daily output --".

This change fixes that by testing whether "periodic security" printed
anything, and setting 450.status-security's exit status to 3 if it did. An
alternative would be to change the exit status of periodic(8) to be the
worst of its scripts' exit statuses, but that would be a more intrusive
change.

Reviewed by: brian
Differential Revision: https://reviews.freebsd.org/D10267

7 years agoMove td_sigqueue to the end of struct thread
badger [Thu, 27 Apr 2017 22:28:49 +0000 (22:28 +0000)]
Move td_sigqueue to the end of struct thread

In order to preserve KBI in stable branches, replace the existing
td_sigqueue slot with padding and move the expanded (as of r315949)
td_sigqueue to the end of the struct.

Reported by: jhb
Suggested by: kib
Reviewed by: jhb, kib, vangyzen
Sponsored by: Dell EMC
Differential Revision: https://reviews.freebsd.org/D10515

7 years agoMFC: r316793
rmacklem [Thu, 27 Apr 2017 20:21:29 +0000 (20:21 +0000)]
MFC: r316793
Document the "oneopenown" option added by r316792.

This is a content change.

7 years agoMFC: r316792
rmacklem [Thu, 27 Apr 2017 20:14:54 +0000 (20:14 +0000)]
MFC: r316792
Add an NFSv4.1 mount option for "use one openowner".

Some NFSv4.1 servers such as AmazonEFS can only support a small fixed number
of open_owner4s. This patch adds a mount option called "oneopenown" that
can be used for NFSv4.1 mounts to make the client do all Opens with the
same open_owner4 string. This option can only be used with NFSv4.1 and
may not work correctly when Delegations are is use.

Differential Revision: https://reviews.freebsd.org/D8988

7 years agoMFC: r316782
rmacklem [Thu, 27 Apr 2017 20:07:14 +0000 (20:07 +0000)]
MFC: r316782
Add call to svcpool_close() for the NFSv4 callback pool (svcpool_nfscbd).

A function called svcpool_close() was added to the server side krpc by
r313735, so that a pool could be closed without destroying the data structures.
This little patch adds a call to it for the callback pool (svcpool_nfscbd),
so that the nfscbd daemon can be killed/restarted and continue to work
correctly.

7 years agoMFC r316759:
ae [Thu, 27 Apr 2017 12:16:58 +0000 (12:16 +0000)]
MFC r316759:
  Add large replay widow support to setkey(8) and libipsec.

  When the replay window size is large than UINT8_MAX, add to the request
  the SADB_X_EXT_SA_REPLAY extension header that was added in r309144.

  Also add support of SADB_X_EXT_NAT_T_TYPE, SADB_X_EXT_NAT_T_SPORT,
  SADB_X_EXT_NAT_T_DPORT, SADB_X_EXT_NAT_T_OAI, SADB_X_EXT_NAT_T_OAR,
  SADB_X_EXT_SA_REPLAY, SADB_X_EXT_NEW_ADDRESS_SRC, SADB_X_EXT_NEW_ADDRESS_DST
  extension headers to the key_debug that is used by `setkey -x`.

  Modify kdebug_sockaddr() to use inet_ntop() for IP addresses formatting.
  And modify kdebug_sadb_x_policy() to show policy scope and priority.

  Reviewed by: gnn, Emeric Poupon
  Differential Revision: https://reviews.freebsd.org/D10375

7 years agoMFC r317196:
kib [Thu, 27 Apr 2017 12:12:33 +0000 (12:12 +0000)]
MFC r317196:
Write-combine framebuffer writes through user-space mappings, if possible.

7 years agoMFC r316777 (by cem)
truckman [Thu, 27 Apr 2017 07:30:48 +0000 (07:30 +0000)]
MFC r316777 (by cem)

dummynet: Use strlcpy to appease static checkers

Some dummynet modules used strcpy() to copy from a larger buffer
(dn_aqm->name) to a smaller buffer (dn_extra_parms->name).  It happens that
the lengths of the strings in the dn_aqm buffers were always hardcoded to be
smaller than the dn_extra_parms buffer ("CODEL", "PIE").

Use strlcpy() instead, to appease static checkers.  No functional change.

Reported by: Coverity
CIDs: 13561631356165
Sponsored by: Dell EMC Isilon

7 years agoMFC r317185: Some cosmetic polishing for pre-timeouts.
mav [Thu, 27 Apr 2017 06:29:02 +0000 (06:29 +0000)]
MFC r317185: Some cosmetic polishing for pre-timeouts.

7 years agoMFC r316758: Update list of Conexant and Realtek codecs.
mav [Thu, 27 Apr 2017 06:28:12 +0000 (06:28 +0000)]
MFC r316758: Update list of Conexant and Realtek codecs.

7 years agoMFC r315961: Add ids for ALC233 found on Intel Skull Mountain NUC.
mav [Thu, 27 Apr 2017 06:27:39 +0000 (06:27 +0000)]
MFC r315961: Add ids for ALC233 found on Intel Skull Mountain NUC.

7 years agoMFC 317353
sephe [Thu, 27 Apr 2017 01:58:20 +0000 (01:58 +0000)]
MFC 317353

    hyperv/hn: Use channel0, i.e. TX ring0, for TCP SYN/SYN|ACK.

    Hyper-V hot channel effect:
    Operation latency on hot channel is only _half_ of the operation
    latency on cold channels.

    This commit takes the advantage of the above Hyper-V host channel
    effect, and can reduce more than 75% latency and more than 50%
    latency stdev, i.e. lower and more stable/predictable latency,
    for various types of web server workloads.

    Sponsored by:   Microsoft

7 years agoMFC r317193: elfcopy: document --strip-symbols=filename in the man page
emaste [Thu, 27 Apr 2017 00:25:24 +0000 (00:25 +0000)]
MFC r317193: elfcopy: document --strip-symbols=filename in the man page

Reported by: bz
Sponsored by: The FreeBSD Foundation

7 years agoMFC: r316745
rmacklem [Wed, 26 Apr 2017 22:31:43 +0000 (22:31 +0000)]
MFC: r316745
Fix the NFS client for "text file modified, process killed" mmap'd case.

When an mmap'd text file is written and then executed immediately
afterwards, it was possible that the modify time would change after the
text file was executing, resulting in the process executing the file
being killed. This was usually only observed when the file system's
times were set to higher resolution, but could have occurred for any
time resolution.
This patch adds a VOP_SET_TEXT() to the NFS client which flushed all
dirty pages to the NFS server and then makes sure that n_mtime is up
to date to avoid this from occurring.
Thanks go to kib@ and pho@ for their help with developing this patch.

7 years agoMFC r315449:
smh [Wed, 26 Apr 2017 22:25:01 +0000 (22:25 +0000)]
MFC r315449:

Reduce ARC fragmentation threshold

Sponsored by: Multiplay

7 years agoMFC r316460:
smh [Wed, 26 Apr 2017 22:23:42 +0000 (22:23 +0000)]
MFC r316460:

Fix expandsz 16.0E vals and vdev_min_asize of RAIDZ children

Sponsored by: Multiplay

7 years agoMFC: r316719
rmacklem [Wed, 26 Apr 2017 22:17:54 +0000 (22:17 +0000)]
MFC: r316719
Don't throw away Open state when a NFSv4.1 client recovery fails.

If the ExchangeID/CreateSession operations done by an NFSv4.1 client
after the server crashes/reboots fails, it is possible that some process/thread
is waiting for an open_owner lock. If the client state is free'd, this
can cause a crash.
This would not normally happen, but has been observed on a mount of the
AmazonEFS service.

7 years agoMFC: r316717
rmacklem [Wed, 26 Apr 2017 22:11:44 +0000 (22:11 +0000)]
MFC: r316717
During a server crash recovery, fix the NFSv4.1 client for a NFSERR_BADSESSION
during recovery.

If the NFSv4.1 client gets a NFSv4.1 NFSERR_BADSESSION reply to an Open/Lock
operation while recovering from the server crash/reboot, allow the opens
to be retained for a subsequent recovery attempt. Since NFSv4.1 servers
should only reply NFSERR_BADSESSION after a crash/reboot that has lost
state, this case should almost never happen.
However, for the AmazonEFS file service, this has been observed when
the client does a fresh TCP connection for RPCs.

7 years agoMFC: r316694
rmacklem [Wed, 26 Apr 2017 22:04:55 +0000 (22:04 +0000)]
MFC: r316694
Fix a crash during unmount of an NFSv4.1 mount.

Larry Rosenman reported a crash on freebsd-current@ which was caused by
a premature release of the krpc backchannel socket structure.
I believe this was caused by a race between the SVC_RELEASE() in clnt_vc.c
and the xprt_unregister() in the higher layer (clnt_rc.c), which tried
to lock the mutex in the xprt structure and crashed.
This patch fixes this by removing the xprt_unregister() in the clnt_vc
layer and allowing this to always be done by the clnt_rc (higher reconnect
layer).

7 years agoMFC r317169:
gjb [Wed, 26 Apr 2017 16:27:20 +0000 (16:27 +0000)]
MFC r317169:
 Trim trailing '/release/..' when setting _OBJDIR so arm64/aarch64
 boot1.efifat is properly located when creating virtual machine images.

 Note, the underlying issue has no direct impact against stable/10,
 as arm64/aarch64 virtual machine images are not created for 10-STABLE.

Sponsored by: The FreeBSD Foundation

7 years agoMFC r316530, r316535
asomers [Wed, 26 Apr 2017 14:50:06 +0000 (14:50 +0000)]
MFC r316530, r316535

r316530:
Fix clearing geom metadata if DIOCGSECTORSIZE fails

An unhandled error case would result in passing SIZE_MAX to malloc.
While I'm here, remove an unnecessary NULL check before free

Reported by: Coverity
CID: 1017793
Sponsored by: Spectra Logic Corp

r316535:
Fix memory leak in "gpart bootcode"

Also, annotate that gpart_issue never returns

Reported by: Coverity
CID: 1007105
Sponsored by: Spectra Logic Corp

7 years agoMFC r316501, r316523
asomers [Wed, 26 Apr 2017 14:44:39 +0000 (14:44 +0000)]
MFC r316501, r316523

r316501:
Fix file descriptor and memory leaks in pr(1)

Also, hook NetBSD's pr test into the build, and add three more test cases.

Reported by: Coverity, Valgrind
CID: 271650 271651 271652 271653 271654 271655 271656 271656
CID: 271657 271658 271659 1006939 1006940 1006941 1006942 1009098
Reviewed by: ngie
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D9137

r316523:
Remove a duplicate fclose() that snuck into r316501

Reported by: Coverity
CID: 1373338
X-MFC-With: 316501
Sponsored by: Spectra Logic Corp

7 years agoMFC r316500:
asomers [Wed, 26 Apr 2017 14:43:21 +0000 (14:43 +0000)]
MFC r316500:

strcpy => strlcpy, strcat => strlcat

Reported by: Coverity
CID: 1006703 978863 1006745 1347163
Reviewed by: cem
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D10192

7 years agoMFC r316810, r316814, r316816, r316991:
cy [Wed, 26 Apr 2017 02:37:25 +0000 (02:37 +0000)]
MFC r316810, r316814, r316816, r316991:

Keep state incorrectly assumes keep frags. This is counter to the
ipfilter man pages. This also currently restricts keep frags to only when
keep state is used, which is redundant because keep state currently
assumes keep frags. This commit fixes this.

To the user this change means that to maintain the current behaviour
one must add keep frags to any ipfilter keep state rule (as documented
in the man pages).

This patch also allows the flexability to specify and use keep frags
separate from keep state, as documented in an example in ipf.conf.5,
instead of the currently broken behaviour.

MFC suggested by: rgrimes
Relnotes: yes

7 years agoMFC: r316692
rmacklem [Tue, 25 Apr 2017 23:43:37 +0000 (23:43 +0000)]
MFC: r316692
Set initial values for nfsstatfs in the NFSv4 client.

The AmazonEFS NFSv4.1 server does not support the FILES_FREE and FILES_TOTAL
attributes. As such, an NFSv4.1 mount to the server would return garbage
for these values. This patch initializes the fields of the nfsstatfs structure,
so that "df" and friends will at least return consistent bogus values.

7 years agoMFC: r316669
rmacklem [Tue, 25 Apr 2017 20:24:00 +0000 (20:24 +0000)]
MFC: r316669
Avoid starvation of the server crash recovery thread for the NFSv4 client.

This patch gives a requestor of the exclusive lock on the client state
in the NFSv4 client priority over shared lock requestors. This avoids
the server crash recovery thread being starved out by other threads doing
RPCs.

7 years agoMFC: r316667
rmacklem [Tue, 25 Apr 2017 19:14:31 +0000 (19:14 +0000)]
MFC: r316667
Fix the NFSv4 client hndling of a stale write verifier in the Commit operation.

When the NFSv4 client Commit operation encountered a stale write verifier,
it erroneously mapped that to EIO. This could have caused recently written
data to be lost when a server crashes/reboots between an UNSTABLE write
and the subsequent commit. This patch fixes this.
The bug was only for the NFSv4 client and did not affect NFSv3.

7 years agoMFC: r316666
rmacklem [Tue, 25 Apr 2017 19:02:34 +0000 (19:02 +0000)]
MFC: r316666
Fix the NFSv4.1 client for NFSERR_BADSESSION recovery via ReclaimComplete.

For the ReclaimComplete operation, the RPC layer should not loop on
NFSERR_BADSESSION. If it does, the recovery thread (nfscl) can get stuck
looping and will not do a recovery.
This patch fixes it so it does not loop. This bug only affects NFSv4.1 and
only when a server reboots.

7 years agoMFC r316698:
kib [Tue, 25 Apr 2017 13:07:06 +0000 (13:07 +0000)]
MFC r316698:
Remove debugging printf.

7 years agoMFC: r316655
rmacklem [Tue, 25 Apr 2017 11:59:23 +0000 (11:59 +0000)]
MFC: r316655
Fix parsing failure for NFSv4 Setattr operation for failed case.

If an operation that preceeds a Setattr in an NFSv4 compound fails,
there is no bitmap of attributes to parse. Without this patch, the
parsing would fail and return EBADRPC instead of the correct failure
error. This could break recovery from a server crash/reboot.

7 years agoMFC r316699:
ae [Tue, 25 Apr 2017 11:19:22 +0000 (11:19 +0000)]
MFC r316699:
  Do not adjust interface MTU automatically. Leave this task to the system
  administrator.

  Before r274246 interface MTU was adjusted only when GRE key is configured.
  The r274246 has changed this behavior to automatically adjust MTU when any
  option, that changes the size of GRE header is configured.
  This patch removes automatic MTU adjustment from if_gre(4) and if_me(4),
  and restores the behavior that was prior to r274246.

  Differential Revision: https://reviews.freebsd.org/D10215

7 years agoMFC r317273 (by cem):
markj [Tue, 25 Apr 2017 00:00:34 +0000 (00:00 +0000)]
MFC r317273 (by cem):
fuse: Implement FOPEN_KEEP_CACHE flag

7 years agoMFC: r310491
rmacklem [Mon, 24 Apr 2017 23:47:12 +0000 (23:47 +0000)]
MFC: r310491
Fix NFSv4.1 client recovery from NFS4ERR_BAD_SESSION errors.

For most NFSv4.1 servers, a NFS4ERR_BAD_SESSION error is a rare failure
that indicates that the server has lost session/open/lock state.
However, recent testing by cperciva@ against the AmazonEFS server found
several problems with client recovery from this due to it generating this
failure frequently.
Briefly, the problems fixed are:
- If all session slots were in use at the time of the failure, some processes
  would continue to loop waiting for a slot on the old session forever.
- If an RPC that doesn't use open/lock state failed with NFS4ERR_BAD_SESSION,
  it would fail the RPC/syscall instead of initiating recovery and then
  looping to retry the RPC.
- If a successful reply to an RPC for an old session wasn't processed
  until after a new session was created for a NFS4ERR_BAD_SESSION error,
  it would erroneously update the new session and corrupt it.
- The use of the first element of the session list in the nfs mount
  structure (which is always the current metadata session) was slightly
  racey. With changes for the above problems it became more racey, so all
  uses of this head pointer was wrapped with a NFSLOCKMNT()/NFSUNLOCKMNT().
- Although the kernel malloc() usually allocates more bytes than requested
  and, as such, this wouldn't have caused problems, the allocation of a
  session structure was 1 byte smaller than it should have been.
  (Null termination byte for the string not included in byte count.)

There are probably still problems with a pNFS data server that fails
with NFS4ERR_BAD_SESSION, but I have no server that does this to test
against (the AmazonEFS server doesn't do pNFS), so I can't fix these yet.

Although this patch is fairly large, it should only affect the handling
of NFS4ERR_BAD_SESSION error replies from an NFSv4.1 server.
Thanks go to cperciva@ for the extension testing he did to help isolate/fix
these problems.

7 years agoMFC r316768:
brooks [Mon, 24 Apr 2017 22:37:54 +0000 (22:37 +0000)]
MFC r316768:

Fix an out-of-bounds write when a zero-length buffer is passed.

Found with ttyname_test and CHERI bounds checking.

Reviewed by: emaste
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL

7 years agoMFC r316766:
brooks [Mon, 24 Apr 2017 21:35:02 +0000 (21:35 +0000)]
MFC r316766:

Correct an out of bounds read with HN_AUTOSCALE and very large numbers.

The maximum scale is 6 (K, M, G, T, P, E) (B is 0).

Overly large explict scales were checked correctly, but for sufficently
large numbers HN_AUTOSCALE would get to 7 resulting in an out of bounds
read.

Found with humanize_number_test and CHERI bounds checking.

Reviewed by: emaste
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL

7 years agoMFC r302788, r303026, r305471
andrew [Mon, 24 Apr 2017 16:49:30 +0000 (16:49 +0000)]
MFC r302788, r303026, r305471

r302788:
Fix the type used to hold the value returned from getopt. On arm64 char is
unsigned so will never be -1.

r303026:
Add missing flags from acpidump. These are defined in the header, but not
printed. The HW_REDUCED flag is useful as it should be set on arm64 to
comply with the ARM Server Base Boot Requirements.

r305471:
Teach acpidump how to parse ACPI 5.1 tables found on the development
ThunderX units in the netperf cluster.

7 years agoMFC r312558:
asomers [Mon, 24 Apr 2017 16:07:30 +0000 (16:07 +0000)]
MFC r312558:

Misc Coverity fixes in camcontrol(8)

CID 1229913 Fix output of "camcontrol persist -i report_capabilities".
The reported Persistent Reservation Types were wrong in all
cases.
CID 1356029 Annotate the code so Coverity will know that this is a false
positive.
CID 1366830 Fix a memory leak in "camcontrol timestamp -s"
CID 1366832 Fix a segfault that could be caused by bad drive firmware

Also, fix the man page entry for the "camcontrol epc state" command to match
what the code does.

Reviewed by: ken, wblock
MFC after: 4 weeks
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D9239

7 years agoMFC r316342, r316358
asomers [Mon, 24 Apr 2017 15:29:17 +0000 (15:29 +0000)]
MFC r316342, r316358

r316342:
Consolidate random sleeps in periodic scripts

Multiple periodic scripts sleep for a random amount of time in order to
mitigate the thundering herd problem. This is bad, because the sum of
multiple uniformly distributed random variables approaches a normal
distribution, so the problem isn't mitigated as effectively as it would be
with a single sleep.

This change creates a single configurable anticongestion sleep. periodic
will only sleep if at least one script requires it, and it will never sleep
more than once per invocation. It also won't sleep if periodic was run
interactively, fixing an unrelated longstanding bug.

PR: 217055
PR: 210188
Reviewed by: cy
MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D10211

r316358:
Fix man page typo from r316342

Reported by: rgrimes
MFC after: 20 days
X-MFC-With: 316342

7 years agoMFC r316676:
smh [Mon, 24 Apr 2017 11:34:02 +0000 (11:34 +0000)]
MFC r316676:

Use estimated RTT for receive buffer auto resizing instead of timestamps

Relnotes: Yes
Sponsored by: Multiplay

7 years agoMFC r315913: Add brackets to fix incorrect macro expansion.
mav [Mon, 24 Apr 2017 11:12:03 +0000 (11:12 +0000)]
MFC r315913: Add brackets to fix incorrect macro expansion.

7 years agoMFC r315908: Unify initiator and target DMA setup and command sending.
mav [Mon, 24 Apr 2017 10:21:13 +0000 (10:21 +0000)]
MFC r315908: Unify initiator and target DMA setup and command sending.

The code is so alike that it is pointless to keep it separate.

7 years agoMFC r315870: isp field in struct isp_pcmd is also unused.
mav [Mon, 24 Apr 2017 10:20:36 +0000 (10:20 +0000)]
MFC r315870: isp field in struct isp_pcmd is also unused.

7 years agoMFC r315869: Remove write-only crn field from struct isp_pcmd.
mav [Mon, 24 Apr 2017 10:19:59 +0000 (10:19 +0000)]
MFC r315869: Remove write-only crn field from struct isp_pcmd.

7 years agoMFC r315708: Cleanup response queue processing.
mav [Mon, 24 Apr 2017 10:19:26 +0000 (10:19 +0000)]
MFC r315708: Cleanup response queue processing.

7 years agoMFC r316679:
kib [Mon, 24 Apr 2017 07:52:44 +0000 (07:52 +0000)]
MFC r316679:
Do not lose dirty bits for removing PROT_WRITE on arm64.

7 years agoMFC r316677: Do not register in CTL portal groups without portals.
mav [Mon, 24 Apr 2017 06:32:35 +0000 (06:32 +0000)]
MFC r316677: Do not register in CTL portal groups without portals.

From config synthax point of view such portal groups are not incorrect,
but they are useless since can not receive any connection.  And since
CTL port resource is very limited, it is good to save it.

7 years agoMFC r316213:
kib [Sun, 23 Apr 2017 20:32:46 +0000 (20:32 +0000)]
MFC r316213:
Implement the memset_s(3) function as specified by the C11 ISO/IEC
9899:2011 Appendix K 3.7.4.1.

MFC r316258:
Only activate __EXT1_VISIBLE block when using sys/errno.h in userspace.

7 years agoMFC r316657:
bcr [Sun, 23 Apr 2017 10:29:09 +0000 (10:29 +0000)]
MFC r316657:

Make setkey(8) more clear about anti-replay window size option semantics.

PR: 172913
Submitted by: john@saltant.com
Reviewed by: ae@
Differential Revision:  https://reviews.freebsd.org/D10304

7 years agoMFC r314290: Implement use of multiple transfers per I/O.
mav [Sun, 23 Apr 2017 09:01:40 +0000 (09:01 +0000)]
MFC r314290: Implement use of multiple transfers per I/O.

This change removes limitation of single S/G list entry and limitation on
maximal I/O size, using multiple data transfers per I/O if needed.  Also
it removes code duplication between send and receive paths, which are now
completely equal.

7 years agoMFC r314256: Use ctl_queue_sense() to implement sense data reporting.
mav [Sun, 23 Apr 2017 09:01:01 +0000 (09:01 +0000)]
MFC r314256: Use ctl_queue_sense() to implement sense data reporting.

USB MS BBB transport does not support autosense, so we have to queue any
sense data back to CTL for later fetching via REQUEST SENSE.

7 years agoMFC r314254: Update kern_data_resid according to r312291.
mav [Sun, 23 Apr 2017 09:00:26 +0000 (09:00 +0000)]
MFC r314254: Update kern_data_resid according to r312291.

This now mandatory for correct operation.

7 years agoMFC r317186
kp [Sun, 23 Apr 2017 08:58:50 +0000 (08:58 +0000)]
MFC r317186

pf: Fix possible incorrect IPv6 fragmentation

When forwarding pf tracks the size of the largest fragment in a fragmented
packet, and refragments based on this size.
It failed to ensure that this size was a multiple of 8 (as is required for all
but the last fragment), so it could end up generating incorrect fragments.

For example, if we received an 8 byte and 12 byte fragment pf would emit a first
fragment with 12 bytes of payload and the final fragment would claim to be at
offset 8 (not 12).

We now assert that the fragment size is a multiple of 8 in ip6_fragment(), so
other users won't make the same mistake.

Reported by: Antonios Atlasis <aatlasis at secfu net>

7 years agoMFC r316589:
trasz [Sun, 23 Apr 2017 08:45:55 +0000 (08:45 +0000)]
MFC r316589:

Unify capitalization.

7 years agoMFC r316587:
trasz [Sun, 23 Apr 2017 08:44:50 +0000 (08:44 +0000)]
MFC r316587:

Update hier(7) by removing files and directories that no longer
exist and doing a few random tweaks.

7 years agoMFC r316467:
trasz [Sun, 23 Apr 2017 08:43:45 +0000 (08:43 +0000)]
MFC r316467:

Add basic description of kernel source layout.

7 years agoMFC r316466:
trasz [Sun, 23 Apr 2017 08:41:58 +0000 (08:41 +0000)]
MFC r316466:

Remove excessive horizontal whitespace from hier(7) by correctly
using "-width". The http://mdocml.bsd.lv/mdoc/details/width.html
says: "Do not use macros in the argument specifying the width,
that's not portable. While GNU troff can handle it, mandoc cannot."
The same problem seems to exist in many other man pages.

7 years agoMFC r316468:
trasz [Sun, 23 Apr 2017 08:40:34 +0000 (08:40 +0000)]
MFC r316468:

Fix typo.

Sponsored by: DARPA, AFRL

7 years agoMFC r316057:
trasz [Sun, 23 Apr 2017 08:39:46 +0000 (08:39 +0000)]
MFC r316057:

Document EVENTHANDLER_DEFINE(9).

Sponsored by: DARPA, AFRL

7 years agoMFC r316056:
trasz [Sun, 23 Apr 2017 08:38:47 +0000 (08:38 +0000)]
MFC r316056:

The cn_consume was removed in r296716.

Sponsored by: DARPA, AFRL

7 years agoMFC r315560:
trasz [Sun, 23 Apr 2017 08:36:29 +0000 (08:36 +0000)]
MFC r315560:

Document how to use reroot with NFS.

Sponsored by: DARPA, AFRL

7 years agoMFC r316652: Fix few minor issues found by Clang Analyzer.
mav [Sun, 23 Apr 2017 07:36:44 +0000 (07:36 +0000)]
MFC r316652: Fix few minor issues found by Clang Analyzer.

7 years agoMFC r316653: Fix few minor issues found by Clang Analyzer.
mav [Sun, 23 Apr 2017 07:35:10 +0000 (07:35 +0000)]
MFC r316653: Fix few minor issues found by Clang Analyzer.

7 years agoMFC r315506:
dchagin [Sun, 23 Apr 2017 06:45:21 +0000 (06:45 +0000)]
MFC r315506:

Glibc get_nprocs() and get_nprocs_conf() uses the sysfs cpu infrastructure
to get number of processors. Implement /sys/devices/system/cpu/.

7 years agoMFC r315505:
dchagin [Sun, 23 Apr 2017 06:43:52 +0000 (06:43 +0000)]
MFC r315505:

Implement getrandom() syscall.
Note. GRND_RANDOM option is not supported for now.

7 years agoMFC r316993, r316994, r316997 as follows:
cy [Sun, 23 Apr 2017 03:16:38 +0000 (03:16 +0000)]
MFC r316993, r316994, r316997 as follows:

r316993:

Fix CID 1372601 in ipfilter/lib/parsefields.c, possible NULL pointer
dereference should reallocarray() fail.

Reported by: Coverity CID 1372601

r316994:

Fix CID 1372600 in ipfilter/tools/ipf_y.y, possible NULL pointer
dereference should reallocarray() fail.

Reported by: Coverity CID 1372600

r316997:

Use warnx() to issue error message.

Reported by: cem

7 years agoMFC: r314694
rgrimes [Sat, 22 Apr 2017 22:05:23 +0000 (22:05 +0000)]
MFC: r314694

  Make vmrun.sh passthrough -u and -w to bhybe

PR: 214273
Submitted by: Martin Birgmeier <la5lb...@aon.at>
Approved by: grehan (mentor)

7 years agoMFC r314691:
rgrimes [Sat, 22 Apr 2017 21:49:59 +0000 (21:49 +0000)]
MFC r314691:

Document 3 more src/ directories

Approved by: grehan (mentor)

7 years agoMFC r316065: Enable route and LLE (ndp) caching in TCP/IPv6
karels [Sat, 22 Apr 2017 18:55:25 +0000 (18:55 +0000)]
MFC r316065: Enable route and LLE (ndp) caching in TCP/IPv6

tcp_output.c was using a route on the stack for IPv6, which does not
allow route caching or LLE/ndp caching. Switch to using the route
(v6 flavor) in the in_pcb, which was already present, which caches
both L3 and L2 lookups.

Reviewed by: gnn hiren

7 years agoMFC r302664:
pfg [Fri, 21 Apr 2017 20:03:08 +0000 (20:03 +0000)]
MFC r302664:
mkimg(1): minor cleanups with argument order in calloc(3).

Generally the first argument in calloc is supposed to stand for a count
and the second for a size. Try to make that consistent. While here,
attempt to make some use of the overflow detection capability in
calloc(3).

Requested by: manu

7 years agoDocument EN-17:01 through EN-17:05, SA-16:39 through SA-17:03
gjb [Fri, 21 Apr 2017 19:41:33 +0000 (19:41 +0000)]
Document EN-17:01 through EN-17:05, SA-16:39 through SA-17:03

Sponsored by: The FreeBSD Foundation

7 years agoMFC r316824:
ae [Fri, 21 Apr 2017 17:09:37 +0000 (17:09 +0000)]
MFC r316824:
  The rule field in the ipfw_dyn_rule structure is used as storage
  to pass rule number and rule set to userland. In r272840 the kernel
  internal rule representation was changed and the rulenum field of
  struct ip_fw_rule got the type uint32_t, but userlevel representation
  still have the type uint16_t. To not overflow the size of pointer
  on the systems with 32-bit pointer size use separate variable to
  copy rulenum and set.

  Reported by: PVS-Studio

7 years agoMFC r316989:
dim [Fri, 21 Apr 2017 17:03:48 +0000 (17:03 +0000)]
MFC r316989:

Pull in r300404 from upstream llvm trunk (by me):

  Use correct registers for "A" inline asm constraint

  Summary:
  In PR32594, inline assembly using the 'A' constraint on x86_64 causes
  llvm to crash with a "Cannot select" stack trace.  This is because
  `X86TargetLowering::getRegForInlineAsmConstraint` hardcodes that 'A'
  means the EAX and EDX registers.

  However, on x86_64 it means the RAX and RDX registers, and on 16-bit
  x86 (ia16?) it means the old AX and DX registers.

  Add new register classes in `X86RegisterInfo.td` to support these
  cases, and amend the logic in `getRegForInlineAsmConstraint` to cope
  with different subtargets.  Also add a test case, derived from
  PR32594.

  Reviewers: craig.topper, qcolombet, RKSimon, ab

  Reviewed By: ab

  Subscribers: ab, emaste, royger, llvm-commits

  Differential Revision: https://reviews.llvm.org/D31902

This should fix crashes when using the 'A' constraint on amd64, for
example as it is being used in Xen.

Reported by: royger

MFC r317079:

Pull in r300429 from upstream llvm trunk (by Benjamin Kramer):

  [X86] Remove special handling for 16 bit for A asm constraints.

  Our 16 bit support is assembler-only + the terrible hack that is
  .code16gcc. Simply using 32 bit registers does the right thing for
  the latter.

  Fixes PR32681.

This fixes some cases of assembling 16 bit code (i.e. SeaBIOS) that uses
the 'A' inline asm constraint, after r316989.

7 years agoMFC r317100:
gjb [Fri, 21 Apr 2017 16:47:57 +0000 (16:47 +0000)]
MFC r317100:
 Use relative symlink for 'latest' to allow repo to work after being
 moved.

PR: 217197
Sponsored by: The FreeBSD Foundation

7 years agoMFC r310181 (matthew) (originally r309314):
gjb [Fri, 21 Apr 2017 16:47:09 +0000 (16:47 +0000)]
MFC r310181 (matthew) (originally r309314):
 Allow a user-overridable setting 'PKG_CMD' to control the command used
 to create a repo during 'make packages'.

Sponsored by: The FreeBSD Foundation

7 years agoMFC r316770:
ae [Fri, 21 Apr 2017 16:45:43 +0000 (16:45 +0000)]
MFC r316770:
  Clear h/w csum flags on mbuf handled by UDP.

  When checksums of received IP and UDP header already checked, UDP uses
  sbappendaddr_locked() to pass received data to the socket.
  sbappendaddr_locked() uses given mbuf as is, and if NIC supports checksum
  offloading, mbuf contains csum_data and csum_flags that were calculated
  for already stripped headers. Some NICs support only limited checksums
  offloading and do not use CSUM_PSEUDO_HDR flag, and csum_data contains
  some value that UDP/TCP should use for pseudo header checksum calculation.

  When L2TP is used for tunneling with mpd5, ng_ksocket receives mbuf with
  filled csum_flags and csum_data, that were calculated for outer headers.
  When L2TP header is stripped, a packet that was tunneled goes to the IP
  layer and due to presence of csum_flags (without CSUM_PSEUDO_HDR) and
  csum_data, the UDP/TCP checksum check fails for this packet.

  Reported by: Irina Liakh <spell at itl ua>
  Tested by: Irina Liakh <spell at itl ua>

MFC r316822,316823:
  Rework r316770 to make it protocol independent and general, like we
  do for streaming sockets.

  And do more cleanup in the sbappendaddr_locked_internal() to prevent
  leak information from existing mbuf to the one, that will be possible
  created later by netgraph.

  Suggested by: glebius
  Tested by: Irina Liakh <spell at itl ua>

7 years agoMFC r316852:
kib [Fri, 21 Apr 2017 10:13:07 +0000 (10:13 +0000)]
MFC r316852:
In fsck_ffs pass1, prevent the inosused variable from wrapping.

PR: 218592

7 years agoMFC r316851:
kib [Fri, 21 Apr 2017 10:11:08 +0000 (10:11 +0000)]
MFC r316851:
Correct calculation of the entry->free_down in the invariants-checking
code.

7 years agoMFC r316811, r317139:
cy [Fri, 21 Apr 2017 02:02:52 +0000 (02:02 +0000)]
MFC r316811, r317139:

Add missing free()'s after calls to randomize().

PR: NetBSD PR/50559
Obtained from: Netbsd radix_ipf.c r1.6

7 years agoMFC r316809:
cy [Fri, 21 Apr 2017 01:51:49 +0000 (01:51 +0000)]
MFC r316809:

Fix a use after free panic in ipfilter's fragment processing.
Memory is malloc'd, then a search for a match in the fragment table
is made and if the fragment matches, the wrong fragment table is
freed, causing a use after free panic. This commit fixes this.

A symptom of the problem is a kernel page fault in bcopy() called by
ipf_frag_lookup() at line 715 in ip_frag.c. Another symptom is a
kernel page fault in ipf_frag_delete() when called by ipf_frag_expire()
via ipf_slowtimer().

7 years agoMFC r312764:
andrew [Thu, 20 Apr 2017 12:48:01 +0000 (12:48 +0000)]
MFC r312764:
Pull the R_AARCH64_TLSDESC code out into a common function and use them in
both the plt and non-plt case.

This fixes an issue where libraries built with LLD can fail with
"Unhandled relocation 1031"

7 years agoMFC r308569,r308570:
skra [Thu, 20 Apr 2017 11:52:10 +0000 (11:52 +0000)]
MFC r308569,r308570:

  r308569:
    Always call PHYS_TO_VM_PAGE() in is_managed(). Fast road for addresses
    under first_page cannot be taken as this variable is connected only to
    vm_page_array segment. There could be more segments in system like the ones
    for various fictitious page ranges. These can be situated under
    vm_page_array segment and so, they could be skipped before this fix.
    However, as far as I know, there is no report associated with it.
  r308570:
    The return type of is_managed() was changed from boolean_t to bool type in
    r308569. Now, propagate this change further for consistency sake.

7 years agoMFC r316183
davidcs [Thu, 20 Apr 2017 04:26:47 +0000 (04:26 +0000)]
MFC r316183
Upgrade firmware and other related files to version 5.4.64

7 years agoMFC r316533:
bdrewery [Wed, 19 Apr 2017 17:32:32 +0000 (17:32 +0000)]
MFC r316533:

  Support assym.s in DPSRCS to depend on it but not link it in.

7 years agoMFC r316534:
bdrewery [Wed, 19 Apr 2017 17:29:54 +0000 (17:29 +0000)]
MFC r316534:

  Stop building assym.o into the module.

7 years agoMFC r313006 (by cem), r315983 (by bde):
markj [Wed, 19 Apr 2017 16:16:41 +0000 (16:16 +0000)]
MFC r313006 (by cem), r315983 (by bde):
Add an SSE4.2 implementation of crc32 for x86.

7 years agoMFC 313772:
andrew [Wed, 19 Apr 2017 15:59:16 +0000 (15:59 +0000)]
MFC 313772:

Load the new sp_el0 with interrupts disabled in fork_trampoline. If an
interrupt arrives in fork_trampoline after sp_el0 was written we may then
switch to a new thread, enter userland so change this stack pointer, then
return to this code with the wrong value. This fixes this case by moving
the load of sp_el0 until after interrupts have been disabled.

7 years agoMFC 305355:
andrew [Wed, 19 Apr 2017 15:46:34 +0000 (15:46 +0000)]
MFC 305355:

Explicitly include all .rodata.* sections in the kernel .rodata. This
helps link the kernel with lld as it will then put all these into a single
.rodata section.

7 years agoMFC r303442, r305343: remove CONSTRUCTORS from linker scripts
emaste [Wed, 19 Apr 2017 15:33:24 +0000 (15:33 +0000)]
MFC r303442, r305343: remove CONSTRUCTORS from linker scripts

r303442: remove CONSTRUCTORS from kernel linker scripts

r305343: remove CONSTRUCTORS from MIPS uboot linker script

The linker script CONSTRUCTORS keyword is only meaningful "when linking
object file formats which do not support arbitrary sections, such as
ECOFF and XCOFF"[1] and is ignored for other object file formats.

LLVM's lld does not yet accept (and ignore) CONSTRUCTORS, so just remove
CONSTRUCTORS from the linker script as it has no effect.

[1] https://sourceware.org/binutils/docs/ld/Output-Section-Keywords.html

Reported by: andrew
Sponsored by: The FreeBSD Foundation

7 years agoFix the arm64 userland building with lld:
andrew [Wed, 19 Apr 2017 14:07:35 +0000 (14:07 +0000)]
Fix the arm64 userland building with lld:

MFC 308124:
 On arm64 build the efi loader with -fPIC. Without this clang 3.9 will
 generate relocation in the self relocation code.

MFC 316608:
 Add -fPIC to the standalone build flags on arm64. This is needed as
 loader.efi is position independend, however we were not building it as
 such causing a build failure when building with lld.

MFC 315452:
 Mark the EFI PE header as allocated. While ld.bfd doesn't seem to care
 about not having this flag ld.lld fails to link without it.

7 years agoMFC r316532:
kib [Wed, 19 Apr 2017 11:13:32 +0000 (11:13 +0000)]
MFC r316532:
Make nfs pageout coherent with the dirty state of the buffers.

7 years agoMFC r316531:
kib [Wed, 19 Apr 2017 11:11:51 +0000 (11:11 +0000)]
MFC r316531:
Handle nfs IO_ASYNC write requests asynchronously.

7 years agoMFC r316529:
kib [Wed, 19 Apr 2017 11:10:02 +0000 (11:10 +0000)]
MFC r316529:
Handle possible vnode reclamation after ncl_vinvalbuf() call.

7 years agoMFC r316739:
kib [Wed, 19 Apr 2017 10:54:08 +0000 (10:54 +0000)]
MFC r316739:
Fix reporting of _SC_SEM_NSEMS_MAX and _SC_SEM_VALUE_MAX.

7 years agoMFC 316813,316815
sephe [Wed, 19 Apr 2017 03:39:50 +0000 (03:39 +0000)]
MFC 316813,316815

316813
    hyperv/storvsc: Use ULL for 64bits value shift.

    Reported by:    PVS
    Sponsored by:   Microsoft

316815
    hyperv/kvp: Remove always false condition.

    Reported by:    PVS
    Sponsored by:   Microsoft

7 years agoMFC 316515,316812
sephe [Wed, 19 Apr 2017 03:30:37 +0000 (03:30 +0000)]
MFC 316515,316812

316515
    hyperv/kbd: Add support for synthetic keyboard.

    Synthetic keyboard is the only supported keyboard on GEN2 Hyper-V.

    Submitted by:   Hongjiang Zhang <honzhan microsoft com>
    Sponsored by:   Microsoft
    Differential Revision:  https://reviews.freebsd.org/D10196

316812
    hyperv/kbd: Remove unnecessary assignment.

    Reported by:    PVS
    Sponsored by:   Microsoft

7 years agoMFC r316747
davidcs [Wed, 19 Apr 2017 03:18:11 +0000 (03:18 +0000)]
MFC r316747
Fix rss_ind_table entry for num_funcs > 1

7 years agoMFC r316720
davidcs [Wed, 19 Apr 2017 03:13:58 +0000 (03:13 +0000)]
MFC r316720
Fix defects reported by Coverity
  1. Deadcode in ecore_init_cache_line_size(), qlnx_ioctl() and
   qlnx_clean_filters()
  2. ARRAY_VS_SINGLETON issue in qlnx_remove_all_mcast_mac() and
   qlnx_update_rx_prod()

7 years agoMFC r316485
davidcs [Wed, 19 Apr 2017 03:09:20 +0000 (03:09 +0000)]
MFC r316485
  Add 25/40/100Gigabit Ethernet Driver version v1.3.0 for Cavium Inc's.
  Qlogic 45000 Series Adapters