svn commit: r364266 - stable/11/sbin/ifconfig

2020-08-15 Thread Eugene Grosbein
Author: eugen
Date: Sun Aug 16 02:05:18 2020
New Revision: 364266
URL: https://svnweb.freebsd.org/changeset/base/364266

Log:
  MFC r364186: ifconfig(8): plug memory leak

Modified:
  stable/11/sbin/ifconfig/ifconfig.c

Modified: stable/11/sbin/ifconfig/ifconfig.c
==
--- stable/11/sbin/ifconfig/ifconfig.c  Sun Aug 16 02:04:35 2020
(r364265)
+++ stable/11/sbin/ifconfig/ifconfig.c  Sun Aug 16 02:05:18 2020
(r364266)
@@ -714,6 +714,7 @@ group_member(const char *ifname, const char *match, co
if (nomatch)
nomatched &= fnmatch(nomatch, ifg->ifgrq_group, 0);
}
+   free(ifgr.ifgr_groups);
 
if (match && !nomatch)
return (matched);
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r364265 - stable/12/sbin/ifconfig

2020-08-15 Thread Eugene Grosbein
Author: eugen
Date: Sun Aug 16 02:04:35 2020
New Revision: 364265
URL: https://svnweb.freebsd.org/changeset/base/364265

Log:
  MFC r364186: ifconfig(8): plug memory leak

Modified:
  stable/12/sbin/ifconfig/ifconfig.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sbin/ifconfig/ifconfig.c
==
--- stable/12/sbin/ifconfig/ifconfig.c  Sat Aug 15 22:59:44 2020
(r364264)
+++ stable/12/sbin/ifconfig/ifconfig.c  Sun Aug 16 02:04:35 2020
(r364265)
@@ -748,6 +748,7 @@ group_member(const char *ifname, const char *match, co
if (nomatch)
nomatched &= fnmatch(nomatch, ifg->ifgrq_group, 0);
}
+   free(ifgr.ifgr_groups);
 
if (match && !nomatch)
return (matched);
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r364262 - head/sbin/fsck_ffs

2020-08-15 Thread Kirk McKusick
Author: mckusick
Date: Sat Aug 15 21:40:36 2020
New Revision: 364262
URL: https://svnweb.freebsd.org/changeset/base/364262

Log:
  Use the sbput() function to write alternate superblocks so that
  they get a checkhash.
  
  PR:   246983
  Sponsored by: Netflix

Modified:
  head/sbin/fsck_ffs/main.c

Modified: head/sbin/fsck_ffs/main.c
==
--- head/sbin/fsck_ffs/main.c   Sat Aug 15 19:45:50 2020(r364261)
+++ head/sbin/fsck_ffs/main.c   Sat Aug 15 21:40:36 2020(r364262)
@@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -604,10 +605,8 @@ checkfilesys(char *filesys)
/*
 * Write out the duplicate super blocks
 */
-   for (cylno = 0; cylno < sblock.fs_ncg; cylno++)
-   blwrite(fswritefd, (char *)&sblock,
-   fsbtodb(&sblock, cgsblock(&sblock, cylno)),
-   SBLOCKSIZE);
+   if (sbput(fswritefd, &sblock, sblock.fs_ncg) == 0)
+   fsmodified = 1;
}
if (rerun)
resolved = 0;
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r364261 - head/sys/kern

2020-08-15 Thread Conrad Meyer
Author: cem
Date: Sat Aug 15 19:45:50 2020
New Revision: 364261
URL: https://svnweb.freebsd.org/changeset/base/364261

Log:
  witness(4): Print stack of prior observed lock order on reversal
  
  The first time Witness observes a lock order between two locks, it records
  the caller's stack.  On detected reversal, print out that previous observed
  stack.  It is quite possible that the reported "LOR" is the correct
  ordering, and the violation was the observed earlier ordering.
  
  Reviewed by:  mjg
  Differential Revision:https://reviews.freebsd.org/D26070

Modified:
  head/sys/kern/subr_witness.c

