svn commit: r303737 - head/sys/dev/hyperv/storvsc
Author: sephe Date: Thu Aug 4 05:05:35 2016 New Revision: 303737 URL: https://svnweb.freebsd.org/changeset/base/303737 Log: hyperv/storvsc: Claim SPC-3 conformance, thus enable UNMAP support The Hyper-V on pre-win10 systems will only report SPC-2 conformance, but it actually conforms to SPC-3. The INQUIRY response is adjusted to propagate the SPC-3 version information to CAM. Submitted by: Hongjiang Zhang MFC after:3 days Sponsored by: Microsoft Differential Revision:https://reviews.freebsd.org/D7405 Modified: head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Modified: head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c == --- head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.cThu Aug 4 01:49:18 2016(r303736) +++ head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.cThu Aug 4 05:05:35 2016(r303737) @@ -2124,8 +2124,8 @@ storvsc_io_done(struct hv_storvsc_reques * For more information about INQUIRY, please refer to: * ftp://ftp.avc-pioneer.com/Mtfuji_7/Proposal/Jun09/INQUIRY.pdf */ - const struct scsi_inquiry_data *inq_data = - (const struct scsi_inquiry_data *)csio->data_ptr; + struct scsi_inquiry_data *inq_data = + (struct scsi_inquiry_data *)csio->data_ptr; uint8_t* resp_buf = (uint8_t*)csio->data_ptr; /* Get the buffer length reported by host */ int resp_xfer_len = vm_srb->transfer_len; @@ -2154,6 +2154,25 @@ storvsc_io_done(struct hv_storvsc_reques mtx_unlock(>hs_lock); } } else { + char vendor[16]; + cam_strvis(vendor, inq_data->vendor, sizeof(inq_data->vendor), + sizeof(vendor)); + /** +* XXX: upgrade SPC2 to SPC3 if host is WIN8 or WIN2012 R2 +* in order to support UNMAP feature +*/ + if (!strncmp(vendor,"Msft",4) && +SID_ANSI_REV(inq_data) == SCSI_REV_SPC2 && +(vmstor_proto_version == VMSTOR_PROTOCOL_VERSION_WIN8_1 || + vmstor_proto_version== VMSTOR_PROTOCOL_VERSION_WIN8)) { + inq_data->version = SCSI_REV_SPC3; + if (bootverbose) { + mtx_lock(>hs_lock); + xpt_print(ccb->ccb_h.path, + "storvsc upgrades SPC2 to SPC3\n"); + mtx_unlock(>hs_lock); + } + } ccb->ccb_h.status |= CAM_REQ_CMP; if (bootverbose) { mtx_lock(>hs_lock); ___ 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"
Re: svn commit: r303733 - head/contrib/libpcap
On Wed, 3 Aug 2016, Jung-uk Kim wrote: Log: Support nanosecond time stamps for pcap_dispatch(3) and pcap_loop(3). Modified: head/contrib/libpcap/pcap-bpf.c Modified: head/contrib/libpcap/pcap-bpf.c == --- head/contrib/libpcap/pcap-bpf.c Wed Aug 3 19:23:22 2016 (r303732) +++ head/contrib/libpcap/pcap-bpf.c Wed Aug 3 20:08:39 2016 (r303733) @@ -1008,7 +1028,25 @@ pcap_read_bpf(pcap_t *p, int cnt, pcap_h if (pb->filtering_in_kernel || bpf_filter(p->fcode.bf_insns, datap, bhp->bh_datalen, caplen)) { struct pcap_pkthdr pkthdr; +#ifdef BIOCSTSTAMP + struct bintime bt; + + bt.sec = bhp->bh_tstamp.bt_sec; + bt.frac = bhp->bh_tstamp.bt_frac; The names are very confusing since bt_sec and bt_frac are only misnamed as sec and frac in struct bintime. + if (p->opt.tstamp_precision == PCAP_TSTAMP_PRECISION_NANO) { + struct timespec ts; + + bintime2timespec(, ); + pkthdr.ts.tv_sec = ts.tv_sec; + pkthdr.ts.tv_usec = ts.tv_nsec; And this abuses tv_usec to hold nanoseconds. Old code is even more confusing, and at least partly wrong. X contrib/libpcap/pcap-bpf.c: pkthdr.ts.tv_usec = bhp->bh_tstamp.tv_usec/1000; This is to convert for tv_usec actually being tv_nsec on AIX. If the above works with no conversion, then it might work for AIX too. X sys/net/bpf.c:struct timeval32 bh_tstamp; /* time stamp */ Banal comment. The complexities are from what sort of timestamp this is. It is obviously a timestamp. This bh_tstamp is in struct bpf_hdr32 for the !BURN_BRIDGES case. There is also struct timeval bh_timestamp in struct bpf_hdr. This header is bogusly marked Obsolete. X sys/net/bpf.c:hdr32_old.bh_tstamp.tv_usec = ts.bt_frac; This is in the !BURN_BRIDGES && COMPAT_FREEBSD32 case. Since struct timeval32 always has a 32-bit tv_usec, this assignment discards the most significant bits in bt_frac but keeps the noise. X sys/net/bpf.c:hdr_old.bh_tstamp.tv_usec = ts.bt_frac; This is in the !BURN_BRIDGES && !COMPAT_FREEBSD32 case. Since tv_sec in a normal timetamp is bogusly long, this accidentally preserves all of the bits in bt_frac on 64-bit arches. On 32-bit arches, it loses the signal as for the COMPAT_FREEBSD32 case. Bruce ___ 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: r303736 - head/sys/mips/conf
Author: adrian Date: Thu Aug 4 01:49:18 2016 New Revision: 303736 URL: https://svnweb.freebsd.org/changeset/base/303736 Log: Add in tap/tun for openvpn-on-mips experiments. (FWIW, it does work.) Modified: head/sys/mips/conf/std.AR933X Modified: head/sys/mips/conf/std.AR933X == --- head/sys/mips/conf/std.AR933X Wed Aug 3 22:08:07 2016 (r303735) +++ head/sys/mips/conf/std.AR933X Thu Aug 4 01:49:18 2016 (r303736) @@ -20,7 +20,7 @@ files "../atheros/files.ar71xx" hints "AR933X_BASE.hints" makeoptionsDEBUG=-g#Build kernel with gdb(1) debug symbols -makeoptionsMODULES_OVERRIDE="gpio ar71xx if_gif if_vlan if_gre if_bridge bridgestp usb wlan wlan_xauth wlan_acl wlan_wep wlan_tkip wlan_ccmp wlan_rssadapt wlan_amrr hwpmc ipfw ipfw_nat libalias ipfw_nptv6 urtwn urtwnfw otus otusfw" +makeoptionsMODULES_OVERRIDE="gpio ar71xx if_gif if_vlan if_gre if_tap if_tun if_bridge bridgestp usb wlan wlan_xauth wlan_acl wlan_wep wlan_tkip wlan_ccmp wlan_rssadapt wlan_amrr hwpmc ipfw ipfw_nat libalias ipfw_nptv6 urtwn urtwnfw otus otusfw" optionsDDB optionsKDB ___ 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: r303735 - head/usr.bin/indent
Author: pfg Date: Wed Aug 3 22:08:07 2016 New Revision: 303735 URL: https://svnweb.freebsd.org/changeset/base/303735 Log: indent(1): add new -sac and -U options. Add -sac (space after cast) and -nsac options. These control whether space character is put after a cast operator or not. Default is -nsac. Add -U option for providing a file containing list of types. This is needed for properly deciding which asterisks denote unary operation and which denote binary. These come from PostgreSQL. Reference: https://github.com/pstef/freebsd_indent/commit/84b00e3d46dfd6d955b2f481a1f3b275de9ad6d1 https://github.com/pstef/freebsd_indent/commit/49c52cf383fa2a246a1a22c6640a5a21b0f1fd90 Differential Revision: https://reviews.freebsd.org/D6966 (Partial) Submitted by: Piotr Stefaniak Modified: head/usr.bin/indent/args.c head/usr.bin/indent/indent.1 head/usr.bin/indent/indent.c head/usr.bin/indent/indent_globs.h head/usr.bin/indent/lexi.c Modified: head/usr.bin/indent/args.c == --- head/usr.bin/indent/args.c Wed Aug 3 20:21:58 2016(r303734) +++ head/usr.bin/indent/args.c Wed Aug 3 22:08:07 2016(r303735) @@ -74,8 +74,12 @@ __FBSDID("$FreeBSD$"); static void scan_profile(FILE *); +#defineKEY_FILE5 /* only used for args */ + const char *option_source = "?"; +void add_typedefs_from_file(const char *str); + /* * N.B.: because of the way the table here is scanned, options whose names are * substrings of other options must occur later; that is, with -lp vs -l, -lp @@ -91,6 +95,7 @@ struct pro { } pro[] = { {"T", PRO_SPECIAL, 0, KEY, 0}, +{"U", PRO_SPECIAL, 0, KEY_FILE, 0}, {"bacc", PRO_BOOL, false, ON, _around_conditional_compilation}, {"badp", PRO_BOOL, false, ON, _after_declarations_at_proctop}, {"bad", PRO_BOOL, false, ON, _after_declarations}, @@ -147,6 +152,7 @@ struct pro { {"npro", PRO_SPECIAL, 0, IGN, 0}, {"npsl", PRO_BOOL, true, OFF, _start_line}, {"nps", PRO_BOOL, false, OFF, _as_binop}, +{"nsac", PRO_BOOL, false, OFF, _after_cast}, {"nsc", PRO_BOOL, true, OFF, _comment_cont}, {"nsob", PRO_BOOL, false, OFF, _optional_blanklines}, {"nut", PRO_BOOL, true, OFF, _tabs}, @@ -154,6 +160,7 @@ struct pro { {"pcs", PRO_BOOL, false, ON, _calls_space}, {"psl", PRO_BOOL, true, ON, _start_line}, {"ps", PRO_BOOL, false, ON, _as_binop}, +{"sac", PRO_BOOL, false, ON, _after_cast}, {"sc", PRO_BOOL, true, ON, _comment_cont}, {"sob", PRO_BOOL, false, ON, _optional_blanklines}, {"st", PRO_SPECIAL, 0, STDIN, 0}, @@ -295,6 +302,12 @@ found: } break; + case KEY_FILE: + if (*param_start == 0) + goto need_param; + add_typedefs_from_file(param_start); + break; + default: errx(1, "set_option: internal error: p_special %d", p->p_special); } @@ -323,3 +336,21 @@ found: errx(1, "set_option: internal error: p_type %d", p->p_type); } } + +void +add_typedefs_from_file(const char *str) +{ +FILE *file; +char line[BUFSIZ]; + +if ((file = fopen(str, "r")) == NULL) { + fprintf(stderr, "indent: cannot open file %s\n", str); + exit(1); +} +while ((fgets(line, BUFSIZ, file)) != NULL) { + /* Remove trailing whitespace */ + *(line + strcspn(line, " \t\n\r")) = '\0'; + addkey(strdup(line), 4); +} +fclose(file); +} Modified: head/usr.bin/indent/indent.1 == --- head/usr.bin/indent/indent.1Wed Aug 3 20:21:58 2016 (r303734) +++ head/usr.bin/indent/indent.1Wed Aug 3 22:08:07 2016 (r303735) @@ -30,7 +30,7 @@ .\"@(#)indent.18.1 (Berkeley) 7/1/93 .\" $FreeBSD$ .\" -.Dd March 3, 2012 +.Dd August 3, 2016 .Dt INDENT 1 .Os .Sh NAME @@ -74,6 +74,7 @@ .Op Fl npro .Op Fl pcs | Fl npcs .Op Fl psl | Fl npsl +.Op Fl sac | Fl nsac .Op Fl \ | Fl nsc .Bk -words .Op Fl sob | Fl nsob @@ -81,6 +82,7 @@ .Op Fl \ .Op Fl \ .Op Fl troff +.Op Fl U Ns Ar file .Op Fl ut | Fl nut .Op Fl v | Fl \ .Sh DESCRIPTION @@ -378,6 +380,11 @@ column 1 \- their types, if any, will be The default is .Fl psl . +.It Fl sac , nsac +Control whether parenthesized type names in casts are followed by a space or +not. +The default is +.Fl nsac . .It Fl \ , nsc Enables (disables) the placement of asterisks (`*'s) at the left edge of all comments. @@ -430,6 +437,10 @@ listing in much the same spirit as .Xr vgrind 1 . If the output file is not specified, the default is standard output, rather than formatting in place. +.It Fl U Ns Ar file +Adds type names from +.Ar file +to the list of type keywords. .It Fl ut , nut Enables (disables) the use of tab characters in the output. Tabs are assumed to be aligned
svn commit: r303734 - head/contrib/libpcap
Author: jkim Date: Wed Aug 3 20:21:58 2016 New Revision: 303734 URL: https://svnweb.freebsd.org/changeset/base/303734 Log: Fix a style(9) bug. Modified: head/contrib/libpcap/pcap-bpf.c Modified: head/contrib/libpcap/pcap-bpf.c == --- head/contrib/libpcap/pcap-bpf.c Wed Aug 3 20:08:39 2016 (r303733) +++ head/contrib/libpcap/pcap-bpf.c Wed Aug 3 20:21:58 2016 (r303734) @@ -442,7 +442,7 @@ pcap_create_interface(const char *device snprintf(ebuf, PCAP_ERRBUF_SIZE, "malloc: %s", pcap_strerror(errno)); free(p); - return NULL; + return (NULL); } p->tstamp_precision_list[0] = PCAP_TSTAMP_PRECISION_MICRO; p->tstamp_precision_list[1] = PCAP_TSTAMP_PRECISION_NANO; ___ 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"
Re: svn commit: r303733 - head/contrib/libpcap
On 08/03/16 04:08 PM, Jung-uk Kim wrote: > Author: jkim > Date: Wed Aug 3 20:08:39 2016 > New Revision: 303733 > URL: https://svnweb.freebsd.org/changeset/base/303733 > > Log: > Support nanosecond time stamps for pcap_dispatch(3) and pcap_loop(3). > > Modified: > head/contrib/libpcap/pcap-bpf.c Note the upstream accepted the patch: https://github.com/the-tcpdump-group/libpcap/commit/0957dac Jung-uk Kim signature.asc Description: OpenPGP digital signature
svn commit: r303733 - head/contrib/libpcap
Author: jkim Date: Wed Aug 3 20:08:39 2016 New Revision: 303733 URL: https://svnweb.freebsd.org/changeset/base/303733 Log: Support nanosecond time stamps for pcap_dispatch(3) and pcap_loop(3). Modified: head/contrib/libpcap/pcap-bpf.c Modified: head/contrib/libpcap/pcap-bpf.c == --- head/contrib/libpcap/pcap-bpf.c Wed Aug 3 19:23:22 2016 (r303732) +++ head/contrib/libpcap/pcap-bpf.c Wed Aug 3 20:08:39 2016 (r303733) @@ -431,6 +431,22 @@ pcap_create_interface(const char *device p->activate_op = pcap_activate_bpf; p->can_set_rfmon_op = pcap_can_set_rfmon_bpf; +#ifdef BIOCSTSTAMP + /* +* We claim that we support microsecond and nanosecond time +* stamps. +*/ + p->tstamp_precision_count = 2; + p->tstamp_precision_list = malloc(2 * sizeof(u_int)); + if (p->tstamp_precision_list == NULL) { + snprintf(ebuf, PCAP_ERRBUF_SIZE, "malloc: %s", + pcap_strerror(errno)); + free(p); + return NULL; + } + p->tstamp_precision_list[0] = PCAP_TSTAMP_PRECISION_MICRO; + p->tstamp_precision_list[1] = PCAP_TSTAMP_PRECISION_NANO; +#endif /* BIOCSTSTAMP */ return (p); } @@ -946,7 +962,11 @@ pcap_read_bpf(pcap_t *p, int cnt, pcap_h /* * Loop through each packet. */ +#ifdef BIOCSTSTAMP +#define bhp ((struct bpf_xhdr *)bp) +#else #define bhp ((struct bpf_hdr *)bp) +#endif ep = bp + cc; #ifdef PCAP_FDDIPAD pad = p->fddipad; @@ -1008,7 +1028,25 @@ pcap_read_bpf(pcap_t *p, int cnt, pcap_h if (pb->filtering_in_kernel || bpf_filter(p->fcode.bf_insns, datap, bhp->bh_datalen, caplen)) { struct pcap_pkthdr pkthdr; +#ifdef BIOCSTSTAMP + struct bintime bt; + + bt.sec = bhp->bh_tstamp.bt_sec; + bt.frac = bhp->bh_tstamp.bt_frac; + if (p->opt.tstamp_precision == PCAP_TSTAMP_PRECISION_NANO) { + struct timespec ts; + + bintime2timespec(, ); + pkthdr.ts.tv_sec = ts.tv_sec; + pkthdr.ts.tv_usec = ts.tv_nsec; + } else { + struct timeval tv; + bintime2timeval(, ); + pkthdr.ts.tv_sec = tv.tv_sec; + pkthdr.ts.tv_usec = tv.tv_usec; + } +#else pkthdr.ts.tv_sec = bhp->bh_tstamp.tv_sec; #ifdef _AIX /* @@ -1019,6 +1057,7 @@ pcap_read_bpf(pcap_t *p, int cnt, pcap_h #else pkthdr.ts.tv_usec = bhp->bh_tstamp.tv_usec; #endif +#endif /* BIOCSTSTAMP */ #ifdef PCAP_FDDIPAD if (caplen > pad) pkthdr.caplen = caplen - pad; @@ -2192,6 +2231,16 @@ pcap_activate_bpf(pcap_t *p) } } +#ifdef BIOCSTSTAMP + v = BPF_T_BINTIME; + if (ioctl(p->fd, BIOCSTSTAMP, ) < 0) { + snprintf(p->errbuf, PCAP_ERRBUF_SIZE, "BIOCSTSTAMP: %s", + pcap_strerror(errno)); + status = PCAP_ERROR; + goto bad; + } +#endif /* BIOCSTSTAMP */ + if (ioctl(fd, BIOCGBLEN, (caddr_t)) < 0) { snprintf(p->errbuf, PCAP_ERRBUF_SIZE, "BIOCGBLEN: %s", pcap_strerror(errno)); ___ 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: r303732 - head/sys/mips/conf
Author: adrian Date: Wed Aug 3 19:23:22 2016 New Revision: 303732 URL: https://svnweb.freebsd.org/changeset/base/303732 Log: [ar934x] shuffle AR93XX_BASE -> std.AR934X Added: head/sys/mips/conf/std.AR934X - copied, changed from r303731, head/sys/mips/conf/AR934X_BASE Deleted: head/sys/mips/conf/AR934X_BASE Modified: head/sys/mips/conf/DB120 head/sys/mips/conf/DIR-825C1 head/sys/mips/conf/TL-WDR4300 Modified: head/sys/mips/conf/DB120 == --- head/sys/mips/conf/DB120Wed Aug 3 19:18:53 2016(r303731) +++ head/sys/mips/conf/DB120Wed Aug 3 19:23:22 2016(r303732) @@ -5,7 +5,7 @@ # # Include the default AR934x parameters -include "AR934X_BASE" +include "std.AR934X" #NO_UNIVERSE Modified: head/sys/mips/conf/DIR-825C1 == --- head/sys/mips/conf/DIR-825C1Wed Aug 3 19:18:53 2016 (r303731) +++ head/sys/mips/conf/DIR-825C1Wed Aug 3 19:23:22 2016 (r303732) @@ -15,7 +15,7 @@ #NO_UNIVERSE # Include the default AR934x parameters -include "AR934X_BASE" +include "std.AR934X" ident DIR825C1 # Override hints with board values Modified: head/sys/mips/conf/TL-WDR4300 == --- head/sys/mips/conf/TL-WDR4300 Wed Aug 3 19:18:53 2016 (r303731) +++ head/sys/mips/conf/TL-WDR4300 Wed Aug 3 19:23:22 2016 (r303732) @@ -7,7 +7,7 @@ #NO_UNIVERSE # Include the default AR934x parameters -include "AR934X_BASE" +include "std.AR934X" ident TL-WDR4300 Copied and modified: head/sys/mips/conf/std.AR934X (from r303731, head/sys/mips/conf/AR934X_BASE) == --- head/sys/mips/conf/AR934X_BASE Wed Aug 3 19:18:53 2016 (r303731, copy source) +++ head/sys/mips/conf/std.AR934X Wed Aug 3 19:23:22 2016 (r303732) @@ -11,7 +11,7 @@ # machine mips mips -ident AR934X_BASE +#ident std.AR934X cpuCPU_MIPS74K makeoptionsKERNLOADADDR=0x8005 optionsHZ=1000 ___ 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: r303731 - head/sys/mips/conf
Author: adrian Date: Wed Aug 3 19:18:53 2016 New Revision: 303731 URL: https://svnweb.freebsd.org/changeset/base/303731 Log: [ar9330] ok, fine, I'll finally undo the 2011-era mistake of _BASE config files. Repeated prodding by: imp Added: head/sys/mips/conf/std.AR933X - copied, changed from r303730, head/sys/mips/conf/AR933X_BASE Deleted: head/sys/mips/conf/AR933X_BASE Modified: head/sys/mips/conf/ALFA_HORNET_UB head/sys/mips/conf/AP121 head/sys/mips/conf/CARAMBOLA2 head/sys/mips/conf/ONIONOMEGA head/sys/mips/conf/TL-WR740Nv4 head/sys/mips/conf/TP-MR3020 Modified: head/sys/mips/conf/ALFA_HORNET_UB == --- head/sys/mips/conf/ALFA_HORNET_UB Wed Aug 3 19:13:09 2016 (r303730) +++ head/sys/mips/conf/ALFA_HORNET_UB Wed Aug 3 19:18:53 2016 (r303731) @@ -18,7 +18,7 @@ #NO_UNIVERSE # Include the default AR933x parameters -include "AR933X_BASE" +include "std.AR933X" ident ALFA_HORNET_UB Modified: head/sys/mips/conf/AP121 == --- head/sys/mips/conf/AP121Wed Aug 3 19:13:09 2016(r303730) +++ head/sys/mips/conf/AP121Wed Aug 3 19:18:53 2016(r303731) @@ -12,7 +12,7 @@ #NO_UNIVERSE # Include the default AR933x parameters -include "AR933X_BASE" +include "std.AR933X" ident AP121 Modified: head/sys/mips/conf/CARAMBOLA2 == --- head/sys/mips/conf/CARAMBOLA2 Wed Aug 3 19:13:09 2016 (r303730) +++ head/sys/mips/conf/CARAMBOLA2 Wed Aug 3 19:18:53 2016 (r303731) @@ -14,7 +14,7 @@ #NO_UNIVERSE # Include the default AR933x parameters -include "AR933X_BASE" +include "std.AR933X" ident CARAMBOLA2 Modified: head/sys/mips/conf/ONIONOMEGA == --- head/sys/mips/conf/ONIONOMEGA Wed Aug 3 19:13:09 2016 (r303730) +++ head/sys/mips/conf/ONIONOMEGA Wed Aug 3 19:18:53 2016 (r303731) @@ -14,7 +14,7 @@ #NO_UNIVERSE # Include the default AR933x parameters -include "AR933X_BASE" +include "std.AR933X" ident ONIONOMEGA Modified: head/sys/mips/conf/TL-WR740Nv4 == --- head/sys/mips/conf/TL-WR740Nv4 Wed Aug 3 19:13:09 2016 (r303730) +++ head/sys/mips/conf/TL-WR740Nv4 Wed Aug 3 19:18:53 2016 (r303731) @@ -12,7 +12,7 @@ #NO_UNIVERSE # Include the default AR933x parameters -include "AR933X_BASE" +include "std.AR933X" ident TL-WR740Nv4 Modified: head/sys/mips/conf/TP-MR3020 == --- head/sys/mips/conf/TP-MR3020Wed Aug 3 19:13:09 2016 (r303730) +++ head/sys/mips/conf/TP-MR3020Wed Aug 3 19:18:53 2016 (r303731) @@ -19,7 +19,7 @@ #NO_UNIVERSE # Include the default AR933x parameters -include"AR933X_BASE" +include"std.AR933X" ident TP-MR3020 Copied and modified: head/sys/mips/conf/std.AR933X (from r303730, head/sys/mips/conf/AR933X_BASE) == --- head/sys/mips/conf/AR933X_BASE Wed Aug 3 19:13:09 2016 (r303730, copy source) +++ head/sys/mips/conf/std.AR933X Wed Aug 3 19:18:53 2016 (r303731) @@ -11,7 +11,7 @@ # machine mips mips -ident AR933X_BASE +#ident std.AR933X cpuCPU_MIPS24K makeoptionsKERNLOADADDR=0x8005 optionsHZ=1000 ___ 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: r303730 - head/sys/mips/conf
Author: adrian Date: Wed Aug 3 19:13:09 2016 New Revision: 303730 URL: https://svnweb.freebsd.org/changeset/base/303730 Log: [ar9330] add in module support for ipfw nat. This actually does work, and works pretty well. Modified: head/sys/mips/conf/AR933X_BASE Modified: head/sys/mips/conf/AR933X_BASE == --- head/sys/mips/conf/AR933X_BASE Wed Aug 3 18:48:56 2016 (r303729) +++ head/sys/mips/conf/AR933X_BASE Wed Aug 3 19:13:09 2016 (r303730) @@ -20,7 +20,7 @@ files "../atheros/files.ar71xx" hints "AR933X_BASE.hints" makeoptionsDEBUG=-g#Build kernel with gdb(1) debug symbols -makeoptionsMODULES_OVERRIDE="gpio ar71xx if_gif if_vlan if_gre if_bridge bridgestp usb wlan wlan_xauth wlan_acl wlan_wep wlan_tkip wlan_ccmp wlan_rssadapt wlan_amrr hwpmc ipfw urtwn urtwnfw otus otusfw" +makeoptionsMODULES_OVERRIDE="gpio ar71xx if_gif if_vlan if_gre if_bridge bridgestp usb wlan wlan_xauth wlan_acl wlan_wep wlan_tkip wlan_ccmp wlan_rssadapt wlan_amrr hwpmc ipfw ipfw_nat libalias ipfw_nptv6 urtwn urtwnfw otus otusfw" optionsDDB optionsKDB ___ 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: r303729 - head/sys/kern
Author: bdrewery Date: Wed Aug 3 18:48:56 2016 New Revision: 303729 URL: https://svnweb.freebsd.org/changeset/base/303729 Log: Correct some comments. Sponsored by: EMC / Isilon Storage Division MFC after:3 days Modified: head/sys/kern/syscalls.master Modified: head/sys/kern/syscalls.master == --- head/sys/kern/syscalls.master Wed Aug 3 18:45:56 2016 (r303728) +++ head/sys/kern/syscalls.master Wed Aug 3 18:48:56 2016 (r303729) @@ -25,10 +25,10 @@ ; types: ; STD always included ; COMPAT included on COMPAT #ifdef -; COMPAT4 included on COMPAT4 #ifdef (FreeBSD 4 compat) -; COMPAT6 included on COMPAT6 #ifdef (FreeBSD 6 compat) -; COMPAT7 included on COMPAT7 #ifdef (FreeBSD 7 compat) -; COMPAT10 included on COMPAT7 #ifdef (FreeBSD 10 compat) +; COMPAT4 included on COMPAT_FREEBSD4 #ifdef (FreeBSD 4 compat) +; COMPAT6 included on COMPAT_FREEBSD6 #ifdef (FreeBSD 6 compat) +; COMPAT7 included on COMPAT_FREEBSD7 #ifdef (FreeBSD 7 compat) +; COMPAT10 included on COMPAT_FREEBSD10 #ifdef (FreeBSD 10 compat) ; OBSOL obsolete, not included in system, only specifies name ; UNIMPL not implemented, placeholder only ; NOSTD implemented but as a lkm that can be statically ___ 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: r303728 - head/sys/arm/allwinner
Author: manu Date: Wed Aug 3 18:45:56 2016 New Revision: 303728 URL: https://svnweb.freebsd.org/changeset/base/303728 Log: We need aw_nmi to be attached which needs GIC so attach a bit later. Also the GPIOC doesn't need to be attach early Reviewed by: andrew MFC after:1 week Differential Revision:https://reviews.freebsd.org/D7082 Modified: head/sys/arm/allwinner/axp209.c Modified: head/sys/arm/allwinner/axp209.c == --- head/sys/arm/allwinner/axp209.c Wed Aug 3 18:04:08 2016 (r303727) +++ head/sys/arm/allwinner/axp209.c Wed Aug 3 18:45:56 2016 (r303728) @@ -707,10 +707,10 @@ extern devclass_t ofwgpiobus_devclass, g extern driver_t ofw_gpiobus_driver, gpioc_driver; EARLY_DRIVER_MODULE(axp209, iicbus, axp209_driver, axp209_devclass, - 0, 0, BUS_PASS_RESOURCE + BUS_PASS_ORDER_MIDDLE); + 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE); EARLY_DRIVER_MODULE(ofw_gpiobus, axp209_pmu, ofw_gpiobus_driver, -ofwgpiobus_devclass, 0, 0, BUS_PASS_RESOURCE + BUS_PASS_ORDER_MIDDLE); -EARLY_DRIVER_MODULE(gpioc, axp209_pmu, gpioc_driver, gpioc_devclass, -0, 0, BUS_PASS_RESOURCE + BUS_PASS_ORDER_MIDDLE); +ofwgpiobus_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE); +DRIVER_MODULE(gpioc, axp209_pmu, gpioc_driver, gpioc_devclass, +0, 0); MODULE_VERSION(axp209, 1); MODULE_DEPEND(axp209, iicbus, 1, 1, 1); ___ 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: r303727 - head/bin/uuidgen
Author: oshogbo Date: Wed Aug 3 18:04:08 2016 New Revision: 303727 URL: https://svnweb.freebsd.org/changeset/base/303727 Log: uuid_to_string(3) is allocating memory and can fail on that. Check if any error accrued. Modified: head/bin/uuidgen/uuidgen.c Modified: head/bin/uuidgen/uuidgen.c == --- head/bin/uuidgen/uuidgen.c Wed Aug 3 18:03:14 2016(r303726) +++ head/bin/uuidgen/uuidgen.c Wed Aug 3 18:04:08 2016(r303727) @@ -47,7 +47,7 @@ main(int argc, char *argv[]) FILE *fp; uuid_t *store, *uuid; char *p; - int ch, count, i, iterate; + int ch, count, i, iterate, status; count = -1; /* no count yet */ fp = stdout;/* default output file */ @@ -101,7 +101,9 @@ main(int argc, char *argv[]) uuid = store; while (count--) { - uuid_to_string(uuid++, , NULL); + uuid_to_string(uuid++, , ); + if (status != uuid_s_ok) +err(1, "cannot stringify a UUID"); fprintf(fp, "%s\n", p); free(p); } ___ 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: r303726 - head/sys/boot/fdt/dts/arm
Author: gonzo Date: Wed Aug 3 18:03:14 2016 New Revision: 303726 URL: https://svnweb.freebsd.org/changeset/base/303726 Log: Fix EHCI driver by excluding first 512K from available memory On Zynq 256K-512K memory region is not accessible by all bus masters. EHCI driver fails when trying to use it for DMA transfers. Patching memory node does not help because ubldr overrides values there with the ones obtained from u-boot. So as a workaround we just mark first 512K as reserved. PR: 211484 Submitted by: Thomas SkiboMFC after:3 days Modified: head/sys/boot/fdt/dts/arm/zynq-7000.dtsi Modified: head/sys/boot/fdt/dts/arm/zynq-7000.dtsi == --- head/sys/boot/fdt/dts/arm/zynq-7000.dtsiWed Aug 3 18:02:10 2016 (r303725) +++ head/sys/boot/fdt/dts/arm/zynq-7000.dtsiWed Aug 3 18:03:14 2016 (r303726) @@ -32,6 +32,10 @@ #size-cells = <1>; interrupt-parent = <>; + // Reserve first half megabyte because it is not accessible to all + // bus masters. + memreserve = <0x 0x0008>; + // Zynq PS System registers. // ps7sys@f800 { ___ 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: r303725 - head/sbin/geom/class/eli
Author: oshogbo Date: Wed Aug 3 18:02:10 2016 New Revision: 303725 URL: https://svnweb.freebsd.org/changeset/base/303725 Log: Fix misleading description of the -b option in the geli init command. Reviewed by: bjk, wblock Differential Revision:https://reviews.freebsd.org/D7226 Discussed with: AllanJude Modified: head/sbin/geom/class/eli/geli.8 Modified: head/sbin/geom/class/eli/geli.8 == --- head/sbin/geom/class/eli/geli.8 Wed Aug 3 17:20:35 2016 (r303724) +++ head/sbin/geom/class/eli/geli.8 Wed Aug 3 18:02:10 2016 (r303725) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 10, 2015 +.Dd August 3, 2016 .Dt GELI 8 .Os .Sh NAME @@ -266,7 +266,7 @@ If the option is not given, there will b The recommended algorithm is .Nm HMAC/SHA256 . .It Fl b -Ask for the passphrase on boot, before the root partition is mounted. +Try to decrypt this partition during boot, before the root partition is mounted. This makes it possible to use an encrypted root partition. One will still need bootable unencrypted storage with a .Pa /boot/ ___ 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: r303723 - head/sys/boot/efi/boot1
Author: markj Date: Wed Aug 3 17:17:01 2016 New Revision: 303723 URL: https://svnweb.freebsd.org/changeset/base/303723 Log: Fix a few cosmetic issues in boot1.efi. - Use ANSI function signatures. - Remove unneeded checks for a NULL boot module. - Use nitems(). MFC after:1 week Sponsored by: EMC / Isilon Storage Division Modified: head/sys/boot/efi/boot1/boot1.c head/sys/boot/efi/boot1/ufs_module.c head/sys/boot/efi/boot1/zfs_module.c Modified: head/sys/boot/efi/boot1/boot1.c == --- head/sys/boot/efi/boot1/boot1.c Wed Aug 3 17:11:08 2016 (r303722) +++ head/sys/boot/efi/boot1/boot1.c Wed Aug 3 17:17:01 2016 (r303723) @@ -43,7 +43,7 @@ static const boot_module_t *boot_modules #endif }; -#define NUM_BOOT_MODULES (sizeof(boot_modules) / sizeof(boot_module_t*)) +#defineNUM_BOOT_MODULESnitems(boot_modules) /* The initial number of handles used to query EFI for partitions. */ #define NUM_HANDLES_INIT 24 @@ -331,8 +331,6 @@ load_loader(const boot_module_t **modp, const boot_module_t *mod; for (i = 0; i < NUM_BOOT_MODULES; i++) { - if (boot_modules[i] == NULL) - continue; mod = boot_modules[i]; for (dev = mod->devices(); dev != NULL; dev = dev->next) { if (dev->preferred != preferred) @@ -355,7 +353,7 @@ load_loader(const boot_module_t **modp, * it simply boots, otherwise it returns the status of last EFI call. */ static EFI_STATUS -try_boot() +try_boot(void) { size_t bufsize, loadersize, cmdsize; void *buf, *loaderbuf; @@ -498,9 +496,6 @@ probe_handle(EFI_HANDLE h, EFI_DEVICE_PA /* Run through each module, see if it can load this partition */ for (i = 0; i < NUM_BOOT_MODULES; i++) { - if (boot_modules[i] == NULL) - continue; - if ((status = bs->AllocatePool(EfiLoaderData, sizeof(*devinfo), (void **))) != EFI_SUCCESS) { @@ -605,9 +600,6 @@ efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_T printf(" Loader path: %s\n\n", PATH_LOADER_EFI); printf(" Initializing modules:"); for (i = 0; i < NUM_BOOT_MODULES; i++) { - if (boot_modules[i] == NULL) - continue; - printf(" %s", boot_modules[i]->name); if (boot_modules[i]->init != NULL) boot_modules[i]->init(); @@ -667,10 +659,8 @@ efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_T /* Status summary. */ for (i = 0; i < NUM_BOOT_MODULES; i++) { - if (boot_modules[i] != NULL) { - printf(""); - boot_modules[i]->status(); - } + printf(""); + boot_modules[i]->status(); } try_boot(); Modified: head/sys/boot/efi/boot1/ufs_module.c == --- head/sys/boot/efi/boot1/ufs_module.cWed Aug 3 17:11:08 2016 (r303722) +++ head/sys/boot/efi/boot1/ufs_module.cWed Aug 3 17:17:01 2016 (r303723) @@ -142,7 +142,7 @@ load(const char *filepath, dev_info_t *d } static void -status() +status(void) { int i; dev_info_t *dev; @@ -164,7 +164,7 @@ status() } static dev_info_t * -_devices() +_devices(void) { return (devices); Modified: head/sys/boot/efi/boot1/zfs_module.c == --- head/sys/boot/efi/boot1/zfs_module.cWed Aug 3 17:11:08 2016 (r303722) +++ head/sys/boot/efi/boot1/zfs_module.cWed Aug 3 17:17:01 2016 (r303723) @@ -154,7 +154,7 @@ load(const char *filepath, dev_info_t *d } static void -status() +status(void) { spa_t *spa; @@ -172,14 +172,14 @@ status() } static void -init() +init(void) { zfs_init(); } static dev_info_t * -_devices() +_devices(void) { return (devices); ___ 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: r303722 - head/sys/dev/cxgbe
Author: jhb Date: Wed Aug 3 17:11:08 2016 New Revision: 303722 URL: https://svnweb.freebsd.org/changeset/base/303722 Log: Use the port device name for the iov device for Chelsio T4/T5 cards. Chelsio T4/T5 adapters are multifunction cards. The main driver uses physical function 4 (PF4). However, VF devices for SR-IOV are only supported on physical functions 0 through 3, where PF0 creates VFs tied to port 0, etc. The t4iov/t5iov driver was previously added to create VF devices for ports that are present on each adapter. This change uses the recently added pci_iov_attach_name() function to name the character device in /dev/iov after the associated port on the card (e.g. /dev/iov/cxl0 is used to create VFs that share the cxl0 port). With this in place, mark the t4iov/t5iov devices quiet to prevent them from cluttering dmesg. Reviewed by: rstone Sponsored by: Chelsio Communications Differential Revision:https://reviews.freebsd.org/D7402 Modified: head/sys/dev/cxgbe/t4_if.m head/sys/dev/cxgbe/t4_iov.c head/sys/dev/cxgbe/t4_main.c Modified: head/sys/dev/cxgbe/t4_if.m == --- head/sys/dev/cxgbe/t4_if.m Wed Aug 3 17:09:12 2016(r303721) +++ head/sys/dev/cxgbe/t4_if.m Wed Aug 3 17:11:08 2016(r303722) @@ -55,11 +55,11 @@ METHOD int detach_child { device_tdev; }; -# Called by a driver to query the PF4 driver for the unit number to use -# for a given port. If the port is not enabled on the adapter, this -# will fail. -METHOD int read_port_unit { +# Called by a driver to query the PF4 driver for the child device +# associated with a given port. If the port is not enabled on the adapter, +# this will fail. +METHOD int read_port_device { device_tdev; int port; - int *unit; + device_t*child; }; Modified: head/sys/dev/cxgbe/t4_iov.c == --- head/sys/dev/cxgbe/t4_iov.c Wed Aug 3 17:09:12 2016(r303721) +++ head/sys/dev/cxgbe/t4_iov.c Wed Aug 3 17:11:08 2016(r303722) @@ -104,6 +104,7 @@ t4iov_probe(device_t dev) for (i = 0; i < nitems(t4iov_pciids); i++) { if (d == t4iov_pciids[i].device) { device_set_desc(dev, t4iov_pciids[i].desc); + device_quiet(dev); return (BUS_PROBE_DEFAULT); } } @@ -120,6 +121,7 @@ t5iov_probe(device_t dev) for (i = 0; i < nitems(t5iov_pciids); i++) { if (d == t5iov_pciids[i].device) { device_set_desc(dev, t5iov_pciids[i].desc); + device_quiet(dev); return (BUS_PROBE_DEFAULT); } } @@ -148,25 +150,27 @@ t4iov_attach_child(device_t dev) #ifdef PCI_IOV nvlist_t *pf_schema, *vf_schema; #endif - int error, unit; + device_t pdev; + int error; sc = device_get_softc(dev); MPASS(!sc->sc_attached); /* * PF0-3 are associated with a specific port on the NIC (PF0 -* with port 0, etc.). Ask the PF4 driver for the unit number -* for this function's associated port to determine if the port -* is present. +* with port 0, etc.). Ask the PF4 driver for the device for +* this function's associated port to determine if the port is +* present. */ - error = T4_READ_PORT_UNIT(sc->sc_main, pci_get_function(dev), ); + error = T4_READ_PORT_DEVICE(sc->sc_main, pci_get_function(dev), ); if (error) return (0); #ifdef PCI_IOV pf_schema = pci_iov_schema_alloc_node(); vf_schema = pci_iov_schema_alloc_node(); - error = pci_iov_attach(dev, pf_schema, vf_schema); + error = pci_iov_attach_name(dev, pf_schema, vf_schema, "%s", + device_get_nameunit(pdev)); if (error) { device_printf(dev, "Failed to initialize SR-IOV: %d\n", error); return (0); Modified: head/sys/dev/cxgbe/t4_main.c == --- head/sys/dev/cxgbe/t4_main.cWed Aug 3 17:09:12 2016 (r303721) +++ head/sys/dev/cxgbe/t4_main.cWed Aug 3 17:11:08 2016 (r303722) @@ -83,14 +83,14 @@ static int t4_probe(device_t); static int t4_attach(device_t); static int t4_detach(device_t); static int t4_ready(device_t); -static int t4_read_port_unit(device_t, int, int *); +static int t4_read_port_device(device_t, int, device_t *); static device_method_t t4_methods[] = { DEVMETHOD(device_probe, t4_probe), DEVMETHOD(device_attach,t4_attach), DEVMETHOD(device_detach,t4_detach), DEVMETHOD(t4_is_main_ready, t4_ready), -
svn commit: r303721 - in head: share/man/man9 sys/dev/pci
Author: jhb Date: Wed Aug 3 17:09:12 2016 New Revision: 303721 URL: https://svnweb.freebsd.org/changeset/base/303721 Log: Permit the name of the /dev/iov entry to be set by the driver. The PCI_IOV option creates character devices in /dev/iov for each PF device driver that registers support for creating VFs. By default the character device is named after the PF device (e.g. /dev/iov/foo0). This change adds a variant of pci_iov_attach() called pci_iov_attach_name() that allows the name of the /dev/iov entry to be specified by the driver. Reviewed by: rstone MFC after:1 month Sponsored by: Chelsio Communications Differential Revision:https://reviews.freebsd.org/D7400 Modified: head/share/man/man9/Makefile head/share/man/man9/pci.9 head/sys/dev/pci/pci_if.m head/sys/dev/pci/pci_iov.c head/sys/dev/pci/pci_iov.h head/sys/dev/pci/pci_private.h Modified: head/share/man/man9/Makefile == --- head/share/man/man9/MakefileWed Aug 3 16:52:00 2016 (r303720) +++ head/share/man/man9/MakefileWed Aug 3 17:09:12 2016 (r303721) @@ -1303,6 +1303,7 @@ MLINKS+=pci.9 pci_alloc_msi.9 \ pci.9 pci_get_vpd_ident.9 \ pci.9 pci_get_vpd_readonly.9 \ pci.9 pci_iov_attach.9 \ + pci.9 pci_iov_attach_name.9 \ pci.9 pci_iov_detach.9 \ pci.9 pci_msi_count.9 \ pci.9 pci_msix_count.9 \ Modified: head/share/man/man9/pci.9 == --- head/share/man/man9/pci.9 Wed Aug 3 16:52:00 2016(r303720) +++ head/share/man/man9/pci.9 Wed Aug 3 17:09:12 2016(r303721) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 24, 2016 +.Dd August 3, 2016 .Dt PCI 9 .Os .Sh NAME @@ -50,6 +50,7 @@ .Nm pci_get_vpd_ident , .Nm pci_get_vpd_readonly , .Nm pci_iov_attach , +.Nm pci_iov_attach_name , .Nm pci_iov_detach , .Nm pci_msi_count , .Nm pci_msix_count , @@ -152,6 +153,14 @@ .Ft int .Fn pci_iov_attach "device_t dev" "nvlist_t *pf_schema" "nvlist_t *vf_schema" .Ft int +.Fo pci_iov_attach_name +.Fa "device_t dev" +.Fa "nvlist_t *pf_schema" +.Fa "nvlist_t *vf_schema" +.Fa "const char *fmt" +.Fa "..." +.Fc +.Ft int .Fn pci_iov_detach "device_t dev" .Sh DESCRIPTION The @@ -595,6 +604,20 @@ and is responsible for freeing them. The driver must never free the schemas itself. .Pp The +.Fn pci_iov_attach_name +function is a variant of +.Fn pci_iov_attach +that allows the name of the associated character device in +.Pa /dev/iov +to be specified by +.Fa fmt . +The +.Fn pci_iov_attach +function uses the name of +.Fa dev +as the device name. +.Pp +The .Fn pci_iov_detach function is used to advise the SR-IOV infrastructure that the driver for the given device is attempting to detach and that all SR-IOV resources for the Modified: head/sys/dev/pci/pci_if.m == --- head/sys/dev/pci/pci_if.m Wed Aug 3 16:52:00 2016(r303720) +++ head/sys/dev/pci/pci_if.m Wed Aug 3 17:09:12 2016(r303721) @@ -235,6 +235,7 @@ METHOD int iov_attach { device_tchild; struct nvlist *pf_schema; struct nvlist *vf_schema; + const char *name; }; METHOD int iov_detach { Modified: head/sys/dev/pci/pci_iov.c == --- head/sys/dev/pci/pci_iov.c Wed Aug 3 16:52:00 2016(r303720) +++ head/sys/dev/pci/pci_iov.c Wed Aug 3 17:09:12 2016(r303721) @@ -98,8 +98,22 @@ static nvlist_t *pci_iov_get_pf_subsyste static nvlist_t*pci_iov_get_vf_subsystem_schema(void); int +pci_iov_attach_name(device_t dev, struct nvlist *pf_schema, +struct nvlist *vf_schema, const char *fmt, ...) +{ + char buf[NAME_MAX + 1]; + va_list ap; + + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + va_end(ap); + return (PCI_IOV_ATTACH(device_get_parent(dev), dev, pf_schema, + vf_schema, buf)); +} + +int pci_iov_attach_method(device_t bus, device_t dev, nvlist_t *pf_schema, -nvlist_t *vf_schema) +nvlist_t *vf_schema, const char *name) { device_t pcib; struct pci_devinfo *dinfo; @@ -149,7 +163,7 @@ pci_iov_attach_method(device_t bus, devi iov->iov_schema = schema; iov->iov_cdev = make_dev(_cdevsw, device_get_unit(dev), - UID_ROOT, GID_WHEEL, 0600, "iov/%s", device_get_nameunit(dev)); + UID_ROOT, GID_WHEEL, 0600, "iov/%s", name); if (iov->iov_cdev == NULL) { error = ENOMEM; Modified: head/sys/dev/pci/pci_iov.h == --- head/sys/dev/pci/pci_iov.h Wed Aug 3 16:52:00 2016(r303720) +++ head/sys/dev/pci/pci_iov.h Wed Aug 3 17:09:12 2016
svn commit: r303720 - head/sys/dev/hwpmc
Author: jhb Date: Wed Aug 3 16:52:00 2016 New Revision: 303720 URL: https://svnweb.freebsd.org/changeset/base/303720 Log: Apply the fix from r232612 to fixed function counters. Reviewed by: emaste MFC after:1 month Differential Revision:https://reviews.freebsd.org/D7397 Modified: head/sys/dev/hwpmc/hwpmc_core.c Modified: head/sys/dev/hwpmc/hwpmc_core.c == --- head/sys/dev/hwpmc/hwpmc_core.c Wed Aug 3 16:34:20 2016 (r303719) +++ head/sys/dev/hwpmc/hwpmc_core.c Wed Aug 3 16:52:00 2016 (r303720) @@ -365,7 +365,7 @@ iaf_read_pmc(int cpu, int ri, pmc_value_ if (PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) *v = iaf_perfctr_value_to_reload_count(tmp); else - *v = tmp; + *v = tmp & ((1ULL << core_iaf_width) - 1); PMCDBG4(MDP,REA,1, "iaf-read cpu=%d ri=%d msr=0x%x -> v=%jx", cpu, ri, IAF_RI_TO_MSR(ri), *v); ___ 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"
Re: svn commit: r303716 - head/crypto/openssh
On Wed, Aug 03, 2016 at 04:08:22PM +, Dag-Erling Smørgrav wrote: > Author: des > Date: Wed Aug 3 16:08:21 2016 > New Revision: 303716 > URL: https://svnweb.freebsd.org/changeset/base/303716 > > Log: > Remove DSA from default cipher list and disable SSH1. > > Upstream did this a long time ago, but we kept DSA and SSH1 in FreeBSD for > reasons which boil down to POLA. Now is a good time to catch up. > > MFC after: 3 days > Relnotes: yes > It might be worth considering doing the MFC before 3 days. It's still unclear if we'll need BETA4, but would be nice to have this change in the next build regardless. Glen signature.asc Description: PGP signature
svn commit: r303719 - head/etc/rc.d
Author: des Date: Wed Aug 3 16:34:20 2016 New Revision: 303719 URL: https://svnweb.freebsd.org/changeset/base/303719 Log: Disable DSA again. MFC after:3 days Modified: head/etc/rc.d/sshd Modified: head/etc/rc.d/sshd == --- head/etc/rc.d/sshd Wed Aug 3 16:33:34 2016(r303718) +++ head/etc/rc.d/sshd Wed Aug 3 16:34:20 2016(r303719) @@ -23,7 +23,7 @@ extra_commands="configtest keygen reload : ${sshd_rsa1_enable:="no"} : ${sshd_rsa_enable:="yes"} -: ${sshd_dsa_enable:="yes"} +: ${sshd_dsa_enable:="no"} : ${sshd_ecdsa_enable:="yes"} : ${sshd_ed25519_enable:="yes"} ___ 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: r303718 - head/usr.bin/indent
Author: pfg Date: Wed Aug 3 16:33:34 2016 New Revision: 303718 URL: https://svnweb.freebsd.org/changeset/base/303718 Log: indent(1): accept offsetof(3) as a keyword. Reference: https://github.com/pstef/freebsd_indent/commit/c470e5e2c974aa38450ca4762b93829f7a7bfa4d Differential Revision: https://reviews.freebsd.org/D6966 (Partial) Submitted by: Piotr Stefaniak Modified: head/usr.bin/indent/indent.c head/usr.bin/indent/indent_globs.h head/usr.bin/indent/lexi.c Modified: head/usr.bin/indent/indent.c == --- head/usr.bin/indent/indent.cWed Aug 3 16:10:53 2016 (r303717) +++ head/usr.bin/indent/indent.cWed Aug 3 16:33:34 2016 (r303718) @@ -510,8 +510,11 @@ check_type: case lparen:/* got a '(' or '[' */ ++ps.p_l_follow;/* count parens to make Healy happy */ if (ps.want_blank && *token != '[' && - (ps.last_token != ident || proc_calls_space - || (ps.its_a_keyword && (!ps.sizeof_keyword || Bill_Shannon + (ps.last_token != ident || proc_calls_space || + /* offsetof (1) is never allowed a space; sizeof (2) gets +* one iff -bs; all other keywords (>2) always get a space +* before lparen */ + (ps.keyword + Bill_Shannon > 2))) *e_code++ = ' '; ps.want_blank = false; if (ps.in_decl && !ps.block_init && !ps.dumped_decl_indent && @@ -542,19 +545,20 @@ check_type: ps.in_or_st = false;/* turn off flag for structure decl or * initialization */ } - if (ps.sizeof_keyword) - ps.sizeof_mask |= 1 << ps.p_l_follow; + /* parenthesized type following sizeof or offsetof is not a cast */ + if (ps.keyword == 1 || ps.keyword == 2) + ps.not_cast_mask |= 1 << ps.p_l_follow; break; case rparen:/* got a ')' or ']' */ rparen_count--; - if (ps.cast_mask & (1 << ps.p_l_follow) & ~ps.sizeof_mask) { + if (ps.cast_mask & (1 << ps.p_l_follow) & ~ps.not_cast_mask) { ps.last_u_d = true; ps.cast_mask &= (1 << ps.p_l_follow) - 1; ps.want_blank = false; } else ps.want_blank = true; - ps.sizeof_mask &= (1 << ps.p_l_follow) - 1; + ps.not_cast_mask &= (1 << ps.p_l_follow) - 1; if (--ps.p_l_follow < 0) { ps.p_l_follow = 0; diag3(0, "Extra %c", *token); @@ -712,7 +716,7 @@ check_type: if (ps.last_token == rparen && rparen_count == 0) ps.in_parameter_declaration = 0; ps.cast_mask = 0; - ps.sizeof_mask = 0; + ps.not_cast_mask = 0; ps.block_init = 0; ps.block_init_level = 0; ps.just_saw_decl--; @@ -968,7 +972,7 @@ check_type: copy_id: if (ps.want_blank) *e_code++ = ' '; - if (troff && ps.its_a_keyword) { + if (troff && ps.keyword) { e_code = chfont(, , e_code); for (t_ptr = token; *t_ptr; ++t_ptr) { CHECK_SIZE_CODE; Modified: head/usr.bin/indent/indent_globs.h == --- head/usr.bin/indent/indent_globs.h Wed Aug 3 16:10:53 2016 (r303717) +++ head/usr.bin/indent/indent_globs.h Wed Aug 3 16:33:34 2016 (r303718) @@ -244,10 +244,10 @@ struct parser_state { * char should be lined up with the / in / followed by * */ int comment_delta, n_comment_delta; -int cast_mask; /* indicates which close parens close off -* casts */ -int sizeof_mask; /* indicates which close parens close off -* sizeof''s */ +int cast_mask; /* indicates which close parens potentially +* close off casts */ +int not_cast_mask; /* indicates which close parens definitely +* close off something else than casts */ int block_init;/* true iff inside a block initialization */ int block_init_level; /* The level of brace nesting in an * initialization */ @@ -317,8 +317,7 @@ struct parser_state { * specially */ int decl_indent; /* column to indent declared identifiers to */ int local_decl_indent; /* like decl_indent but for locals */ -int its_a_keyword; -int sizeof_keyword; +int keyword; /* the type of a keyword
Re: svn commit: r303716 - head/crypto/openssh
Benjamin Kadukwrites: > Which branch(es) are MFC targets? It will be merged to stable/11 before the release and documented in the release notes. > (Does POLA no longer apply to them?) Things change over time. Such is the nature of software (and of life). POLA does not mean we don't change anything, just that we try not to make disruptive changes during the lifetime of a release branch. DES -- Dag-Erling Smørgrav - d...@des.no ___ 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"
Re: svn commit: r303716 - head/crypto/openssh
On Wed, Aug 3, 2016 at 11:08 AM, Dag-Erling Smørgravwrote: > Author: des > Date: Wed Aug 3 16:08:21 2016 > New Revision: 303716 > URL: https://svnweb.freebsd.org/changeset/base/303716 > > Log: > Remove DSA from default cipher list and disable SSH1. > > Upstream did this a long time ago, but we kept DSA and SSH1 in FreeBSD > for > reasons which boil down to POLA. Now is a good time to catch up. > > MFC after:3 days > Which branch(es) are MFC targets? (Does POLA no longer apply to them?) -Ben ___ 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: r303717 - stable/11/lib/libc/sys
Author: brooks Date: Wed Aug 3 16:10:53 2016 New Revision: 303717 URL: https://svnweb.freebsd.org/changeset/base/303717 Log: MFC r303104, r303106: Update to reflect the fact that pipe() is a wrapper around the pipe2() system call. Reviewed by: jhb, wblock Sponsored by: DAPRA, AFRL Change wording to use function rather than system call in the description as well. Authored by: zeising Reviewed by: brooks Approved by: re (gjb) Sponsored by: DAPRA, AFRL Modified: stable/11/lib/libc/sys/pipe.2 Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libc/sys/pipe.2 == --- stable/11/lib/libc/sys/pipe.2 Wed Aug 3 16:08:21 2016 (r303716) +++ stable/11/lib/libc/sys/pipe.2 Wed Aug 3 16:10:53 2016 (r303717) @@ -28,7 +28,7 @@ .\" @(#)pipe.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd June 22, 2016 +.Dd July 20, 2016 .Dt PIPE 2 .Os .Sh NAME @@ -46,7 +46,7 @@ .Sh DESCRIPTION The .Fn pipe -system call +function creates a .Em pipe , which is an object allowing @@ -109,6 +109,18 @@ The bidirectional nature of this impleme portable to older systems, so it is recommended to use the convention for using the endpoints in the traditional manner when using a pipe in one direction. +.Sh IMPLEMENTATION NOTES +The +.Fn pipe +function calls the +.Fn pipe2 +system call. +As a result, system call traces such as those captured by +.Xr dtrace 1 +or +.Xr ktrace 1 +will show calls to +.Fn pipe2 . .Sh RETURN VALUES .Rv -std pipe .Sh ERRORS @@ -157,3 +169,10 @@ The .Fn pipe2 function appeared in .Fx 10.0 . +.Pp +The +.Fn pipe +function became a wrapper around +.Fn pipe2 +in +.Fx 11.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: r303716 - head/crypto/openssh
Author: des Date: Wed Aug 3 16:08:21 2016 New Revision: 303716 URL: https://svnweb.freebsd.org/changeset/base/303716 Log: Remove DSA from default cipher list and disable SSH1. Upstream did this a long time ago, but we kept DSA and SSH1 in FreeBSD for reasons which boil down to POLA. Now is a good time to catch up. MFC after:3 days Relnotes: yes Modified: head/crypto/openssh/FREEBSD-upgrade head/crypto/openssh/config.h head/crypto/openssh/configure.ac head/crypto/openssh/myproposal.h head/crypto/openssh/servconf.c head/crypto/openssh/ssh_config.5 head/crypto/openssh/sshd_config.5 Modified: head/crypto/openssh/FREEBSD-upgrade == --- head/crypto/openssh/FREEBSD-upgrade Wed Aug 3 15:58:20 2016 (r303715) +++ head/crypto/openssh/FREEBSD-upgrade Wed Aug 3 16:08:21 2016 (r303716) @@ -142,30 +142,25 @@ Support for TCP wrappers was removed in upstream 6.7p1. We've added it back by porting the 6.6p1 code forward. -6) DSA keys - - DSA keys were disabled by default in upstream 6.9p1. We've added - them back. - -7) Agent client reference counting +6) Agent client reference counting We've added code to ssh-agent.c to implement client reference counting; the agent will automatically exit when the last client disconnects. -8) Class-based login restrictions +7) Class-based login restrictions We've added code to auth2.c to enforce the host.allow, host.deny, times.allow and times.deny login class capabilities. -9) HPN +8) HPN We no longer have the HPN patches (adaptive buffer size for increased throughput on high-BxD links), but we recognize and ignore HPN-related configuration options to avoid breaking existing configurations. -A) AES-CBC +9) AES-CBC The AES-CBC ciphers were removed from the server-side proposal list in 6.7p1 due to theoretical weaknesses and the availability of Modified: head/crypto/openssh/config.h == --- head/crypto/openssh/config.hWed Aug 3 15:58:20 2016 (r303715) +++ head/crypto/openssh/config.hWed Aug 3 16:08:21 2016 (r303716) @@ -1701,7 +1701,7 @@ /* #undef WITH_SELINUX */ /* include SSH protocol version 1 support */ -#define WITH_SSH1 1 +/* #undef WITH_SSH1 */ /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ Modified: head/crypto/openssh/configure.ac == --- head/crypto/openssh/configure.acWed Aug 3 15:58:20 2016 (r303715) +++ head/crypto/openssh/configure.acWed Aug 3 16:08:21 2016 (r303716) @@ -123,7 +123,7 @@ AC_CHECK_DECL([PR_SET_NO_NEW_PRIVS], [ha ]) openssl=yes -ssh1=yes +ssh1=no AC_ARG_WITH([openssl], [ --without-openssl Disable use of OpenSSL; use only limited internal crypto **EXPERIMENTAL** ], [ if test "x$withval" = "xno" ; then Modified: head/crypto/openssh/myproposal.h == --- head/crypto/openssh/myproposal.hWed Aug 3 15:58:20 2016 (r303715) +++ head/crypto/openssh/myproposal.hWed Aug 3 16:08:21 2016 (r303716) @@ -100,13 +100,11 @@ HOSTKEY_ECDSA_CERT_METHODS \ "ssh-ed25519-cert-...@openssh.com," \ "ssh-rsa-cert-...@openssh.com," \ - "ssh-dss-cert-...@openssh.com," \ HOSTKEY_ECDSA_METHODS \ "ssh-ed25519," \ "rsa-sha2-512," \ "rsa-sha2-256," \ - "ssh-rsa," \ - "ssh-dss" + "ssh-rsa" /* the actual algorithms */ Modified: head/crypto/openssh/servconf.c == --- head/crypto/openssh/servconf.c Wed Aug 3 15:58:20 2016 (r303715) +++ head/crypto/openssh/servconf.c Wed Aug 3 16:08:21 2016 (r303716) @@ -206,8 +206,6 @@ fill_default_server_options(ServerOption /* Standard Options */ if (options->protocol == SSH_PROTO_UNKNOWN) options->protocol = SSH_PROTO_2; - if (options->protocol & SSH_PROTO_1) - error("WARNING: SSH protocol version 1 enabled"); if (options->num_host_key_files == 0) { /* fill default hostkeys for protocols */ if (options->protocol & SSH_PROTO_1) Modified: head/crypto/openssh/ssh_config.5 == --- head/crypto/openssh/ssh_config.5Wed Aug 3 15:58:20 2016 (r303715) +++ head/crypto/openssh/ssh_config.5Wed Aug 3 16:08:21 2016 (r303716) @@ -871,10 +871,8 @@ ecdsa-sha2-nistp384-cert-...@openssh.com ecdsa-sha2-nistp521-cert-...@openssh.com,
svn commit: r303715 - head/sys/fs/nfsclient
Author: kib Date: Wed Aug 3 15:58:20 2016 New Revision: 303715 URL: https://svnweb.freebsd.org/changeset/base/303715 Log: Remove ncl_printf(), use printf(9) directly. After r303710 the function duplicates printf(). Correct function names in the messages [*]. Noted by: bde [*] Sponsored by: The FreeBSD Foundation MFC after:1 week Modified: head/sys/fs/nfsclient/nfs_clbio.c head/sys/fs/nfsclient/nfs_clsubs.c head/sys/fs/nfsclient/nfs_clvnops.c head/sys/fs/nfsclient/nfsnode.h Modified: head/sys/fs/nfsclient/nfs_clbio.c == --- head/sys/fs/nfsclient/nfs_clbio.c Wed Aug 3 15:39:58 2016 (r303714) +++ head/sys/fs/nfsclient/nfs_clbio.c Wed Aug 3 15:58:20 2016 (r303715) @@ -103,7 +103,7 @@ ncl_getpages(struct vop_getpages_args *a npages = ap->a_count; if ((object = vp->v_object) == NULL) { - ncl_printf("nfs_getpages: called with non-merged cache vnode??\n"); + printf("ncl_getpages: called with non-merged cache vnode\n"); return (VM_PAGER_ERROR); } @@ -111,7 +111,7 @@ ncl_getpages(struct vop_getpages_args *a mtx_lock(>n_mtx); if ((np->n_flag & NNONCACHE) && (vp->v_type == VREG)) { mtx_unlock(>n_mtx); - ncl_printf("nfs_getpages: called on non-cacheable vnode??\n"); + printf("ncl_getpages: called on non-cacheable vnode\n"); return (VM_PAGER_ERROR); } else mtx_unlock(>n_mtx); @@ -166,7 +166,7 @@ ncl_getpages(struct vop_getpages_args *a relpbuf(bp, _pbuf_freecnt); if (error && (uio.uio_resid == count)) { - ncl_printf("nfs_getpages: error %d\n", error); + printf("ncl_getpages: error %d\n", error); return (VM_PAGER_ERROR); } @@ -267,7 +267,7 @@ ncl_putpages(struct vop_putpages_args *a if (newnfs_directio_enable && !newnfs_directio_allow_mmap && (np->n_flag & NNONCACHE) && (vp->v_type == VREG)) { mtx_unlock(>n_mtx); - ncl_printf("ncl_putpages: called on noncache-able vnode??\n"); + printf("ncl_putpages: called on noncache-able vnode\n"); mtx_lock(>n_mtx); } @@ -678,7 +678,7 @@ ncl_bioread(struct vnode *vp, struct uio n = np->n_direofoffset - uio->uio_offset; break; default: - ncl_printf(" ncl_bioread: type %x unexpected\n", vp->v_type); + printf(" ncl_bioread: type %x unexpected\n", vp->v_type); bp = NULL; break; } @@ -1121,7 +1121,7 @@ again: */ if (bp->b_dirtyend > bcount) { - ncl_printf("NFS append race @%lx:%d\n", + printf("NFS append race @%lx:%d\n", (long)bp->b_blkno * DEV_BSIZE, bp->b_dirtyend - bcount); bp->b_dirtyend = bcount; @@ -1662,7 +1662,7 @@ ncl_doio(struct vnode *vp, struct buf *b bp->b_flags |= B_INVAL; break; default: - ncl_printf("ncl_doio: type %x unexpected\n", vp->v_type); + printf("ncl_doio: type %x unexpected\n", vp->v_type); break; } if (error) { Modified: head/sys/fs/nfsclient/nfs_clsubs.c == --- head/sys/fs/nfsclient/nfs_clsubs.c Wed Aug 3 15:39:58 2016 (r303714) +++ head/sys/fs/nfsclient/nfs_clsubs.c Wed Aug 3 15:58:20 2016 (r303715) @@ -161,16 +161,6 @@ ncl_downgrade_vnlock(struct vnode *vp, i } } -void -ncl_printf(const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - vprintf(fmt, ap); - va_end(ap); -} - #ifdef NFS_ACDEBUG #include SYSCTL_DECL(_vfs_nfs); @@ -201,7 +191,7 @@ ncl_getattrcache(struct vnode *vp, struc #ifdef NFS_ACDEBUG if (nfs_acdebug>1) - ncl_printf("nfs_getattrcache: initial timeo = %d\n", timeo); + printf("ncl_getattrcache: initial timeo = %d\n", timeo); #endif if (vap->va_type == VDIR) { @@ -218,13 +208,13 @@ ncl_getattrcache(struct vnode *vp, struc #ifdef NFS_ACDEBUG if (nfs_acdebug > 2) - ncl_printf("acregmin %d; acregmax %d; acdirmin %d; acdirmax %d\n", - nmp->nm_acregmin, nmp->nm_acregmax, - nmp->nm_acdirmin, nmp->nm_acdirmax); + printf("acregmin %d; acregmax %d; acdirmin %d; acdirmax %d\n", + nmp->nm_acregmin, nmp->nm_acregmax, + nmp->nm_acdirmin, nmp->nm_acdirmax); if (nfs_acdebug) -
svn commit: r303714 - stable/11
Author: brooks Date: Wed Aug 3 15:39:58 2016 New Revision: 303714 URL: https://svnweb.freebsd.org/changeset/base/303714 Log: MFC r303103: Minor wording improvements to the note about pipe(2) removal. Approved by: re (gjb) Sponsored by: DARPA, AFRL Modified: stable/11/UPDATING Directory Properties: stable/11/ (props changed) Modified: stable/11/UPDATING == --- stable/11/UPDATING Wed Aug 3 15:20:10 2016(r303713) +++ stable/11/UPDATING Wed Aug 3 15:39:58 2016(r303714) @@ -18,11 +18,12 @@ from older version of current across the 20160622: The libc stub for the pipe(2) system call has been replaced with - a wrapper which calls the pipe2(2) system call and the pipe(2) is now - only implemented by the kernels which include "options - COMPAT_FREEBSD10" in their config file (this is the default). - Users should ensure that this option is enabled in their kernel - or upgrade userspace to r302092 before upgrading their kernel. + a wrapper that calls the pipe2(2) system call and the pipe(2) + system call is now only implemented by the kernels that include + "options COMPAT_FREEBSD10" in their config file (this is the + default). Users should ensure that this option is enabled in + their kernel or upgrade userspace to r302092 before upgrading their + kernel. 20160527: CAM will now strip leading spaces from SCSI disks' serial numbers. ___ 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: r303713 - head/sys/amd64/vmm
Author: jhb Date: Wed Aug 3 15:20:10 2016 New Revision: 303713 URL: https://svnweb.freebsd.org/changeset/base/303713 Log: Correct assertion on vcpuid argument to vm_gpa_hold(). PR: 208168 Submitted by: Dave CameronReviewed by: grehan MFC after:1 month Modified: head/sys/amd64/vmm/vmm.c Modified: head/sys/amd64/vmm/vmm.c == --- head/sys/amd64/vmm/vmm.cWed Aug 3 13:51:53 2016(r303712) +++ head/sys/amd64/vmm/vmm.cWed Aug 3 15:20:10 2016(r303713) @@ -914,7 +914,7 @@ vm_gpa_hold(struct vm *vm, int vcpuid, v * guaranteed if at least one vcpu is in the VCPU_FROZEN state. */ int state; - KASSERT(vcpuid >= -1 || vcpuid < VM_MAXCPU, ("%s: invalid vcpuid %d", + KASSERT(vcpuid >= -1 && vcpuid < VM_MAXCPU, ("%s: invalid vcpuid %d", __func__, vcpuid)); for (i = 0; i < VM_MAXCPU; i++) { if (vcpuid != -1 && vcpuid != i) ___ 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"
Re: svn commit: r303710 - head/sys/fs/nfsclient
On Wed, 3 Aug 2016, Konstantin Belousov wrote: Log: Remove unneeded (recursing) Giant acquisition around vprintf(9). Reviewed by: rmacklem Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/fs/nfsclient/nfs_clsubs.c Modified: head/sys/fs/nfsclient/nfs_clsubs.c == --- head/sys/fs/nfsclient/nfs_clsubs.c Wed Aug 3 10:23:42 2016 (r303709) +++ head/sys/fs/nfsclient/nfs_clsubs.c Wed Aug 3 11:49:17 2016 (r303710) @@ -166,11 +166,9 @@ ncl_printf(const char *fmt, ...) { va_list ap; - mtx_lock(); va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); - mtx_unlock(); } #ifdef NFS_ACDEBUG This leaves the less than needed function nfs_printf(). Old versions of nfs used the correct function printf(). All nfs_printf() ever did was: - when it was first implemented, almost never work. It had printf(fmt, ap) instead of vprintf(fmt, ap). This only worked when fmt had no % directives in it. Otherwise, it gave undefined behaviour. FreeBSD-7 still has this version. - to hold the Giant locking. This was not completely unneeded. It had the side effect of serializing printfs within nfs. Serialization in -current is normally done using PRINTF_BUFR_SIZE, but this is not the default and it gives deadlocks or drops output so I don't use it. I refined my old fix for serializing printf() and it now works very well. @@ -197,9 +195,6 @@ ncl_getattrcache(struct vnode *vp, struc vap = >n_vattr.na_vattr; nmp = VFSTONFS(vp->v_mount); mustflush = nfscl_mustflush(vp);/* must be before mtx_lock() */ -#ifdef NFS_ACDEBUG - mtx_lock(); /* ncl_printf() */ -#endif mtx_lock(>n_mtx); /* XXX n_mtime doesn't seem to be updated on a miss-and-reload */ timeo = (time_second - np->n_mtime.tv_sec) / 10; @@ -236,9 +231,6 @@ ncl_getattrcache(struct vnode *vp, struc (mustflush != 0 || np->n_attrstamp == 0)) { newnfsstats.attrcache_misses++; mtx_unlock(>n_mtx); -#ifdef NFS_ACDEBUG - mtx_unlock(); /* ncl_printf() */ -#endif KDTRACE_NFS_ATTRCACHE_GET_MISS(vp); return( ENOENT); } @@ -266,9 +258,6 @@ ncl_getattrcache(struct vnode *vp, struc vaper->va_mtime = np->n_mtim; } mtx_unlock(>n_mtx); -#ifdef NFS_ACDEBUG - mtx_unlock(); /* ncl_printf() */ -#endif KDTRACE_NFS_ATTRCACHE_GET_HIT(vp, vap); return (0); } Unfortunately, these are probably still "needed". printf() serialization using PRINTF_BUFR_SIZE or my method only works for individual printf()s or possibly single lines. Just about any lock around a group of printf()s serializes them as a group (only across subsystems using the same lock of course). Bruce ___ 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"
Re: svn commit: r303712 - in head/sys: amd64/amd64 conf i386/i386 x86/x86
On Wed, Aug 03, 2016 at 01:51:53PM +, Konstantin Belousov wrote: > Merge i386 and amd64 variants of mp_watchdog.c into x86/, there is no > difference between files. May be, the file should be deleted. ___ 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: r303712 - in head/sys: amd64/amd64 conf i386/i386 x86/x86
Author: kib Date: Wed Aug 3 13:51:53 2016 New Revision: 303712 URL: https://svnweb.freebsd.org/changeset/base/303712 Log: Merge i386 and amd64 variants of mp_watchdog.c into x86/, there is no difference between files. For pc98, put x86/mp_x86.c into the same place as used by i386 file list. Fix typo in comment. Sponsored by: The FreeBSD Foundation MFC after:1 week Added: head/sys/x86/x86/mp_watchdog.c - copied, changed from r303711, head/sys/amd64/amd64/mp_watchdog.c Deleted: head/sys/amd64/amd64/mp_watchdog.c head/sys/i386/i386/mp_watchdog.c Modified: head/sys/conf/files.amd64 head/sys/conf/files.i386 head/sys/conf/files.pc98 Modified: head/sys/conf/files.amd64 == --- head/sys/conf/files.amd64 Wed Aug 3 13:19:58 2016(r303711) +++ head/sys/conf/files.amd64 Wed Aug 3 13:51:53 2016(r303712) @@ -123,7 +123,6 @@ amd64/amd64/machdep.c standard amd64/amd64/mem.c optionalmem amd64/amd64/minidump_machdep.c standard amd64/amd64/mp_machdep.c optionalsmp -amd64/amd64/mp_watchdog.c optionalmp_watchdog smp amd64/amd64/mpboot.S optionalsmp amd64/amd64/pmap.c standard amd64/amd64/prof_machdep.c optionalprofiling-routine @@ -621,6 +620,7 @@ x86/x86/mca.c standard x86/x86/mptable.c optionalmptable x86/x86/mptable_pci.c optionalmptable pci x86/x86/mp_x86.c optionalsmp +x86/x86/mp_watchdog.c optionalmp_watchdog smp x86/x86/msi.c optionalpci x86/x86/nexus.cstandard x86/x86/pvclock.c standard Modified: head/sys/conf/files.i386 == --- head/sys/conf/files.i386Wed Aug 3 13:19:58 2016(r303711) +++ head/sys/conf/files.i386Wed Aug 3 13:51:53 2016(r303712) @@ -481,7 +481,6 @@ i386/i386/mem.c optional mem i386/i386/minidump_machdep.c standard i386/i386/mp_clock.c optional smp i386/i386/mp_machdep.c optional smp -i386/i386/mp_watchdog.coptional mp_watchdog smp i386/i386/mpboot.s optional smp i386/i386/perfmon.coptional perfmon i386/i386/pmap.c standard @@ -612,6 +611,7 @@ x86/x86/mca.c standard x86/x86/mptable.c optional apic x86/x86/mptable_pci.c optional apic pci x86/x86/mp_x86.c optional smp +x86/x86/mp_watchdog.c optional mp_watchdog smp x86/x86/msi.c optional apic pci x86/x86/nexus.cstandard x86/x86/stack_machdep.coptional ddb | stack Modified: head/sys/conf/files.pc98 == --- head/sys/conf/files.pc98Wed Aug 3 13:19:58 2016(r303711) +++ head/sys/conf/files.pc98Wed Aug 3 13:51:53 2016(r303712) @@ -168,7 +168,6 @@ i386/i386/mem.c optional mem i386/i386/minidump_machdep.c standard i386/i386/mp_clock.c optional smp i386/i386/mp_machdep.c optional smp -i386/i386/mp_watchdog.coptional mp_watchdog smp i386/i386/mpboot.s optional smp i386/i386/perfmon.coptional perfmon i386/i386/pmap.c standard @@ -269,9 +268,10 @@ x86/x86/io_apic.c optional apic x86/x86/legacy.c standard x86/x86/local_apic.c optional apic x86/x86/mca.c standard -x86/x86/mp_x86.c optional smp x86/x86/mptable.c optional apic x86/x86/mptable_pci.c optional apic pci +x86/x86/mp_x86.c optional smp +x86/x86/mp_watchdog.c optional mp_watchdog smp x86/x86/msi.c optional apic pci x86/x86/nexus.cstandard x86/x86/stack_machdep.coptional ddb | stack Copied and modified: head/sys/x86/x86/mp_watchdog.c (from r303711, head/sys/amd64/amd64/mp_watchdog.c) == --- head/sys/amd64/amd64/mp_watchdog.c Wed Aug 3 13:19:58 2016 (r303711, copy source) +++ head/sys/x86/x86/mp_watchdog.c Wed Aug 3 13:51:53 2016 (r303712) @@ -92,7 +92,7 @@ watchdog_init(void *arg) /* * This callout resets a timer until the watchdog kicks in. It acquires some - * critical locks to make sure things haven't gotten wedged with hose locks + * critical locks to make sure things haven't gotten wedged with those locks * held. */ static void ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to
svn commit: r303711 - in stable/11/sys/x86: x86 xen
Author: royger Date: Wed Aug 3 13:19:58 2016 New Revision: 303711 URL: https://svnweb.freebsd.org/changeset/base/303711 Log: MFC r303490, r303491: xen-intr: fix removal of event channels during resume Revert r291022: x86/intr: allow mutex recursion in intr_remove_handler Approved by: re (kib) Modified: stable/11/sys/x86/x86/intr_machdep.c stable/11/sys/x86/xen/xen_intr.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/x86/x86/intr_machdep.c == --- stable/11/sys/x86/x86/intr_machdep.cWed Aug 3 11:49:17 2016 (r303710) +++ stable/11/sys/x86/x86/intr_machdep.cWed Aug 3 13:19:58 2016 (r303711) @@ -197,28 +197,19 @@ int intr_remove_handler(void *cookie) { struct intsrc *isrc; - int error, mtx_owned; + int error; isrc = intr_handler_source(cookie); error = intr_event_remove_handler(cookie); if (error == 0) { - /* -* Recursion is needed here so PICs can remove interrupts -* while resuming. It was previously not possible due to -* intr_resume holding the intr_table_lock and -* intr_remove_handler recursing on it. -*/ - mtx_owned = mtx_owned(_table_lock); - if (mtx_owned == 0) - mtx_lock(_table_lock); + mtx_lock(_table_lock); isrc->is_handlers--; if (isrc->is_handlers == 0) { isrc->is_pic->pic_disable_source(isrc, PIC_NO_EOI); isrc->is_pic->pic_disable_intr(isrc); } intrcnt_updatename(isrc); - if (mtx_owned == 0) - mtx_unlock(_table_lock); + mtx_unlock(_table_lock); } return (error); } Modified: stable/11/sys/x86/xen/xen_intr.c == --- stable/11/sys/x86/xen/xen_intr.cWed Aug 3 11:49:17 2016 (r303710) +++ stable/11/sys/x86/xen/xen_intr.cWed Aug 3 13:19:58 2016 (r303711) @@ -130,8 +130,6 @@ struct xenisrc { u_int xi_masked:1; }; -#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) - static voidxen_intr_suspend(struct pic *); static voidxen_intr_resume(struct pic *, bool suspend_cancelled); static voidxen_intr_enable_source(struct intsrc *isrc); @@ -422,7 +420,7 @@ xen_intr_bind_isrc(struct xenisrc **isrc mtx_unlock(_intr_isrc_lock); /* Assign the opaque handler (the event channel port) */ - *port_handlep = >xi_port; + *port_handlep = >xi_vector; #ifdef SMP if (type == EVTCHN_TYPE_PORT) { @@ -468,16 +466,17 @@ xen_intr_bind_isrc(struct xenisrc **isrc static struct xenisrc * xen_intr_isrc(xen_intr_handle_t handle) { - evtchn_port_t port; + int vector; if (handle == NULL) return (NULL); - port = *(evtchn_port_t *)handle; - if (!is_valid_evtchn(port) || port >= NR_EVENT_CHANNELS) - return (NULL); + vector = *(int *)handle; + KASSERT(vector >= FIRST_EVTCHN_INT && + vector < (FIRST_EVTCHN_INT + xen_intr_auto_vector_count), + ("Xen interrupt vector is out of range")); - return (xen_intr_port_to_isrc[port]); + return ((struct xenisrc *)intr_lookup_source(vector)); } /** @@ -780,10 +779,6 @@ xen_intr_resume(struct pic *unused, bool xen_rebind_virq(isrc); break; default: - intr_remove_handler(isrc->xi_cookie); - isrc->xi_cpu = 0; - isrc->xi_type = EVTCHN_TYPE_UNBOUND; - isrc->xi_cookie = NULL; break; } } ___ 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: r303710 - head/sys/fs/nfsclient
Author: kib Date: Wed Aug 3 11:49:17 2016 New Revision: 303710 URL: https://svnweb.freebsd.org/changeset/base/303710 Log: Remove unneeded (recursing) Giant acquisition around vprintf(9). Reviewed by: rmacklem Sponsored by: The FreeBSD Foundation MFC after:1 week Modified: head/sys/fs/nfsclient/nfs_clsubs.c Modified: head/sys/fs/nfsclient/nfs_clsubs.c == --- head/sys/fs/nfsclient/nfs_clsubs.c Wed Aug 3 10:23:42 2016 (r303709) +++ head/sys/fs/nfsclient/nfs_clsubs.c Wed Aug 3 11:49:17 2016 (r303710) @@ -166,11 +166,9 @@ ncl_printf(const char *fmt, ...) { va_list ap; - mtx_lock(); va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); - mtx_unlock(); } #ifdef NFS_ACDEBUG @@ -197,9 +195,6 @@ ncl_getattrcache(struct vnode *vp, struc vap = >n_vattr.na_vattr; nmp = VFSTONFS(vp->v_mount); mustflush = nfscl_mustflush(vp);/* must be before mtx_lock() */ -#ifdef NFS_ACDEBUG - mtx_lock(); /* ncl_printf() */ -#endif mtx_lock(>n_mtx); /* XXX n_mtime doesn't seem to be updated on a miss-and-reload */ timeo = (time_second - np->n_mtime.tv_sec) / 10; @@ -236,9 +231,6 @@ ncl_getattrcache(struct vnode *vp, struc (mustflush != 0 || np->n_attrstamp == 0)) { newnfsstats.attrcache_misses++; mtx_unlock(>n_mtx); -#ifdef NFS_ACDEBUG - mtx_unlock(); /* ncl_printf() */ -#endif KDTRACE_NFS_ATTRCACHE_GET_MISS(vp); return( ENOENT); } @@ -266,9 +258,6 @@ ncl_getattrcache(struct vnode *vp, struc vaper->va_mtime = np->n_mtim; } mtx_unlock(>n_mtx); -#ifdef NFS_ACDEBUG - mtx_unlock(); /* ncl_printf() */ -#endif KDTRACE_NFS_ATTRCACHE_GET_HIT(vp, vap); return (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: r303709 - stable/10/lib/libthr/thread
Author: kib Date: Wed Aug 3 10:23:42 2016 New Revision: 303709 URL: https://svnweb.freebsd.org/changeset/base/303709 Log: MFC r303393: Remove empty initializer for the once facility. Modified: stable/10/lib/libthr/thread/thr_init.c stable/10/lib/libthr/thread/thr_once.c stable/10/lib/libthr/thread/thr_private.h Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libthr/thread/thr_init.c == --- stable/10/lib/libthr/thread/thr_init.c Wed Aug 3 10:18:52 2016 (r303708) +++ stable/10/lib/libthr/thread/thr_init.c Wed Aug 3 10:23:42 2016 (r303709) @@ -438,7 +438,6 @@ init_private(void) _thr_urwlock_init(&_thr_atfork_lock); _thr_umutex_init(&_thr_event_lock); _thr_umutex_init(&_suspend_all_lock); - _thr_once_init(); _thr_spinlock_init(); _thr_list_init(); _thr_wake_addr_init(); Modified: stable/10/lib/libthr/thread/thr_once.c == --- stable/10/lib/libthr/thread/thr_once.c Wed Aug 3 10:18:52 2016 (r303708) +++ stable/10/lib/libthr/thread/thr_once.c Wed Aug 3 10:23:42 2016 (r303709) @@ -92,8 +92,3 @@ _pthread_once(pthread_once_t *once_contr _thr_umtx_wake(_control->state, INT_MAX, 0); return (0); } - -void -_thr_once_init() -{ -} Modified: stable/10/lib/libthr/thread/thr_private.h == --- stable/10/lib/libthr/thread/thr_private.h Wed Aug 3 10:18:52 2016 (r303708) +++ stable/10/lib/libthr/thread/thr_private.h Wed Aug 3 10:23:42 2016 (r303709) @@ -773,7 +773,6 @@ void_thr_link(struct pthread *, struct void _thr_unlink(struct pthread *, struct pthread *) __hidden; void _thr_assert_lock_level(void) __hidden __dead2; void _thr_ast(struct pthread *) __hidden; -void _thr_once_init(void) __hidden; void _thr_report_creation(struct pthread *curthread, struct pthread *newthread) __hidden; void _thr_report_death(struct pthread *curthread) __hidden; ___ 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: r303708 - stable/11/lib/libthr/thread
Author: kib Date: Wed Aug 3 10:18:52 2016 New Revision: 303708 URL: https://svnweb.freebsd.org/changeset/base/303708 Log: MFC r303393: Remove empty initializer for the once facility. Approved by: re (gjb) Modified: stable/11/lib/libthr/thread/thr_init.c stable/11/lib/libthr/thread/thr_once.c stable/11/lib/libthr/thread/thr_private.h Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libthr/thread/thr_init.c == --- stable/11/lib/libthr/thread/thr_init.c Wed Aug 3 09:15:10 2016 (r303707) +++ stable/11/lib/libthr/thread/thr_init.c Wed Aug 3 10:18:52 2016 (r303708) @@ -447,7 +447,6 @@ init_private(void) _thr_urwlock_init(&_thr_atfork_lock); _thr_umutex_init(&_thr_event_lock); _thr_umutex_init(&_suspend_all_lock); - _thr_once_init(); _thr_spinlock_init(); _thr_list_init(); _thr_wake_addr_init(); Modified: stable/11/lib/libthr/thread/thr_once.c == --- stable/11/lib/libthr/thread/thr_once.c Wed Aug 3 09:15:10 2016 (r303707) +++ stable/11/lib/libthr/thread/thr_once.c Wed Aug 3 10:18:52 2016 (r303708) @@ -101,8 +101,3 @@ _pthread_once(pthread_once_t *once_contr _thr_umtx_wake(_control->state, INT_MAX, 0); return (0); } - -void -_thr_once_init(void) -{ -} Modified: stable/11/lib/libthr/thread/thr_private.h == --- stable/11/lib/libthr/thread/thr_private.h Wed Aug 3 09:15:10 2016 (r303707) +++ stable/11/lib/libthr/thread/thr_private.h Wed Aug 3 10:18:52 2016 (r303708) @@ -811,7 +811,6 @@ void_thr_link(struct pthread *, struct void _thr_unlink(struct pthread *, struct pthread *) __hidden; void _thr_assert_lock_level(void) __hidden __dead2; void _thr_ast(struct pthread *) __hidden; -void _thr_once_init(void) __hidden; void _thr_report_creation(struct pthread *curthread, struct pthread *newthread) __hidden; void _thr_report_death(struct pthread *curthread) __hidden; ___ 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: r303707 - head/sys/kern
Author: mjg Date: Wed Aug 3 09:15:10 2016 New Revision: 303707 URL: https://svnweb.freebsd.org/changeset/base/303707 Log: locks: fix sx compilation on mips after r303643 The kernel.h header is required for the SYSINIT macro, which apparently was present on amd64 by accident. Reported by: kib Modified: head/sys/kern/kern_sx.c Modified: head/sys/kern/kern_sx.c == --- head/sys/kern/kern_sx.c Wed Aug 3 09:09:34 2016(r303706) +++ head/sys/kern/kern_sx.c Wed Aug 3 09:15:10 2016(r303707) @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include ___ 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: r303706 - head/lib/libc/gen
Author: ache Date: Wed Aug 3 09:09:34 2016 New Revision: 303706 URL: https://svnweb.freebsd.org/changeset/base/303706 Log: Although the code amount is not big, move POSIX error processing into two sepatate functions to make glob(3) code less obscure and more simple. There is no needs to make them inline since it is error path which supposed to not happes often. Modified: head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.c == --- head/lib/libc/gen/glob.cWed Aug 3 08:57:15 2016(r303705) +++ head/lib/libc/gen/glob.cWed Aug 3 09:09:34 2016(r303706) @@ -177,6 +177,8 @@ static int globexp2(const Char *, const static int globfinal(glob_t *, struct glob_limit *, size_t, const char *); static int match(Char *, Char *, Char *); +static int err_nomatch(glob_t *, struct glob_limit *, const char *); +static int err_aborted(glob_t *, int, char *); #ifdef DEBUG static void qprintf(const char *, Char *); #endif @@ -217,8 +219,7 @@ glob(const char * __restrict pattern, in while (bufnext <= bufend) { clen = mbrtowc(, patnext, MB_LEN_MAX, ); if (clen == (size_t)-1 || clen == (size_t)-2) - return (globfinal(pglob, , - pglob->gl_pathc, pattern)); + return (err_nomatch(pglob, , pattern)); else if (clen == 0) { too_long = 0; break; @@ -240,8 +241,7 @@ glob(const char * __restrict pattern, in prot = 0; clen = mbrtowc(, patnext, MB_LEN_MAX, ); if (clen == (size_t)-1 || clen == (size_t)-2) - return (globfinal(pglob, , - pglob->gl_pathc, pattern)); + return (err_nomatch(pglob, , pattern)); else if (clen == 0) { too_long = 0; break; @@ -251,7 +251,7 @@ glob(const char * __restrict pattern, in } } if (too_long) - return (globfinal(pglob, , pglob->gl_pathc, pattern)); + return (err_nomatch(pglob, , pattern)); *bufnext = EOS; if (flags & GLOB_BRACE) @@ -608,20 +608,9 @@ glob0(const Char *pattern, glob_t *pglob static int globfinal(glob_t *pglob, struct glob_limit *limit, size_t oldpathc, const char *origpat) { - /* -* If there was no match we are going to append the origpat -* if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was specified -* and the origpat did not contain any magic characters -* GLOB_NOMAGIC is there just for compatibility with csh. -*/ - if (pglob->gl_pathc == oldpathc) { - if ((pglob->gl_flags & GLOB_NOCHECK) || - ((pglob->gl_flags & GLOB_NOMAGIC) && - !(pglob->gl_flags & GLOB_MAGCHAR))) - return (globextend(NULL, pglob, limit, origpat)); - else - return (GLOB_NOMATCH); - } + if (pglob->gl_pathc == oldpathc) + return (err_nomatch(pglob, limit, origpat)); + if (!(pglob->gl_flags & GLOB_NOSORT)) qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, pglob->gl_pathc - oldpathc, sizeof(char *), compare); @@ -750,16 +739,10 @@ glob3(Char *pathbuf, Char *pathend, Char if ((dirp = g_opendir(pathbuf, pglob)) == NULL) { if (errno == ENOENT || errno == ENOTDIR) return (0); - if ((pglob->gl_errfunc != NULL && - pglob->gl_errfunc(buf, errno)) || - (pglob->gl_flags & GLOB_ERR)) { - if (errno == 0) - errno = saverrno; - return (GLOB_ABORTED); - } + err = err_aborted(pglob, errno, buf); if (errno == 0) errno = saverrno; - return (0); + return (err); } err = 0; @@ -809,11 +792,9 @@ glob3(Char *pathbuf, Char *pathend, Char } sc += clen; } - if (too_long && ((pglob->gl_errfunc != NULL && - pglob->gl_errfunc(buf, ENAMETOOLONG)) || - (pglob->gl_flags & GLOB_ERR))) { + if (too_long && (err = err_aborted(pglob, ENAMETOOLONG, + buf))) { errno = ENAMETOOLONG; - err = GLOB_ABORTED; break; } if (too_long || !match(pathend, pattern, restpattern)) { @@ -840,9
svn commit: r303705 - head/sys/fs/pseudofs
Author: kib Date: Wed Aug 3 08:57:15 2016 New Revision: 303705 URL: https://svnweb.freebsd.org/changeset/base/303705 Log: Remove Giant asserts. Update comment. Owning Giant in the init/uninit is accidental due to the moment where VFS modules initialization is performed, and is not enforced by the VFS interface. The Giant lock does not prevent a parallel execution of the code, it is VFS which implements the proper protocol. Approved by: des (pseudofs maintainer) Sponsored by: The FreeBSD Foundation MFC after:1 week Modified: head/sys/fs/pseudofs/pseudofs.c head/sys/fs/pseudofs/pseudofs.h head/sys/fs/pseudofs/pseudofs_fileno.c head/sys/fs/pseudofs/pseudofs_vncache.c Modified: head/sys/fs/pseudofs/pseudofs.c == --- head/sys/fs/pseudofs/pseudofs.c Wed Aug 3 08:53:29 2016 (r303704) +++ head/sys/fs/pseudofs/pseudofs.c Wed Aug 3 08:57:15 2016 (r303705) @@ -383,8 +383,6 @@ pfs_init(struct pfs_info *pi, struct vfs struct pfs_node *root; int error; - mtx_assert(, MA_OWNED); - pfs_fileno_init(pi); /* set up the root directory */ @@ -414,8 +412,6 @@ pfs_uninit(struct pfs_info *pi, struct v { int error; - mtx_assert(, MA_OWNED); - pfs_destroy(pi->pi_root); pi->pi_root = NULL; pfs_fileno_uninit(pi); Modified: head/sys/fs/pseudofs/pseudofs.h == --- head/sys/fs/pseudofs/pseudofs.h Wed Aug 3 08:53:29 2016 (r303704) +++ head/sys/fs/pseudofs/pseudofs.h Wed Aug 3 08:57:15 2016 (r303705) @@ -189,9 +189,9 @@ typedef int (*pfs_destroy_t)(PFS_DESTROY /* * pfs_info: describes a pseudofs instance * - * The pi_mutex is only used to avoid using the global subr_unit lock for - * unrhdr. The rest of struct pfs_info is only modified while Giant is - * held (during vfs_init() and vfs_uninit()). + * The pi_mutex is only used to avoid using the global subr_unit lock + * for unrhdr. The rest of struct pfs_info is only modified during + * vfs_init() and vfs_uninit() of the consumer filesystem. */ struct pfs_info { char pi_name[PFS_FSNAMELEN]; Modified: head/sys/fs/pseudofs/pseudofs_fileno.c == --- head/sys/fs/pseudofs/pseudofs_fileno.c Wed Aug 3 08:53:29 2016 (r303704) +++ head/sys/fs/pseudofs/pseudofs_fileno.c Wed Aug 3 08:57:15 2016 (r303705) @@ -52,7 +52,6 @@ void pfs_fileno_init(struct pfs_info *pi) { - mtx_assert(, MA_OWNED); mtx_init(>pi_mutex, "pfs_fileno", NULL, MTX_DEF); pi->pi_unrhdr = new_unrhdr(3, INT_MAX / NO_PID, >pi_mutex); } @@ -64,7 +63,6 @@ void pfs_fileno_uninit(struct pfs_info *pi) { - mtx_assert(, MA_OWNED); delete_unrhdr(pi->pi_unrhdr); pi->pi_unrhdr = NULL; mtx_destroy(>pi_mutex); Modified: head/sys/fs/pseudofs/pseudofs_vncache.c == --- head/sys/fs/pseudofs/pseudofs_vncache.c Wed Aug 3 08:53:29 2016 (r303704) +++ head/sys/fs/pseudofs/pseudofs_vncache.c Wed Aug 3 08:57:15 2016 (r303705) @@ -84,7 +84,6 @@ void pfs_vncache_load(void) { - mtx_assert(, MA_OWNED); mtx_init(_vncache_mutex, "pfs_vncache", NULL, MTX_DEF); pfs_exit_tag = EVENTHANDLER_REGISTER(process_exit, pfs_exit, NULL, EVENTHANDLER_PRI_ANY); @@ -97,7 +96,6 @@ void pfs_vncache_unload(void) { - mtx_assert(, MA_OWNED); EVENTHANDLER_DEREGISTER(process_exit, pfs_exit_tag); KASSERT(pfs_vncache_entries == 0, ("%d vncache entries remaining", pfs_vncache_entries)); ___ 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: r303704 - head/sys/fs/pseudofs
Author: kib Date: Wed Aug 3 08:53:29 2016 New Revision: 303704 URL: https://svnweb.freebsd.org/changeset/base/303704 Log: Some style changes. Fix a typo in comment. Approved by: des (pseudofs maintainer) Sponsored by: The FreeBSD Foundation MFC after:1 week Modified: head/sys/fs/pseudofs/pseudofs.c head/sys/fs/pseudofs/pseudofs.h Modified: head/sys/fs/pseudofs/pseudofs.c == --- head/sys/fs/pseudofs/pseudofs.c Wed Aug 3 07:11:19 2016 (r303703) +++ head/sys/fs/pseudofs/pseudofs.c Wed Aug 3 08:53:29 2016 (r303704) @@ -387,7 +387,7 @@ pfs_init(struct pfs_info *pi, struct vfs pfs_fileno_init(pi); - /* set up the root diretory */ + /* set up the root directory */ root = pfs_alloc_node(pi, "/", pfstype_root); pi->pi_root = root; pfs_fileno_alloc(root); Modified: head/sys/fs/pseudofs/pseudofs.h == --- head/sys/fs/pseudofs/pseudofs.h Wed Aug 3 07:11:19 2016 (r303703) +++ head/sys/fs/pseudofs/pseudofs.h Wed Aug 3 08:53:29 2016 (r303704) @@ -198,7 +198,7 @@ struct pfs_info { pfs_init_t pi_init; pfs_init_t pi_uninit; - /* members below this line are initialized at run time*/ + /* members below this line are initialized at run time */ struct pfs_node *pi_root; struct mtx pi_mutex; struct unrhdr *pi_unrhdr; @@ -285,17 +285,17 @@ static int \ _##name##_mount(struct mount *mp) {\ if (jflag && !prison_allow(curthread->td_ucred, jflag)) \ return (EPERM); \ - return pfs_mount(##_info, mp); \ + return (pfs_mount(##_info, mp)); \ } \ \ static int \ _##name##_init(struct vfsconf *vfc) { \ - return pfs_init(##_info, vfc); \ + return (pfs_init(##_info, vfc)); \ } \ \ static int \ _##name##_uninit(struct vfsconf *vfc) { \ - return pfs_uninit(##_info, vfc); \ + return (pfs_uninit(##_info, vfc)); \ } \ \ static struct vfsops name##_vfsops = { \ ___ 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: r303703 - head/sys/vm
Author: kib Date: Wed Aug 3 07:11:19 2016 New Revision: 303703 URL: https://svnweb.freebsd.org/changeset/base/303703 Log: Explain why swapgeom_close_ev() is delegated. Sponsored by: The FreeBSD Foundation MFC after:1 week Modified: head/sys/vm/swap_pager.c Modified: head/sys/vm/swap_pager.c == --- head/sys/vm/swap_pager.cWed Aug 3 07:10:09 2016(r303702) +++ head/sys/vm/swap_pager.cWed Aug 3 07:11:19 2016(r303703) @@ -2431,8 +2431,9 @@ swapgeom_acquire(struct g_consumer *cp) } /* - * Remove a reference from the g_consumer. Post a close event if - * all references go away. + * Remove a reference from the g_consumer. Post a close event if all + * references go away, since the function might be called from the + * biodone context. */ static void swapgeom_release(struct g_consumer *cp, struct swdevt *sp) @@ -2555,7 +2556,12 @@ swapgeom_close(struct thread *td, struct cp = sw->sw_id; sw->sw_id = NULL; mtx_unlock(_dev_mtx); - /* XXX: direct call when Giant untangled */ + + /* +* swapgeom_close() may be called from the biodone context, +* where we cannot perform topology changes. Delegate the +* work to the events thread. +*/ if (cp != NULL) g_waitfor_event(swapgeom_close_ev, cp, M_WAITOK, NULL); } ___ 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: r303702 - head/sys/kern
Author: kib Date: Wed Aug 3 07:10:09 2016 New Revision: 303702 URL: https://svnweb.freebsd.org/changeset/base/303702 Log: Remove mention of the Giant from the fork_return() description. Making emphasis on this lock in the core function comment is confusing for the modern kernel. Sponsored by: The FreeBSD Foundation MFC after:3 days Modified: head/sys/kern/kern_fork.c Modified: head/sys/kern/kern_fork.c == --- head/sys/kern/kern_fork.c Wed Aug 3 06:36:45 2016(r303701) +++ head/sys/kern/kern_fork.c Wed Aug 3 07:10:09 2016(r303702) @@ -1055,9 +1055,9 @@ fork_exit(void (*callout)(void *, struct /* * Simplified back end of syscall(), used when returning from fork() - * directly into user mode. Giant is not held on entry, and must not - * be held on return. This function is passed in to fork_exit() as the - * first parameter and is called when returning to a new userland process. + * directly into user mode. This function is passed in to fork_exit() + * as the first parameter and is called when returning to a new + * userland process. */ void fork_return(struct thread *td, struct trapframe *frame) ___ 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: r303700 - head/sys/kern
Author: ed Date: Wed Aug 3 06:35:58 2016 New Revision: 303700 URL: https://svnweb.freebsd.org/changeset/base/303700 Log: Re-add traling slash that was removed in r303699. I must have accidentally pressed some random key in vim. Modified: head/sys/kern/syscalls.master Modified: head/sys/kern/syscalls.master == --- head/sys/kern/syscalls.master Wed Aug 3 06:33:04 2016 (r303699) +++ head/sys/kern/syscalls.master Wed Aug 3 06:35:58 2016 (r303700) @@ -175,7 +175,7 @@ 72 AUE_O_VADVISE STD { int ovadvise(int anom); } vadvise \ ovadvise_args int 73 AUE_MUNMAP STD { int munmap(void *addr, size_t len); } -74 AUE_MPROTECTSTD { int mprotect(void *addr, size_t len, +74 AUE_MPROTECTSTD { int mprotect(void *addr, size_t len, \ int prot); } 75 AUE_MADVISE STD { int madvise(void *addr, size_t len, \ int behav); } ___ 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: r303701 - in head/sys: compat/freebsd32 kern sys
Author: ed Date: Wed Aug 3 06:36:45 2016 New Revision: 303701 URL: https://svnweb.freebsd.org/changeset/base/303701 Log: Regenerate system call tables for r303699 and r303700. Modified: head/sys/compat/freebsd32/freebsd32_proto.h head/sys/compat/freebsd32/freebsd32_syscall.h head/sys/compat/freebsd32/freebsd32_syscalls.c head/sys/compat/freebsd32/freebsd32_sysent.c head/sys/compat/freebsd32/freebsd32_systrace_args.c head/sys/kern/init_sysent.c head/sys/kern/syscalls.c head/sys/kern/systrace_args.c head/sys/sys/syscall.h head/sys/sys/syscall.mk head/sys/sys/sysproto.h Modified: head/sys/compat/freebsd32/freebsd32_proto.h == --- head/sys/compat/freebsd32/freebsd32_proto.h Wed Aug 3 06:35:58 2016 (r303700) +++ head/sys/compat/freebsd32/freebsd32_proto.h Wed Aug 3 06:36:45 2016 (r303701) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 302094 2016-06-22 21:15:59Z brooks + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 303699 2016-08-03 06:33:04Z ed */ #ifndef _FREEBSD32_SYSPROTO_H_ @@ -82,7 +82,7 @@ struct freebsd32_execve_args { char envv_l_[PADL_(uint32_t *)]; uint32_t * envv; char envv_r_[PADR_(uint32_t *)]; }; struct freebsd32_mprotect_args { - char addr_l_[PADL_(const void *)]; const void * addr; char addr_r_[PADR_(const void *)]; + char addr_l_[PADL_(void *)]; void * addr; char addr_r_[PADR_(void *)]; char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_t)]; char prot_l_[PADL_(int)]; int prot; char prot_r_[PADR_(int)]; }; Modified: head/sys/compat/freebsd32/freebsd32_syscall.h == --- head/sys/compat/freebsd32/freebsd32_syscall.h Wed Aug 3 06:35:58 2016(r303700) +++ head/sys/compat/freebsd32/freebsd32_syscall.h Wed Aug 3 06:36:45 2016(r303701) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 302094 2016-06-22 21:15:59Z brooks + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 303699 2016-08-03 06:33:04Z ed */ #defineFREEBSD32_SYS_syscall 0 Modified: head/sys/compat/freebsd32/freebsd32_syscalls.c == --- head/sys/compat/freebsd32/freebsd32_syscalls.c Wed Aug 3 06:35:58 2016(r303700) +++ head/sys/compat/freebsd32/freebsd32_syscalls.c Wed Aug 3 06:36:45 2016(r303701) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 302094 2016-06-22 21:15:59Z brooks + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 303699 2016-08-03 06:33:04Z ed */ const char *freebsd32_syscallnames[] = { Modified: head/sys/compat/freebsd32/freebsd32_sysent.c == --- head/sys/compat/freebsd32/freebsd32_sysent.cWed Aug 3 06:35:58 2016(r303700) +++ head/sys/compat/freebsd32/freebsd32_sysent.cWed Aug 3 06:36:45 2016(r303701) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 302094 2016-06-22 21:15:59Z brooks + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 303699 2016-08-03 06:33:04Z ed */ #include "opt_compat.h" Modified: head/sys/compat/freebsd32/freebsd32_systrace_args.c == --- head/sys/compat/freebsd32/freebsd32_systrace_args.c Wed Aug 3 06:35:58 2016(r303700) +++ head/sys/compat/freebsd32/freebsd32_systrace_args.c Wed Aug 3 06:36:45 2016(r303701) @@ -462,7 +462,7 @@ systrace_args(int sysnum, void *params, /* freebsd32_mprotect */ case 74: { struct freebsd32_mprotect_args *p = params; - uarg[0] = (intptr_t) p->addr; /* const void * */ + uarg[0] = (intptr_t) p->addr; /* void * */ uarg[1] = p->len; /* size_t */ iarg[2] = p->prot; /* int */ *n_args = 3; @@ -4020,7 +4020,7 @@ systrace_entry_setargdesc(int sysnum, in case 74: switch(ndx) { case 0: - p = "const void *"; + p = "void *"; break; case 1: p = "size_t"; Modified: head/sys/kern/init_sysent.c == --- head/sys/kern/init_sysent.c Wed
svn commit: r303699 - in head: lib/libc/sys sys/compat/freebsd32 sys/kern sys/sys
Author: ed Date: Wed Aug 3 06:33:04 2016 New Revision: 303699 URL: https://svnweb.freebsd.org/changeset/base/303699 Log: mprotect(): Change prototype to comply to POSIX. Our mprotect() function seems to take a "const void *" address to the pages whose permissions need to be adjusted. POSIX uses "void *". Simply stick to the POSIX one to prevent us from writing unportable code. PR: 211423 (exp-run) Tested by:antoine@ (Thanks!) Modified: head/lib/libc/sys/mprotect.2 head/sys/compat/freebsd32/syscalls.master head/sys/kern/syscalls.master head/sys/sys/mman.h Modified: head/lib/libc/sys/mprotect.2 == --- head/lib/libc/sys/mprotect.2Wed Aug 3 06:32:44 2016 (r303698) +++ head/lib/libc/sys/mprotect.2Wed Aug 3 06:33:04 2016 (r303699) @@ -28,7 +28,7 @@ .\"@(#)mprotect.2 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd June 9, 1993 +.Dd August 3, 2016 .Dt MPROTECT 2 .Os .Sh NAME @@ -39,7 +39,7 @@ .Sh SYNOPSIS .In sys/mman.h .Ft int -.Fn mprotect "const void *addr" "size_t len" "int prot" +.Fn mprotect "void *addr" "size_t len" "int prot" .Sh DESCRIPTION The .Fn mprotect Modified: head/sys/compat/freebsd32/syscalls.master == --- head/sys/compat/freebsd32/syscalls.master Wed Aug 3 06:32:44 2016 (r303698) +++ head/sys/compat/freebsd32/syscalls.master Wed Aug 3 06:33:04 2016 (r303699) @@ -174,7 +174,7 @@ 72 AUE_O_VADVISE NOPROTO { int ovadvise(int anom); } vadvise \ ovadvise_args int 73 AUE_MUNMAP NOPROTO { int munmap(void *addr, size_t len); } -74 AUE_MPROTECTSTD { int freebsd32_mprotect(const void *addr, \ +74 AUE_MPROTECTSTD { int freebsd32_mprotect(void *addr, \ size_t len, int prot); } 75 AUE_MADVISE NOPROTO { int madvise(void *addr, size_t len, \ int behav); } Modified: head/sys/kern/syscalls.master == --- head/sys/kern/syscalls.master Wed Aug 3 06:32:44 2016 (r303698) +++ head/sys/kern/syscalls.master Wed Aug 3 06:33:04 2016 (r303699) @@ -175,7 +175,7 @@ 72 AUE_O_VADVISE STD { int ovadvise(int anom); } vadvise \ ovadvise_args int 73 AUE_MUNMAP STD { int munmap(void *addr, size_t len); } -74 AUE_MPROTECTSTD { int mprotect(const void *addr, size_t len, \ +74 AUE_MPROTECTSTD { int mprotect(void *addr, size_t len, int prot); } 75 AUE_MADVISE STD { int madvise(void *addr, size_t len, \ int behav); } Modified: head/sys/sys/mman.h == --- head/sys/sys/mman.h Wed Aug 3 06:32:44 2016(r303698) +++ head/sys/sys/mman.h Wed Aug 3 06:33:04 2016(r303699) @@ -258,7 +258,7 @@ int mlock(const void *, size_t); #define_MMAP_DECLARED void * mmap(void *, size_t, int, int, int, off_t); #endif -intmprotect(const void *, size_t, int); +intmprotect(void *, size_t, int); intmsync(void *, size_t, int); intmunlock(const void *, size_t); intmunmap(void *, size_t); ___ 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: r303698 - in stable/11/sys: netinet netinet6
Author: karels Date: Wed Aug 3 06:32:44 2016 New Revision: 303698 URL: https://svnweb.freebsd.org/changeset/base/303698 Log: MFC r303171: Fix per-connection L2 caching in fast path r301217 re-added per-connection L2 caching from a previous change, but it omitted caching in the fast path. Add it. Reviewed By: gallatin Approved by: gnn (mentor) Approved by: re (kostikbel) Differential Revision: https://reviews.freebsd.org/D7239 Modified: stable/11/sys/netinet/if_ether.c stable/11/sys/netinet6/nd6.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netinet/if_ether.c == --- stable/11/sys/netinet/if_ether.cWed Aug 3 03:49:42 2016 (r303697) +++ stable/11/sys/netinet/if_ether.cWed Aug 3 06:32:44 2016 (r303698) @@ -607,7 +607,7 @@ arpresolve(struct ifnet *ifp, int is_gw, } IF_AFDATA_RLOCK(ifp); - la = lla_lookup(LLTABLE(ifp), LLE_UNLOCKED, dst); + la = lla_lookup(LLTABLE(ifp), plle ? LLE_EXCLUSIVE : LLE_UNLOCKED, dst); if (la != NULL && (la->r_flags & RLLE_VALID) != 0) { /* Entry found, let's copy lle info */ bcopy(la->r_linkdata, desten, la->r_hdrlen); @@ -619,9 +619,16 @@ arpresolve(struct ifnet *ifp, int is_gw, la->r_skip_req = 0; /* Notify that entry was used */ LLE_REQ_UNLOCK(la); } + if (plle) { + LLE_ADDREF(la); + *plle = la; + LLE_WUNLOCK(la); + } IF_AFDATA_RUNLOCK(ifp); return (0); } + if (plle && la) + LLE_WUNLOCK(la); IF_AFDATA_RUNLOCK(ifp); return (arpresolve_full(ifp, is_gw, la == NULL ? LLE_CREATE : 0, m, dst, Modified: stable/11/sys/netinet6/nd6.c == --- stable/11/sys/netinet6/nd6.cWed Aug 3 03:49:42 2016 (r303697) +++ stable/11/sys/netinet6/nd6.cWed Aug 3 06:32:44 2016 (r303698) @@ -,7 +,8 @@ nd6_resolve(struct ifnet *ifp, int is_gw } IF_AFDATA_RLOCK(ifp); - ln = nd6_lookup(>sin6_addr, LLE_UNLOCKED, ifp); + ln = nd6_lookup(>sin6_addr, plle ? LLE_EXCLUSIVE : LLE_UNLOCKED, + ifp); if (ln != NULL && (ln->r_flags & RLLE_VALID) != 0) { /* Entry found, let's copy lle info */ bcopy(ln->r_linkdata, desten, ln->r_hdrlen); @@ -2235,9 +2236,15 @@ nd6_resolve(struct ifnet *ifp, int is_gw ln->lle_hittime = time_uptime; LLE_REQ_UNLOCK(ln); } + if (plle) { + LLE_ADDREF(ln); + *plle = ln; + LLE_WUNLOCK(ln); + } IF_AFDATA_RUNLOCK(ifp); return (0); - } + } else if (plle && ln) + LLE_WUNLOCK(ln); IF_AFDATA_RUNLOCK(ifp); return (nd6_resolve_slow(ifp, 0, m, dst6, desten, pflags, plle)); ___ 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"