Modified: head/sys/kern/subr_witness.c
==
--- head/sys/kern/subr_witness.cSat Aug 15 18:46:26 2020
(r364260)
+++ head/sys/kern/subr_witness.cSat Aug 15 19:45:50 2020
(r364261)
@@ -338,6 +338,7 @@ static void witness_ddb_display_list(int(*prnt)(const 
 static voidwitness_ddb_level_descendants(struct witness *parent, int l);
 static voidwitness_ddb_list(struct thread *td);
 #endif
+static voidwitness_enter_debugger(const char *msg);
 static voidwitness_debugger(int cond, const char *msg);
 static voidwitness_free(struct witness *m);
 static struct witness  *witness_get(void);
@@ -358,6 +359,8 @@ static struct witness_lock_order_data   *witness_lock_or
 static voidwitness_list_lock(struct lock_instance *instance,
int (*prnt)(const char *fmt, ...));
 static int witness_output(const char *fmt, ...) __printflike(1, 2);
+static int witness_output_drain(void *arg __unused, const char *data,
+   int len);
 static int witness_voutput(const char *fmt, va_list ap) __printflike(1, 0);
 static voidwitness_setflag(struct lock_object *lock, int flag, int set);
 
@@ -1281,6 +1284,8 @@ witness_checkorder(struct lock_object *lock, int flags
 
for (j = 0, lle = lock_list; lle != NULL; lle = lle->ll_next) {
for (i = lle->ll_count - 1; i >= 0; i--, j++) {
+   struct stack pstack;
+   bool pstackv, trace;
 
MPASS(j < LOCK_CHILDCOUNT * LOCK_NCHILDREN);
lock1 = &lle->ll_children[i];
@@ -1367,6 +1372,19 @@ witness_checkorder(struct lock_object *lock, int flags
 */
if (blessed(w, w1))
goto out;
+
+   trace = atomic_load_int(&witness_trace);
+   if (trace) {
+   struct witness_lock_order_data *data;
+
+   pstackv = false;
+   data = witness_lock_order_get(w, w1);
+   if (data != NULL) {
+   stack_copy(&data->wlod_stack,
+   &pstack);
+   pstackv = true;
+   }
+   }
mtx_unlock_spin(&w_mtx);
 
 #ifdef WITNESS_NO_VNODE
@@ -1413,28 +1431,60 @@ witness_checkorder(struct lock_object *lock, int flags
i--;
} while (i >= 0);
if (i < 0) {
-   witness_output(" 1st %p %s (%s) @ %s:%d\n",
+   witness_output(" 1st %p %s (%s, %s) @ %s:%d\n",
lock1->li_lock, lock1->li_lock->lo_name,
-   w1->w_name, fixup_filename(lock1->li_file),
+   w1->w_name, w1->w_class->lc_name,
+   fixup_filename(lock1->li_file),
lock1->li_line);
-   witness_output(" 2nd %p %s (%s) @ %s:%d\n", 
lock,
-   lock->lo_name, w->w_name,
-   fixup_filename(file), line);
+   witness_output(" 2nd %p %s (%s, %s) @ %s:%d\n",
+   lock, lock->lo_name, w->w_name,
+   w->w_class->lc_name, fixup_filename(file),
+   line);
} else {
-   witness_output(" 1st %p %s (%s) @ %s:%d\n",
+   struct witness *w2 = lock2->li_lock->lo_witness;
+
+   witness_output(" 1st %p %s (%s, %s) @ %s:%d\n",
lock2->li_lock, lock2->li_lock->lo_name,
-   lock2->li_lock->lo_witness->w_name,
+   w2->w_name, w2->w_class->lc_name,
fixup_filename(lock2->li_file),
lock2->li_line);
-   witness_output(

svn commit: r364260 - head/sys/contrib/pcg-c/include

2020-08-15 Thread Conrad Meyer
Author: cem
Date: Sat Aug 15 18:46:26 2020
New Revision: 364260
URL: https://svnweb.freebsd.org/changeset/base/364260

Log:
  pcg-c: Add 'static' to inline function definitions
  
  Make the inlines static to avoid kernel build failure with Clang 11 on i386.
  (The issue was not observed with Clang 10, currently in tree; reproduction
  depends on compiler inlining choices.)
  
  The compiler may choose not to inline 'bare' C inlines, and in that case
  expects a symbol of the same name will be available.  It does not
  automatically define that symbol at use, because of traditional C linking
  semantics. (In contrast, C++ does define it, and then deduplicates redundant
  definitions at link).  As we do not instantiate the C99 inline ('extern
  inline ...;'), the linker errors with "undefined symbol."
  
  Reported by:  dim
  Tested by:dim
  Fixes:r364219

Modified:
  head/sys/contrib/pcg-c/include/pcg_variants.h

Modified: head/sys/contrib/pcg-c/include/pcg_variants.h
==
--- head/sys/contrib/pcg-c/include/pcg_variants.h   Sat Aug 15 17:18:36 
2020(r364259)
+++ head/sys/contrib/pcg-c/include/pcg_variants.h   Sat Aug 15 18:46:26 
2020(r364260)
@@ -53,7 +53,7 @@ extern "C" {
  * Rotate helper functions.
  */
 
-inline uint8_t pcg_rotr_8(uint8_t value, unsigned int rot)
+static inline uint8_t pcg_rotr_8(uint8_t value, unsigned int rot)
 {
 /* Unfortunately, clang is kinda pathetic when it comes to properly
  * recognizing idiomatic rotate code, so for clang we actually provide
@@ -67,7 +67,7 @@ inline uint8_t pcg_rotr_8(uint8_t value, unsigned int 
 #endif
 }
 
-inline uint16_t pcg_rotr_16(uint16_t value, unsigned int rot)
+static inline uint16_t pcg_rotr_16(uint16_t value, unsigned int rot)
 {
 #if PCG_USE_INLINE_ASM && defined(__clang__) && (defined(__x86_64__)  || 
defined(__i386__))
 __asm__ ("rorw   %%cl, %0" : "=r" (value) : "0" (value), "c" (rot));
@@ -77,7 +77,7 @@ inline uint16_t pcg_rotr_16(uint16_t value, unsigned i
 #endif
 }
 
-inline uint32_t pcg_rotr_32(uint32_t value, unsigned int rot)
+static inline uint32_t pcg_rotr_32(uint32_t value, unsigned int rot)
 {
 #if PCG_USE_INLINE_ASM && defined(__clang__) && (defined(__x86_64__)  || 
defined(__i386__))
 __asm__ ("rorl   %%cl, %0" : "=r" (value) : "0" (value), "c" (rot));
@@ -87,7 +87,7 @@ inline uint32_t pcg_rotr_32(uint32_t value, unsigned i
 #endif
 }
 
-inline uint64_t pcg_rotr_64(uint64_t value, unsigned int rot)
+static inline uint64_t pcg_rotr_64(uint64_t value, unsigned int rot)
 {
 #if 0 && PCG_USE_INLINE_ASM && defined(__clang__) && (defined(__x86_64__)  || 
defined(__i386__))
 /* For whatever reason, clang actually *does* generate rotq by
@@ -100,7 +100,7 @@ inline uint64_t pcg_rotr_64(uint64_t value, unsigned i
 }
 
 #if PCG_HAS_128BIT_OPS
-inline pcg128_t pcg_rotr_128(pcg128_t value, unsigned int rot)
+static inline pcg128_t pcg_rotr_128(pcg128_t value, unsigned int rot)
 {
 return (value >> rot) | (value << ((- rot) & 127));
 }
@@ -112,24 +112,24 @@ inline pcg128_t pcg_rotr_128(pcg128_t value, unsigned 
 
 /* XSH RS */
 
-inline uint8_t pcg_output_xsh_rs_16_8(uint16_t state)
+static inline uint8_t pcg_output_xsh_rs_16_8(uint16_t state)
 {
 return (uint8_t)(((state >> 7u) ^ state) >> ((state >> 14u) + 3u));
 }
 
-inline uint16_t pcg_output_xsh_rs_32_16(uint32_t state)
+static inline uint16_t pcg_output_xsh_rs_32_16(uint32_t state)
 {
 return (uint16_t)(((state >> 11u) ^ state) >> ((state >> 30u) + 11u));
 }
 
-inline uint32_t pcg_output_xsh_rs_64_32(uint64_t state)
+static inline uint32_t pcg_output_xsh_rs_64_32(uint64_t state)
 {
 
 return (uint32_t)(((state >> 22u) ^ state) >> ((state >> 61u) + 22u));
 }
 
 #if PCG_HAS_128BIT_OPS
-inline uint64_t pcg_output_xsh_rs_128_64(pcg128_t state)
+static inline uint64_t pcg_output_xsh_rs_128_64(pcg128_t state)
 {
 return (uint64_t)(((state >> 43u) ^ state) >> ((state >> 124u) + 45u));
 }
@@ -137,23 +137,23 @@ inline uint64_t pcg_output_xsh_rs_128_64(pcg128_t stat
 
 /* XSH RR */
 
-inline uint8_t pcg_output_xsh_rr_16_8(uint16_t state)
+static inline uint8_t pcg_output_xsh_rr_16_8(uint16_t state)
 {
 return pcg_rotr_8(((state >> 5u) ^ state) >> 5u, state >> 13u);
 }
 
-inline uint16_t pcg_output_xsh_rr_32_16(uint32_t state)
+static inline uint16_t pcg_output_xsh_rr_32_16(uint32_t state)
 {
 return pcg_rotr_16(((state >> 10u) ^ state) >> 12u, state >> 28u);
 }
 
-inline uint32_t pcg_output_xsh_rr_64_32(uint64_t state)
+static inline uint32_t pcg_output_xsh_rr_64_32(uint64_t state)
 {
 return pcg_rotr_32(((state >> 18u) ^ state) >> 27u, state >> 59u);
 }
 
 #if PCG_HAS_128BIT_OPS
-inline uint64_t pcg_output_xsh_rr_128_64(pcg128_t state)
+static inline uint64_t pcg_output_xsh_rr_128_64(pcg128_t state)
 {
 return pcg_rotr_64(((state >> 35u) ^ state) >> 58u, state >> 122u);
 }
@@ -161,25 +161,25 @@ inline uint64_t pcg_output_xsh_rr_12

svn commit: r364259 - stable/12/share/man/man4

2020-08-15 Thread Edward Tomasz Napierala
Author: trasz
Date: Sat Aug 15 17:18:36 2020
New Revision: 364259
URL: https://svnweb.freebsd.org/changeset/base/364259

Log:
  MFC r354139:
  
  Document the fact that Linux binaries depend on pty(4).
  
  Sponsored by: The FreeBSD Foundation

Modified:
  stable/12/share/man/man4/linux.4
  stable/12/share/man/man4/pty.4
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/share/man/man4/linux.4
==
--- stable/12/share/man/man4/linux.4Sat Aug 15 17:02:23 2020
(r364258)
+++ stable/12/share/man/man4/linux.4Sat Aug 15 17:18:36 2020
(r364259)
@@ -139,6 +139,7 @@ limited Linux system file system
 .El
 .Sh SEE ALSO
 .Xr brandelf 1 ,
+.Xr pty 4 ,
 .Xr elf 5 ,
 .Xr fdescfs 5 ,
 .Xr linprocfs 5 ,

Modified: stable/12/share/man/man4/pty.4
==
--- stable/12/share/man/man4/pty.4  Sat Aug 15 17:02:23 2020
(r364258)
+++ stable/12/share/man/man4/pty.4  Sat Aug 15 17:18:36 2020
(r364259)
@@ -27,19 +27,21 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd August 20, 2008
+.Dd October 28, 2019
 .Dt PTY 4
 .Os
 .Sh NAME
 .Nm pty
-.Nd BSD-style and System V-style compatibility pseudo-terminal driver
+.Nd old-style compatibility pseudo-terminal driver
 .Sh SYNOPSIS
 .Cd "device pty"
 .Sh DESCRIPTION
 The
 .Nm
 driver provides support for the traditional BSD naming scheme that was
-used for accessing pseudo-terminals.
+used for accessing pseudo-terminals before it was replaced by
+.Xr pts 4 .
+This traditional naming is still used in Linux.
 When the device
 .Pa /dev/ptyXX
 is being opened, a new terminal shall be created with the
@@ -59,7 +61,8 @@ interface.
 It is only provided for compatibility with older C libraries
 that tried to open such devices when
 .Xr posix_openpt 2
-was being called.
+was being called,
+and for running Linux binaries.
 .Sh FILES
 The BSD-style compatibility pseudo-terminal driver uses the following
 device names:
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r364258 - stable/12/sys/amd64/linux

2020-08-15 Thread Edward Tomasz Napierala
Author: trasz
Date: Sat Aug 15 17:02:23 2020
New Revision: 364258
URL: https://svnweb.freebsd.org/changeset/base/364258

Log:
  MFC r351783:
  
  Unbreak Linux binaries linked against new glibc, such as the ones
  from recent Ubuntu versions.  Without it they segfault on startup.
  
  Sponsored by: The FreeBSD Foundation

Modified:
  stable/12/sys/amd64/linux/linux_sysvec.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/amd64/linux/linux_sysvec.c
==
--- stable/12/sys/amd64/linux/linux_sysvec.cSat Aug 15 16:48:58 2020
(r364257)
+++ stable/12/sys/amd64/linux/linux_sysvec.cSat Aug 15 17:02:23 2020
(r364258)
@@ -357,6 +357,12 @@ linux_copyout_strings(struct image_params *imgp)
 */
vectp -= imgp->args->argc + 1 + imgp->args->envc + 1;
 
+   /*
+* Starting with 2.24, glibc depends on a 16-byte stack alignment.
+* One "long argc" will be prepended later.
+*/
+   vectp = (char **)uintptr_t)vectp + 8) & ~0xF) - 8);
+
/* vectp also becomes our initial stack base. */
stack_base = (register_t *)vectp;
 
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r364257 - head/sys/net

2020-08-15 Thread Qing Li
Author: qingli
Date: Sat Aug 15 16:48:58 2020
New Revision: 364257
URL: https://svnweb.freebsd.org/changeset/base/364257

Log:
  Correct the mask byte order when checking for reserved bits.
  
  Reviewed by:  gnn
  Approved by:  gnn
  MFC after:2 weeks
  Differential Revision:https://reviews.freebsd.org/D26071

Modified:
  head/sys/net/if_vxlan.c

Modified: head/sys/net/if_vxlan.c
==
--- head/sys/net/if_vxlan.c Sat Aug 15 16:15:34 2020(r364256)
+++ head/sys/net/if_vxlan.c Sat Aug 15 16:48:58 2020(r364257)
@@ -2545,7 +2545,7 @@ vxlan_rcv_udp_packet(struct mbuf *m, int offset, struc
 * the behavior of the Linux implementation.
 */
if (vxh->vxlh_flags != htonl(VXLAN_HDR_FLAGS_VALID_VNI) ||
-   vxh->vxlh_vni & ~htonl(VXLAN_VNI_MASK))
+   vxh->vxlh_vni & ~VXLAN_VNI_MASK)
goto out;
 
vni = ntohl(vxh->vxlh_vni) >> VXLAN_HDR_VNI_SHIFT;
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r364256 - head/sys/riscv/riscv

2020-08-15 Thread Mitchell Horne
Author: mhorne
Date: Sat Aug 15 16:15:34 2020
New Revision: 364256
URL: https://svnweb.freebsd.org/changeset/base/364256

Log:
  RISC-V: copy kernelname from the environment
  
  This is allows kern.bootfile to report the correct value.

Modified:
  head/sys/riscv/riscv/machdep.c

Modified: head/sys/riscv/riscv/machdep.c
==
--- head/sys/riscv/riscv/machdep.c  Sat Aug 15 15:06:39 2020
(r364255)
+++ head/sys/riscv/riscv/machdep.c  Sat Aug 15 16:15:34 2020
(r364256)
@@ -861,6 +861,7 @@ initriscv(struct riscv_bootparams *rvbp)
phandle_t chosen;
uint32_t hart;
 #endif
+   char *env;
 
TSRAW(&thread0, TS_ENTER, __func__, NULL);
 
@@ -954,6 +955,10 @@ initriscv(struct riscv_bootparams *rvbp)
mutex_init();
init_param2(physmem);
kdb_init();
+
+   env = kern_getenv("kernelname");
+   if (env != NULL)
+   strlcpy(kernelname, env, sizeof(kernelname));
 
if (boothowto & RB_VERBOSE)
physmem_print_tables();
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r364255 - head/sys/arm64/arm64

2020-08-15 Thread Mitchell Horne
Author: mhorne
Date: Sat Aug 15 15:06:39 2020
New Revision: 364255
URL: https://svnweb.freebsd.org/changeset/base/364255

Log:
  arm64: parse HWCAP values using user_cpu_desc
  
  The hard work of parsing fields per-CPU, handling heterogeneous
  features, and excluding features from userspace is already done by
  update_special_regs. We can build our set of HWCAPs from the result.
  
  This exposed a small bug in update_special_regs, in which the
  generated bitmask was not wide enough, and as a result some bits
  weren't being exposed in user_cpu_desc. Fix this.
  
  While here, adjust some formatting.
  
  Reviewed by:  andrew
  MFC after:2 weeks
  Sponsored by: The FreeBSD Foundation
  Differential Revision:https://reviews.freebsd.org/D26069

Modified:
  head/sys/arm64/arm64/identcpu.c

Modified: head/sys/arm64/arm64/identcpu.c
==
--- head/sys/arm64/arm64/identcpu.c Sat Aug 15 14:57:53 2020
(r364254)
+++ head/sys/arm64/arm64/identcpu.c Sat Aug 15 15:06:39 2020
(r364255)
@@ -47,7 +47,7 @@ __FBSDID("$FreeBSD$");
 #include 
 
 static void print_cpu_features(u_int cpu);
-static u_long parse_cpu_features_hwcap(u_int cpu);
+static u_long parse_cpu_features_hwcap(void);
 
 char machine[] = "arm64";
 
@@ -1095,7 +1095,7 @@ update_special_regs(u_int cpu)
for (j = 0; fields[j].type != 0; j++) {
switch (fields[j].type & MRS_TYPE_MASK) {
case MRS_EXACT:
-   user_reg &= ~(0xfu << fields[j].shift);
+   user_reg &= ~(0xful << fields[j].shift);
user_reg |=
(uint64_t)MRS_EXACT_FIELD(fields[j].type) <<
fields[j].shift;
@@ -1131,7 +1131,6 @@ static void
 identify_cpu_sysinit(void *dummy __unused)
 {
int cpu;
-   u_long hwcap;
bool dic, idc;
 
dic = (allow_dic != 0);
@@ -1139,11 +1138,6 @@ identify_cpu_sysinit(void *dummy __unused)
 
CPU_FOREACH(cpu) {
check_cpu_regs(cpu);
-   hwcap = parse_cpu_features_hwcap(cpu);
-   if (elf_hwcap == 0)
-   elf_hwcap = hwcap;
-   else
-   elf_hwcap &= hwcap;
if (cpu != 0)
update_special_regs(cpu);
 
@@ -1153,6 +1147,9 @@ identify_cpu_sysinit(void *dummy __unused)
idc = false;
}
 
+   /* Exposed to userspace as AT_HWCAP */
+   elf_hwcap = parse_cpu_features_hwcap();
+
if (dic && idc) {
arm64_icache_sync_range = &arm64_dic_idc_icache_sync_range;
if (bootverbose)
@@ -1184,43 +1181,49 @@ cpu_features_sysinit(void *dummy __unused)
 SYSINIT(cpu_features, SI_SUB_SMP, SI_ORDER_ANY, cpu_features_sysinit, NULL);
 
 static u_long
-parse_cpu_features_hwcap(u_int cpu)
+parse_cpu_features_hwcap(void)
 {
u_long hwcap = 0;
 
-   if (ID_AA64ISAR0_DP_VAL(cpu_desc[cpu].id_aa64isar0) == 
ID_AA64ISAR0_DP_IMPL)
+   if (ID_AA64ISAR0_DP_VAL(user_cpu_desc.id_aa64isar0) ==
+   ID_AA64ISAR0_DP_IMPL)
hwcap |= HWCAP_ASIMDDP;
 
-   if (ID_AA64ISAR0_SM4_VAL(cpu_desc[cpu].id_aa64isar0) == 
ID_AA64ISAR0_SM4_IMPL)
+   if (ID_AA64ISAR0_SM4_VAL(user_cpu_desc.id_aa64isar0) ==
+   ID_AA64ISAR0_SM4_IMPL)
hwcap |= HWCAP_SM4;
 
-   if (ID_AA64ISAR0_SM3_VAL(cpu_desc[cpu].id_aa64isar0) == 
ID_AA64ISAR0_SM3_IMPL)
+   if (ID_AA64ISAR0_SM3_VAL(user_cpu_desc.id_aa64isar0) ==
+   ID_AA64ISAR0_SM3_IMPL)
hwcap |= HWCAP_SM3;
 
-   if (ID_AA64ISAR0_RDM_VAL(cpu_desc[cpu].id_aa64isar0) == 
ID_AA64ISAR0_RDM_IMPL)
+   if (ID_AA64ISAR0_RDM_VAL(user_cpu_desc.id_aa64isar0) ==
+   ID_AA64ISAR0_RDM_IMPL)
hwcap |= HWCAP_ASIMDRDM;
 
-   if (ID_AA64ISAR0_Atomic_VAL(cpu_desc[cpu].id_aa64isar0) == 
ID_AA64ISAR0_Atomic_IMPL)
+   if (ID_AA64ISAR0_Atomic_VAL(user_cpu_desc.id_aa64isar0) ==
+   ID_AA64ISAR0_Atomic_IMPL)
hwcap |= HWCAP_ATOMICS;
 
-   if (ID_AA64ISAR0_CRC32_VAL(cpu_desc[cpu].id_aa64isar0) == 
ID_AA64ISAR0_CRC32_BASE)
+   if (ID_AA64ISAR0_CRC32_VAL(user_cpu_desc.id_aa64isar0) ==
+   ID_AA64ISAR0_CRC32_BASE)
hwcap |= HWCAP_CRC32;
 
-   switch (ID_AA64ISAR0_SHA2_VAL(cpu_desc[cpu].id_aa64isar0)) {
-   case ID_AA64ISAR0_SHA2_BASE:
-   hwcap |= HWCAP_SHA2;
-   break;
-   case ID_AA64ISAR0_SHA2_512:
-   hwcap |= HWCAP_SHA2 | HWCAP_SHA512;
-   break;
+   switch (ID_AA64ISAR0_SHA2_VAL(user_cpu_desc.id_aa64isar0)) {
+   case ID_AA64ISAR0_SHA2_BASE:
+   hwcap |= HWCAP_SHA2;
+   break;
+   case ID_AA64ISAR0_SHA2_512:
+   hwcap |= HW

svn commit: r364254 - in head/sys/arm64: arm64 include

2020-08-15 Thread Mitchell Horne
Author: mhorne
Date: Sat Aug 15 14:57:53 2020
New Revision: 364254
URL: https://svnweb.freebsd.org/changeset/base/364254

Log:
  arm64: update instruction set attribute register definitions
  
  This adds definitions for the latest additions to the AA64ISAR[01] ID
  registers. This brings these registers in sync with ARMv8.6 initial spec
  release.
  
  An future change will parse many of these fields for HWCAP features.
  
  Reviewed by:  andrew, manu, markj (all previous versions)
  MFC after:2 weeks
  Sponsored by: The FreeBSD Foundation
  Differential Revision:https://reviews.freebsd.org/D26029

Modified:
  head/sys/arm64/arm64/identcpu.c
  head/sys/arm64/include/armreg.h

Modified: head/sys/arm64/arm64/identcpu.c
==
--- head/sys/arm64/arm64/identcpu.c Sat Aug 15 12:29:55 2020
(r364253)
+++ head/sys/arm64/arm64/identcpu.c Sat Aug 15 14:57:53 2020
(r364254)
@@ -364,6 +364,31 @@ static struct mrs_field id_aa64dfr1_fields[] = {
 
 
 /* ID_AA64ISAR0_EL1 */
+static struct mrs_field_value id_aa64isar0_rndr[] = {
+   MRS_FIELD_VALUE(ID_AA64ISAR0_RNDR_NONE, ""),
+   MRS_FIELD_VALUE(ID_AA64ISAR0_RNDR_IMPL, "RNG"),
+   MRS_FIELD_VALUE_END,
+};
+
+static struct mrs_field_value id_aa64isar0_tlb[] = {
+   MRS_FIELD_VALUE(ID_AA64ISAR0_TLB_NONE, ""),
+   MRS_FIELD_VALUE(ID_AA64ISAR0_TLB_TLBIOS, "TLBI-OS"),
+   MRS_FIELD_VALUE(ID_AA64ISAR0_TLB_TLBIOSR, "TLBI-OSR"),
+   MRS_FIELD_VALUE_END,
+};
+
+static struct mrs_field_value id_aa64isar0_ts[] = {
+   MRS_FIELD_VALUE(ID_AA64ISAR0_TS_NONE, ""),
+   MRS_FIELD_VALUE(ID_AA64ISAR0_TS_CondM_8_4, "CondM-8.4"),
+   MRS_FIELD_VALUE(ID_AA64ISAR0_TS_CondM_8_5, "CondM-8.5"),
+   MRS_FIELD_VALUE_END,
+};
+
+static struct mrs_field_value id_aa64isar0_fhm[] = {
+   MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, FHM, NONE, IMPL),
+   MRS_FIELD_VALUE_END,
+};
+
 static struct mrs_field_value id_aa64isar0_dp[] = {
MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR0, DP, NONE, IMPL),
MRS_FIELD_VALUE_END,
@@ -417,6 +442,10 @@ static struct mrs_field_value id_aa64isar0_aes[] = {
 };
 
 static struct mrs_field id_aa64isar0_fields[] = {
+   MRS_FIELD(ID_AA64ISAR0, RNDR, false, MRS_LOWER, id_aa64isar0_rndr),
+   MRS_FIELD(ID_AA64ISAR0, TLB, false, MRS_LOWER, id_aa64isar0_tlb),
+   MRS_FIELD(ID_AA64ISAR0, TS, false, MRS_LOWER, id_aa64isar0_ts),
+   MRS_FIELD(ID_AA64ISAR0, FHM, false, MRS_LOWER, id_aa64isar0_fhm),
MRS_FIELD(ID_AA64ISAR0, DP, false, MRS_LOWER, id_aa64isar0_dp),
MRS_FIELD(ID_AA64ISAR0, SM4, false, MRS_LOWER, id_aa64isar0_sm4),
MRS_FIELD(ID_AA64ISAR0, SM3, false, MRS_LOWER, id_aa64isar0_sm3),
@@ -432,6 +461,37 @@ static struct mrs_field id_aa64isar0_fields[] = {
 
 
 /* ID_AA64ISAR1_EL1 */
+static struct mrs_field_value id_aa64isar1_i8mm[] = {
+   MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, I8MM, NONE, IMPL),
+   MRS_FIELD_VALUE_END,
+};
+
+static struct mrs_field_value id_aa64isar1_dgh[] = {
+   MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, DGH, NONE, IMPL),
+   MRS_FIELD_VALUE_END,
+};
+
+static struct mrs_field_value id_aa64isar1_bf16[] = {
+   MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, BF16, NONE, IMPL),
+   MRS_FIELD_VALUE_END,
+};
+
+static struct mrs_field_value id_aa64isar1_specres[] = {
+   MRS_FIELD_VALUE(ID_AA64ISAR1_SPECRES_NONE, ""),
+   MRS_FIELD_VALUE(ID_AA64ISAR1_SPECRES_IMPL, "PredInv"),
+   MRS_FIELD_VALUE_END,
+};
+
+static struct mrs_field_value id_aa64isar1_sb[] = {
+   MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, SB, NONE, IMPL),
+   MRS_FIELD_VALUE_END,
+};
+
+static struct mrs_field_value id_aa64isar1_frintts[] = {
+   MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, FRINTTS, NONE, IMPL),
+   MRS_FIELD_VALUE_END,
+};
+
 static struct mrs_field_value id_aa64isar1_gpi[] = {
MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, GPI, NONE, IMPL),
MRS_FIELD_VALUE_END,
@@ -443,7 +503,9 @@ static struct mrs_field_value id_aa64isar1_gpa[] = {
 };
 
 static struct mrs_field_value id_aa64isar1_lrcpc[] = {
-   MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, LRCPC, NONE, IMPL),
+   MRS_FIELD_VALUE(ID_AA64ISAR1_LRCPC_NONE, ""),
+   MRS_FIELD_VALUE(ID_AA64ISAR1_LRCPC_RCPC_8_3, "RCPC-8.3"),
+   MRS_FIELD_VALUE(ID_AA64ISAR1_LRCPC_RCPC_8_4, "RCPC-8.4"),
MRS_FIELD_VALUE_END,
 };
 
@@ -463,16 +525,26 @@ static struct mrs_field_value id_aa64isar1_api[] = {
 };
 
 static struct mrs_field_value id_aa64isar1_apa[] = {
-   MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, GPA, NONE, IMPL),
+   MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, APA, NONE, IMPL),
MRS_FIELD_VALUE_END,
 };
 
 static struct mrs_field_value id_aa64isar1_dpb[] = {
-   MRS_FIELD_VALUE_NONE_IMPL(ID_AA64ISAR1, DPB, NONE, IMPL),
+   MRS_FIELD_VALUE(ID_AA64ISAR1_DPB_NONE, ""),
+   MRS_FIELD_VALUE(ID_AA64ISAR1_DPB_DCCVAP, "DCPoP"),
+   MRS_FIELD_VALUE(ID_AA64I

svn commit: r364250 - in head/sys: net netinet6

2020-08-15 Thread Alexander V. Chernikov
Author: melifaro
Date: Sat Aug 15 11:37:44 2020
New Revision: 364250
URL: https://svnweb.freebsd.org/changeset/base/364250

Log:
  Make net.inet6.ip6.deembed_scopeid behaviour default & remove sysctl.
  
  Submitted by: Neel Chauhan 
  Differential Revision:https://reviews.freebsd.org/D25637

Modified:
  head/sys/net/rtsock.c
  head/sys/netinet6/in6.c
  head/sys/netinet6/scope6.c
  head/sys/netinet6/scope6_var.h

Modified: head/sys/net/rtsock.c
==
--- head/sys/net/rtsock.c   Sat Aug 15 11:28:01 2020(r364249)
+++ head/sys/net/rtsock.c   Sat Aug 15 11:37:44 2020(r364250)
@@ -900,7 +900,7 @@ route_output(struct mbuf *m, struct socket *so, ...)
error = lla_rt_output(rtm, &info);
 #ifdef INET6
if (error == 0)
-   rti_need_deembed = (V_deembed_scopeid) ? 1 : 0;
+   rti_need_deembed = 1;
 #endif
goto flush;
}
@@ -915,7 +915,7 @@ route_output(struct mbuf *m, struct socket *so, ...)
error = rib_action(fibnum, rtm->rtm_type, &info, &rc);
if (error == 0) {
 #ifdef INET6
-   rti_need_deembed = (V_deembed_scopeid) ? 1 : 0;
+   rti_need_deembed = 1;
 #endif
rtm->rtm_index = rc.rc_nh_new->nh_ifp->if_index;
nh = rc.rc_nh_new;
@@ -930,7 +930,7 @@ route_output(struct mbuf *m, struct socket *so, ...)
}
 #ifdef INET6
/* rt_msg2() will not be used when RTM_DELETE fails. */
-   rti_need_deembed = (V_deembed_scopeid) ? 1 : 0;
+   rti_need_deembed = 1;
 #endif
break;
 
@@ -1192,7 +1192,7 @@ rtsock_msg_mbuf(int type, struct rt_addrinfo *rtinfo)
rtinfo->rti_addrs |= (1 << i);
dlen = SA_SIZE(sa);
 #ifdef INET6
-   if (V_deembed_scopeid && sa->sa_family == AF_INET6) {
+   if (sa->sa_family == AF_INET6) {
sin6 = (struct sockaddr_in6 *)&ss;
bcopy(sa, sin6, sizeof(*sin6));
if (sa6_recoverscope(sin6) == 0)
@@ -1298,7 +1298,7 @@ rtsock_msg_buffer(int type, struct rt_addrinfo *rtinfo
dlen = SA_SIZE(sa);
if (cp != NULL && buflen >= dlen) {
 #ifdef INET6
-   if (V_deembed_scopeid && sa->sa_family == AF_INET6) {
+   if (sa->sa_family == AF_INET6) {
sin6 = (struct sockaddr_in6 *)&ss;
bcopy(sa, sin6, sizeof(*sin6));
if (sa6_recoverscope(sin6) == 0)

Modified: head/sys/netinet6/in6.c
==
--- head/sys/netinet6/in6.c Sat Aug 15 11:28:01 2020(r364249)
+++ head/sys/netinet6/in6.c Sat Aug 15 11:37:44 2020(r364250)
@@ -2374,8 +2374,7 @@ in6_lltable_dump_entry(struct lltable *llt, struct lle
ndpc.rtm.rtm_type = RTM_GET;
ndpc.rtm.rtm_flags = RTF_UP;
ndpc.rtm.rtm_addrs = RTA_DST | RTA_GATEWAY;
-   if (V_deembed_scopeid)
-   sa6_recoverscope(&ndpc.sin6);
+   sa6_recoverscope(&ndpc.sin6);
 
/* publish */
if (lle->la_flags & LLE_PUB)

Modified: head/sys/netinet6/scope6.c
==
--- head/sys/netinet6/scope6.c  Sat Aug 15 11:28:01 2020(r364249)
+++ head/sys/netinet6/scope6.c  Sat Aug 15 11:37:44 2020(r364250)
@@ -60,11 +60,7 @@ VNET_DEFINE(int, ip6_use_defzone) = 1;
 #else
 VNET_DEFINE(int, ip6_use_defzone) = 0;
 #endif
-VNET_DEFINE(int, deembed_scopeid) = 1;
 SYSCTL_DECL(_net_inet6_ip6);
-SYSCTL_INT(_net_inet6_ip6, OID_AUTO, deembed_scopeid, CTLFLAG_VNET | 
CTLFLAG_RW,
-&VNET_NAME(deembed_scopeid), 0,
-"Extract embedded zone ID and set it to sin6_scope_id in sockaddr_in6.");
 
 /*
  * The scope6_lock protects the global sid default stored in

Modified: head/sys/netinet6/scope6_var.h
==
--- head/sys/netinet6/scope6_var.h  Sat Aug 15 11:28:01 2020
(r364249)
+++ head/sys/netinet6/scope6_var.h  Sat Aug 15 11:37:44 2020
(r364250)
@@ -47,9 +47,6 @@ struct scope6_id {
uint32_t s6id_list[IPV6_ADDR_SCOPES_COUNT];
 };
 
-VNET_DECLARE(int, deembed_scopeid);
-#define V_deembed_scopeid   VNET(deembed_scopeid)
-
 void   scope6_init(void);
 struct scope6_id *scope6_ifattach(struct ifnet *);
 void   scope6_ifdetach(struct scope6_id *);
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r364249 - vendor/llvm-project/llvmorg-11.0.0-rc1-47-gff47911ddfc

2020-08-15 Thread Dimitry Andric
Author: dim
Date: Sat Aug 15 11:28:01 2020
New Revision: 364249
URL: https://svnweb.freebsd.org/changeset/base/364249

Log:
  Tag llvm-project branch release/11.x llvmorg-11.0.0-rc1-47-gff47911ddfc.

Added:
  vendor/llvm-project/llvmorg-11.0.0-rc1-47-gff47911ddfc/
 - copied from r364248, vendor/llvm-project/release-11.x/
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r364248 - in vendor/llvm-project/release-11.x: clang/lib/AST clang/lib/Serialization compiler-rt/lib/profile lld/ELF llvm/include/llvm llvm/lib/Analysis llvm/lib/CodeGen llvm/lib/CodeGe...

2020-08-15 Thread Dimitry Andric
Author: dim
Date: Sat Aug 15 11:27:21 2020
New Revision: 364248
URL: https://svnweb.freebsd.org/changeset/base/364248

Log:
  Vendor import of llvm-project branch release/11.x
  llvmorg-11.0.0-rc1-47-gff47911ddfc.

Modified:
  vendor/llvm-project/release-11.x/clang/lib/AST/ExprConstant.cpp
  vendor/llvm-project/release-11.x/clang/lib/Serialization/ASTReaderDecl.cpp
  vendor/llvm-project/release-11.x/compiler-rt/lib/profile/InstrProfilingPort.h
  vendor/llvm-project/release-11.x/lld/ELF/InputSection.cpp
  vendor/llvm-project/release-11.x/llvm/include/llvm/module.modulemap
  vendor/llvm-project/release-11.x/llvm/lib/Analysis/LoopAccessAnalysis.cpp
  vendor/llvm-project/release-11.x/llvm/lib/CodeGen/AtomicExpandPass.cpp
  
vendor/llvm-project/release-11.x/llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
  
vendor/llvm-project/release-11.x/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
  
vendor/llvm-project/release-11.x/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
  
vendor/llvm-project/release-11.x/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
  vendor/llvm-project/release-11.x/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
  vendor/llvm-project/release-11.x/llvm/lib/Target/PowerPC/PPCInstrInfo.h
  vendor/llvm-project/release-11.x/openmp/runtime/src/kmp_lock.cpp

Modified: vendor/llvm-project/release-11.x/clang/lib/AST/ExprConstant.cpp
==
--- vendor/llvm-project/release-11.x/clang/lib/AST/ExprConstant.cpp Sat Aug 
15 11:22:07 2020(r364247)
+++ vendor/llvm-project/release-11.x/clang/lib/AST/ExprConstant.cpp Sat Aug 
15 11:27:21 2020(r364248)
@@ -8974,6 +8974,7 @@ bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNe
   const Expr *Init = E->getInitializer();
   const InitListExpr *ResizedArrayILE = nullptr;
   const CXXConstructExpr *ResizedArrayCCE = nullptr;
+  bool ValueInit = false;
 
   QualType AllocType = E->getAllocatedType();
   if (Optional ArraySize = E->getArraySize()) {
@@ -9017,7 +9018,14 @@ bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNe
 //   -- the new-initializer is a braced-init-list and the number of
 //  array elements for which initializers are provided [...]
 //  exceeds the number of elements to initialize
-if (Init && !isa(Init)) {
+if (!Init) {
+  // No initialization is performed.
+} else if (isa(Init) ||
+   isa(Init)) {
+  ValueInit = true;
+} else if (auto *CCE = dyn_cast(Init)) {
+  ResizedArrayCCE = CCE;
+} else {
   auto *CAT = Info.Ctx.getAsConstantArrayType(Init->getType());
   assert(CAT && "unexpected type for array initializer");
 
@@ -9040,8 +9048,6 @@ bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNe
   // special handling for this case when we initialize.
   if (InitBound != AllocBound)
 ResizedArrayILE = cast(Init);
-} else if (Init) {
-  ResizedArrayCCE = cast(Init);
 }
 
 AllocType = Info.Ctx.getConstantArrayType(AllocType, ArrayBound, nullptr,
@@ -9102,7 +9108,11 @@ bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNe
   return false;
   }
 
-  if (ResizedArrayILE) {
+  if (ValueInit) {
+ImplicitValueInitExpr VIE(AllocType);
+if (!EvaluateInPlace(*Val, Info, Result, &VIE))
+  return false;
+  } else if (ResizedArrayILE) {
 if (!EvaluateArrayNewInitList(Info, Result, *Val, ResizedArrayILE,
   AllocType))
   return false;

Modified: 
vendor/llvm-project/release-11.x/clang/lib/Serialization/ASTReaderDecl.cpp
==
--- vendor/llvm-project/release-11.x/clang/lib/Serialization/ASTReaderDecl.cpp  
Sat Aug 15 11:22:07 2020(r364247)
+++ vendor/llvm-project/release-11.x/clang/lib/Serialization/ASTReaderDecl.cpp  
Sat Aug 15 11:27:21 2020(r364248)
@@ -2912,9 +2912,11 @@ static bool isSameTemplateParameter(const NamedDecl *X
   return false;
 if (TX->hasTypeConstraint() != TY->hasTypeConstraint())
   return false;
-if (TX->hasTypeConstraint()) {
-  const TypeConstraint *TXTC = TX->getTypeConstraint();
-  const TypeConstraint *TYTC = TY->getTypeConstraint();
+const TypeConstraint *TXTC = TX->getTypeConstraint();
+const TypeConstraint *TYTC = TY->getTypeConstraint();
+if (!TXTC != !TYTC)
+  return false;
+if (TXTC && TYTC) {
   if (TXTC->getNamedConcept() != TYTC->getNamedConcept())
 return false;
   if (TXTC->hasExplicitTemplateArgs() != TYTC->hasExplicitTemplateArgs())

Modified: 
vendor/llvm-project/release-11.x/compiler-rt/lib/profile/InstrProfilingPort.h
==
--- 
vendor/llvm-project/release-11.x/compiler-rt/lib/profile/InstrProfilingPort.h   
Sat Aug 15 11:22:07 2020(r364247)
+++ 
vendor/llvm-project/release-11.x/compiler-rt/lib/profile/

svn commit: r364247 - head/sys/netinet

2020-08-15 Thread Michael Tuexen
Author: tuexen
Date: Sat Aug 15 11:22:07 2020
New Revision: 364247
URL: https://svnweb.freebsd.org/changeset/base/364247

Log:
  Enter epoch earlier. This is needed because we are exiting it also
  in error cases.
  
  MFC after:1 week

Modified:
  head/sys/netinet/sctputil.c

Modified: head/sys/netinet/sctputil.c
==
--- head/sys/netinet/sctputil.c Sat Aug 15 07:22:48 2020(r364246)
+++ head/sys/netinet/sctputil.c Sat Aug 15 11:22:07 2020(r364247)
@@ -1727,6 +1727,7 @@ sctp_timeout_handler(void *t)
stcb = (struct sctp_tcb *)tmr->tcb;
net = (struct sctp_nets *)tmr->net;
CURVNET_SET((struct vnet *)tmr->vnet);
+   NET_EPOCH_ENTER(et);
did_output = 1;
released_asoc_reference = false;
 
@@ -1786,7 +1787,6 @@ sctp_timeout_handler(void *t)
 
/* Record in stopped_from which timeout occurred. */
tmr->stopped_from = type;
-   NET_EPOCH_ENTER(et);
/* mark as being serviced now */
if (SCTP_OS_TIMER_PENDING(&tmr->timer)) {
/*
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r364246 - svnadmin/conf

2020-08-15 Thread Hiroki Sato
Author: hrs
Date: Sat Aug 15 07:22:48 2020
New Revision: 364246
URL: https://svnweb.freebsd.org/changeset/base/364246

Log:
  Revert r364244 since commit of r364245 completed.

Modified:
  svnadmin/conf/sizelimit.conf

Modified: svnadmin/conf/sizelimit.conf
==
--- svnadmin/conf/sizelimit.confSat Aug 15 07:19:37 2020
(r364245)
+++ svnadmin/conf/sizelimit.confSat Aug 15 07:22:48 2020
(r364246)
@@ -19,7 +19,6 @@ andrew
 bapt
 davidcs
 dim2048
-hrs
 imp
 jb
 jeff
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r364245 - in head/tools/tools/locale: . etc/final-maps patch tools

2020-08-15 Thread Hiroki Sato
Author: hrs
Date: Sat Aug 15 07:19:37 2020
New Revision: 364245
URL: https://svnweb.freebsd.org/changeset/base/364245

Log:
  - Update to Unicode CLDR v35 (Unicode 12.0).
  
  - Update tools/tools/locale to add make targets to automatically
generate locale source files.  With this change, just typing
"make obj && make -j4" will rebuild them.  Check README for more details.
  
  - Fix issues in ja_JP ctypedef and range specification support
in utf8-rollup.pl.
  
  - Add a temporary patch for UnicodeData.txt to fix code ranges of
CJK Ideograph Extension A and Extension B.
  
  - tools/cldr2def.pl:
  Use eucJP for ja_JP ctypedef because eucJP is not compatible with UTF-8.
  
  - tools/convert_map.pl:
  Add a verbose error message.
  
  - tools/utf8-rollup.pl:
  Normalize entries to use Unicode, not UTF-8.
  
  Reviewed by:  bapt
  Differential Revision:https://reviews.freebsd.org/D25503

Added:
  head/tools/tools/locale/patch/
  head/tools/tools/locale/patch/patch-UnicodeData.txt   (contents, props 
changed)
Modified:
  head/tools/tools/locale/Makefile
  head/tools/tools/locale/README
  head/tools/tools/locale/etc/final-maps/map.UTF-8
  head/tools/tools/locale/tools/cldr2def.pl
  head/tools/tools/locale/tools/convert_map.pl
  head/tools/tools/locale/tools/finalize
  head/tools/tools/locale/tools/utf8-rollup.pl

Modified: head/tools/tools/locale/Makefile
==
--- head/tools/tools/locale/MakefileSat Aug 15 07:16:12 2020
(r364244)
+++ head/tools/tools/locale/MakefileSat Aug 15 07:19:37 2020
(r364245)
@@ -7,19 +7,30 @@
 #
 # Modified by John Marino to suit DragonFly needs
 #
+.if ${.CURDIR} == ${.OBJDIR}
+.error Do make obj first.
+.endif
 
-.OBJDIR:   .
+LOCALESRCDIR?= ${DESTDIR}/usr/src/share
+TMPDIR?=   /tmp
 
-.if !defined(UNIDIR)
-.error UNIDIR is not set
-.endif
-PASSON=UNIDIR="${UNIDIR}"
+BASEDIR=   ${.CURDIR}
+ETCDIR=${BASEDIR}/etc
+TOOLSDIR=  ${BASEDIR}/tools
+PATCHDIR=  ${BASEDIR}/patch
+UNIDIR=${.OBJDIR:tA}/unicode
 
-ETCDIR=${.CURDIR}/etc
+PKGS=  openjdk8 \
+   apache-ant \
+   p5-XML-Parser \
+   p5-Tie-IxHash \
+   p5-Text-Iconv
+tools-test:
+   pkg info -e ${PKGS}
+   @echo tools ok.
 
 KNOWN= monetdef numericdef msgdef colldef ctypedef # timedef
 TYPES?=${KNOWN}
-LOCALE_DESTDIR?=   /tmp/generated-locales/
 
 COLLATION_SPECIAL?= \
cs_CZ ISO8859-2 \
@@ -44,67 +55,81 @@ COLLATION_SPECIAL?= \
 .for area enc in ${COLLATION_SPECIAL}
 COLLATIONS_SPECIAL_ENV+=   ${area}.${enc}
 .endfor
-PASSON+=   COLLATIONS_SPECIAL="${COLLATIONS_SPECIAL_ENV}"
+SETENV=env -i \
+   PATH="${PATH}" \
+   TMPDIR="${TMPDIR}" \
+   COLLATIONS_SPECIAL="${COLLATIONS_SPECIAL_ENV}" \
+   UNIDIR="${UNIDIR}" \
+   BASEDIR="${BASEDIR}" \
+   TOOLSDIR="${TOOLSDIR}" \
+   ETCDIR="${ETCDIR}"
 
-all:
+all: posix build afterbuild
+.ORDER: posix build afterbuild
+
+afterbuild: build
+   @echo ""
+   @find . -name *failed
+
 .for t in ${TYPES}
 .  if ${KNOWN:M${t}}
-   test -d ${t} || mkdir ${t}
-   make build-${t}
+build: build-${t}
+.ORDER: build-${t} afterbuild
 .  endif
 .endfor
-   @echo ""
-   @find . -name *failed
 
+diff:
 .for t in ${TYPES}
+.  if ${KNOWN:M${t}}
+diff: diff-${t}
+diff-${t}:
+   -/usr/bin/diff -ruN -x Makefile -x Makefile.depend \
+   ${LOCALESRCDIR}/${t} ${t}
+.  endif
+.endfor
+
+install:
+.for t in ${TYPES}
+.  if ${KNOWN:M${t}}
 install: install-${t}
 install-${t}:
-.  if ${KNOWN:M${t}}
-   rm -rf ${.CURDIR}/${t}.draft
-   rm -f ${.CURDIR}/../../../share/${t}/Makefile
-   rm -f ${.CURDIR}/../../../share/${t}/*.src
-   mv ${.CURDIR}/${t}/* ${.CURDIR}/../../../share/${t}/
+   cd ${LOCALESRCDIR}/${t} && \
+   rm -f Makefile *.src && \
+   install -c ${t}/* ${LOCALESRCDIR}/${t}
 .  endif
 .endfor
 
 post-install:
 .for t in ${TYPES}
 .  if ${KNOWN:M${t}}
-   (cd ${.CURDIR}/../../../share/${t} && \
-   make && make install && make clean)
+   cd ${LOCALSRCDIR}/${t} && \
+   make && make install && make clean
 .  endif
 .endfor
 
 .for t in ${TYPES}
-gen-${t}:
-   mkdir -p ${t} ${t}.draft
-   perl -I tools tools/cldr2def.pl \
-   --unidir=$$(realpath ${UNIDIR}) \
-   --etc=$$(realpath ${ETCDIR}) \
+CLEANDIRS+=${t} ${t}.draft
+${t}:
+   mkdir -p ${t} ${t}.draft && \
+   perl -I ${TOOLSDIR} ${TOOLSDIR}/cldr2def.pl \
+   --unidir=${UNIDIR:tA} \
+   --etc=${ETCDIR:tA} \
--type=${t}
 
-build-${t}: gen-${t}
-   env ${PASSON} tools/finalize ${t}
+build-${t}: ${t}
+   ${SETENV} OUTBASEDIR="${.OBJDIR}/${t}" ${TOOLSDIR}/finalize ${t}
 .endfor
 
-gen-ctypedef:  ctype-rollup
-static-colldef: gen-colldef
+static-colldef:

svn commit: r364244 - svnadmin/conf

2020-08-15 Thread Hiroki Sato
Author: hrs
Date: Sat Aug 15 07:16:12 2020
New Revision: 364244
URL: https://svnweb.freebsd.org/changeset/base/364244

Log:
  Disable the size limitation temporarily to commit changes
  to tools/tools/locale.

Modified:
  svnadmin/conf/sizelimit.conf

Modified: svnadmin/conf/sizelimit.conf
==
--- svnadmin/conf/sizelimit.confSat Aug 15 06:24:07 2020
(r364243)
+++ svnadmin/conf/sizelimit.confSat Aug 15 07:16:12 2020
(r364244)
@@ -19,6 +19,7 @@ andrew
 bapt
 davidcs
 dim2048
+hrs
 imp
 jb
 jeff
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"