svn commit: r343697 - head/sys/net80211
Author: avos Date: Sun Feb 3 02:32:13 2019 New Revision: 343697 URL: https://svnweb.freebsd.org/changeset/base/343697 Log: net80211(4): fix rate check when 'roaming' ifconfig(8) option is set to 'auto' Do not try to clear 'basic rate' bit from roamRate; it cannot be here and, actually, this operation clears 'MCS rate' bit instead, breaking comparison for 11n / 11ac modes. Tested with RTL8188CUS, HOSTAP mode + RTL8821AU, STA mode. MFC after:3 days Modified: head/sys/net80211/ieee80211_scan_sta.c Modified: head/sys/net80211/ieee80211_scan_sta.c == --- head/sys/net80211/ieee80211_scan_sta.c Sun Feb 3 01:32:02 2019 (r343696) +++ head/sys/net80211/ieee80211_scan_sta.c Sun Feb 3 02:32:13 2019 (r343697) @@ -1362,7 +1362,6 @@ sta_roam_check(struct ieee80211_scan_state *ss, struct curRssi = ic->ic_node_getrssi(ni); if (ucastRate == IEEE80211_FIXED_RATE_NONE) { curRate = ni->ni_txrate; - roamRate &= IEEE80211_RATE_VAL; IEEE80211_DPRINTF(vap, IEEE80211_MSG_ROAM, "%s: currssi %d currate %u roamrssi %d roamrate %u\n", __func__, curRssi, curRate, roamRssi, roamRate); ___ 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: r343698 - head/sbin/ifconfig
Author: avos Date: Sun Feb 3 03:02:59 2019 New Revision: 343698 URL: https://svnweb.freebsd.org/changeset/base/343698 Log: ifconfig(8): display management / multicast wlan(4) rates properly For 11n / 11ac we are still using non-11n rates for management and multicast traffic by default; check 'MCS rate' bit to determine how to print them correctly. PR: 161035 MFC after:1 week Modified: head/sbin/ifconfig/ifieee80211.c Modified: head/sbin/ifconfig/ifieee80211.c == --- head/sbin/ifconfig/ifieee80211.cSun Feb 3 02:32:13 2019 (r343697) +++ head/sbin/ifconfig/ifieee80211.cSun Feb 3 03:02:59 2019 (r343698) @@ -4324,6 +4324,13 @@ list_roam(int s) } } +/* XXX TODO: rate-to-string method... */ +static const char* +get_mcs_mbs_rate_str(uint8_t rate) +{ + return (rate & IEEE80211_RATE_MCS) ? "MCS " : "Mb/s"; +} + static void list_txparams(int s) { @@ -4340,19 +4347,23 @@ list_txparams(int s) mode == IEEE80211_MODE_VHT_2GHZ || mode == IEEE80211_MODE_VHT_5GHZ) { if (tp->ucastrate == IEEE80211_FIXED_RATE_NONE) - LINE_CHECK("%-7.7s ucast NONEmgmt %2u MCS " - "mcast %2u MCS maxretry %u", + LINE_CHECK("%-7.7s ucast NONEmgmt %2u %s " + "mcast %2u %s maxretry %u", modename[mode], tp->mgmtrate &~ IEEE80211_RATE_MCS, + get_mcs_mbs_rate_str(tp->mgmtrate), tp->mcastrate &~ IEEE80211_RATE_MCS, + get_mcs_mbs_rate_str(tp->mcastrate), tp->maxretry); else - LINE_CHECK("%-7.7s ucast %2u MCS mgmt %2u MCS " - "mcast %2u MCS maxretry %u", + LINE_CHECK("%-7.7s ucast %2u MCS mgmt %2u %s " + "mcast %2u %s maxretry %u", modename[mode], tp->ucastrate &~ IEEE80211_RATE_MCS, tp->mgmtrate &~ IEEE80211_RATE_MCS, + get_mcs_mbs_rate_str(tp->mgmtrate), tp->mcastrate &~ IEEE80211_RATE_MCS, + get_mcs_mbs_rate_str(tp->mcastrate), tp->maxretry); } else { if (tp->ucastrate == IEEE80211_FIXED_RATE_NONE) ___ 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: r343696 - head/sys/net80211
Author: avos Date: Sun Feb 3 01:32:02 2019 New Revision: 343696 URL: https://svnweb.freebsd.org/changeset/base/343696 Log: net80211(4): do not setup roaming parameters for unsupported modes. ifconfig(8) prints per-mode parameters if they are non-zero; since we have 13 possible modes with 3...5 typically supported this change should greatly reduce amount of information for 'ifconfig list roam' command. While here ensure that sta_roam_check() will not use roaming parameters for unsupported modes (it should not). This change effectively reverts r188776. MFC after:2 weeks Modified: head/sys/net80211/ieee80211_scan.c head/sys/net80211/ieee80211_scan_sta.c Modified: head/sys/net80211/ieee80211_scan.c == --- head/sys/net80211/ieee80211_scan.c Sun Feb 3 00:45:52 2019 (r343695) +++ head/sys/net80211/ieee80211_scan.c Sun Feb 3 01:32:02 2019 (r343696) @@ -130,13 +130,21 @@ void ieee80211_scan_vattach(struct ieee80211vap *vap) { struct ieee80211com *ic = vap->iv_ic; + int m; vap->iv_bgscanidle = (IEEE80211_BGSCAN_IDLE_DEFAULT*1000)/hz; vap->iv_bgscanintvl = IEEE80211_BGSCAN_INTVAL_DEFAULT*hz; vap->iv_scanvalid = IEEE80211_SCAN_VALID_DEFAULT*hz; vap->iv_roaming = IEEE80211_ROAMING_AUTO; - memcpy(vap->iv_roamparms, defroam, sizeof(defroam)); + + memset(vap->iv_roamparms, 0, sizeof(vap->iv_roamparms)); + for (m = IEEE80211_MODE_AUTO + 1; m < IEEE80211_MODE_MAX; m++) { + if (isclr(ic->ic_modecaps, m)) + continue; + + memcpy(>iv_roamparms[m], [m], sizeof(defroam[m])); + } ic->ic_scan_methods->sc_vattach(vap); } Modified: head/sys/net80211/ieee80211_scan_sta.c == --- head/sys/net80211/ieee80211_scan_sta.c Sun Feb 3 00:45:52 2019 (r343695) +++ head/sys/net80211/ieee80211_scan_sta.c Sun Feb 3 01:32:02 2019 (r343696) @@ -1354,6 +1354,9 @@ sta_roam_check(struct ieee80211_scan_state *ss, struct mode = ieee80211_chan2mode(ic->ic_bsschan); roamRate = vap->iv_roamparms[mode].rate; roamRssi = vap->iv_roamparms[mode].rssi; + KASSERT(roamRate != 0 && roamRssi != 0, ("iv_roamparms are not" + "initialized for %s mode!", ieee80211_phymode_name[mode])); + ucastRate = vap->iv_txparms[mode].ucastrate; /* NB: the most up to date rssi is in the node, not the scan cache */ curRssi = ic->ic_node_getrssi(ni); ___ 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: r343695 - stable/11/sys/sys
Author: kib Date: Sun Feb 3 00:45:52 2019 New Revision: 343695 URL: https://svnweb.freebsd.org/changeset/base/343695 Log: MFC r343607: Reserve a bit in the FreeBSD feature control note for marking the image as not compatible with ASLR. Modified: stable/11/sys/sys/elf_common.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/sys/elf_common.h == --- stable/11/sys/sys/elf_common.h Sun Feb 3 00:44:26 2019 (r343694) +++ stable/11/sys/sys/elf_common.h Sun Feb 3 00:45:52 2019 (r343695) @@ -744,6 +744,9 @@ typedef struct { #defineNT_FREEBSD_ARCH_TAG 3 #defineNT_FREEBSD_FEATURE_CTL 4 +/* NT_FREEBSD_FEATURE_CTL desc[0] bits */ +#defineNT_FREEBSD_FCTL_ASLR_DISABLE0x0001 + /* Values for n_type. Used in core files. */ #defineNT_PRSTATUS 1 /* Process status. */ #defineNT_FPREGSET 2 /* Floating point registers. */ ___ 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: r343694 - stable/11/libexec/rtld-elf
Author: kib Date: Sun Feb 3 00:44:26 2019 New Revision: 343694 URL: https://svnweb.freebsd.org/changeset/base/343694 Log: MFC r343484: Remove now redundand ifunc relocation code which should have been removed as part of r341441. Modified: stable/11/libexec/rtld-elf/rtld.c Directory Properties: stable/11/ (props changed) Modified: stable/11/libexec/rtld-elf/rtld.c == --- stable/11/libexec/rtld-elf/rtld.c Sun Feb 3 00:41:14 2019 (r343693) +++ stable/11/libexec/rtld-elf/rtld.c Sun Feb 3 00:44:26 2019 (r343694) @@ -2877,16 +2877,6 @@ relocate_object(Obj_Entry *obj, bool bind_now, Obj_Ent lockstate) == -1) return (-1); - /* -* Process the non-PLT IFUNC relocations. The relocations are -* processed in two phases, because IFUNC resolvers may -* reference other symbols, which must be readily processed -* before resolvers are called. -*/ - if (obj->non_plt_gnu_ifunc && - reloc_non_plt(obj, rtldobj, flags | SYMLOOK_IFUNC, lockstate)) - return (-1); - if (!obj->mainprog && obj_enforce_relro(obj) == -1) return (-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: r343693 - stable/12/sys/sys
Author: kib Date: Sun Feb 3 00:41:14 2019 New Revision: 343693 URL: https://svnweb.freebsd.org/changeset/base/343693 Log: MFC r343607: Reserve a bit in the FreeBSD feature control note for marking the image as not compatible with ASLR. Modified: stable/12/sys/sys/elf_common.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/sys/elf_common.h == --- stable/12/sys/sys/elf_common.h Sun Feb 3 00:39:35 2019 (r343692) +++ stable/12/sys/sys/elf_common.h Sun Feb 3 00:41:14 2019 (r343693) @@ -761,6 +761,9 @@ typedef struct { #defineNT_FREEBSD_ARCH_TAG 3 #defineNT_FREEBSD_FEATURE_CTL 4 +/* NT_FREEBSD_FEATURE_CTL desc[0] bits */ +#defineNT_FREEBSD_FCTL_ASLR_DISABLE0x0001 + /* Values for n_type. Used in core files. */ #defineNT_PRSTATUS 1 /* Process status. */ #defineNT_FPREGSET 2 /* Floating point registers. */ ___ 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: r343692 - stable/12/libexec/rtld-elf
Author: kib Date: Sun Feb 3 00:39:35 2019 New Revision: 343692 URL: https://svnweb.freebsd.org/changeset/base/343692 Log: MFC r343484: Remove now redundand ifunc relocation code which should have been removed as part of r341441. Modified: stable/12/libexec/rtld-elf/rtld.c Directory Properties: stable/12/ (props changed) Modified: stable/12/libexec/rtld-elf/rtld.c == --- stable/12/libexec/rtld-elf/rtld.c Sun Feb 3 00:36:12 2019 (r343691) +++ stable/12/libexec/rtld-elf/rtld.c Sun Feb 3 00:39:35 2019 (r343692) @@ -2871,16 +2871,6 @@ relocate_object(Obj_Entry *obj, bool bind_now, Obj_Ent lockstate) == -1) return (-1); - /* -* Process the non-PLT IFUNC relocations. The relocations are -* processed in two phases, because IFUNC resolvers may -* reference other symbols, which must be readily processed -* before resolvers are called. -*/ - if (obj->non_plt_gnu_ifunc && - reloc_non_plt(obj, rtldobj, flags | SYMLOOK_IFUNC, lockstate)) - return (-1); - if (!obj->mainprog && obj_enforce_relro(obj) == -1) return (-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: r343691 - in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet 12/sys/contrib/ipfilter/netinet
Author: cy Date: Sun Feb 3 00:36:12 2019 New Revision: 343691 URL: https://svnweb.freebsd.org/changeset/base/343691 Log: MFC r343600: Document the instance context pointer. Modified: stable/11/sys/contrib/ipfilter/netinet/fil.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/10/sys/contrib/ipfilter/netinet/fil.c stable/12/sys/contrib/ipfilter/netinet/fil.c Directory Properties: stable/10/ (props changed) stable/12/ (props changed) Modified: stable/11/sys/contrib/ipfilter/netinet/fil.c == --- stable/11/sys/contrib/ipfilter/netinet/fil.cSun Feb 3 00:18:29 2019(r343690) +++ stable/11/sys/contrib/ipfilter/netinet/fil.cSun Feb 3 00:36:12 2019(r343691) @@ -2815,7 +2815,8 @@ ipf_firewall(fin, passp) /*-2 == requires authentication */ /* Kernel: */ /* > 0 == filter error # for packet */ -/* Parameters: ip(I) - pointer to start of IPv4/6 packet */ +/* Parameters: ctx(I) - pointer to the instance context*/ +/* ip(I) - pointer to start of IPv4/6 packet */ /* hlen(I) - length of header */ /* ifp(I) - pointer to interface this packet is on */ /* out(I) - 0 == packet going in, 1 == packet going out*/ ___ 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: r343691 - in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet 12/sys/contrib/ipfilter/netinet
Author: cy Date: Sun Feb 3 00:36:12 2019 New Revision: 343691 URL: https://svnweb.freebsd.org/changeset/base/343691 Log: MFC r343600: Document the instance context pointer. Modified: stable/10/sys/contrib/ipfilter/netinet/fil.c Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/contrib/ipfilter/netinet/fil.c stable/12/sys/contrib/ipfilter/netinet/fil.c Directory Properties: stable/11/ (props changed) stable/12/ (props changed) Modified: stable/10/sys/contrib/ipfilter/netinet/fil.c == --- stable/10/sys/contrib/ipfilter/netinet/fil.cSun Feb 3 00:18:29 2019(r343690) +++ stable/10/sys/contrib/ipfilter/netinet/fil.cSun Feb 3 00:36:12 2019(r343691) @@ -2781,7 +2781,8 @@ ipf_firewall(fin, passp) /*-2 == requires authentication */ /* Kernel: */ /* > 0 == filter error # for packet */ -/* Parameters: ip(I) - pointer to start of IPv4/6 packet */ +/* Parameters: ctx(I) - pointer to the instance context*/ +/* ip(I) - pointer to start of IPv4/6 packet */ /* hlen(I) - length of header */ /* ifp(I) - pointer to interface this packet is on */ /* out(I) - 0 == packet going in, 1 == packet going out*/ ___ 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: r343691 - in stable: 10/sys/contrib/ipfilter/netinet 11/sys/contrib/ipfilter/netinet 12/sys/contrib/ipfilter/netinet
Author: cy Date: Sun Feb 3 00:36:12 2019 New Revision: 343691 URL: https://svnweb.freebsd.org/changeset/base/343691 Log: MFC r343600: Document the instance context pointer. Modified: stable/12/sys/contrib/ipfilter/netinet/fil.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/10/sys/contrib/ipfilter/netinet/fil.c stable/11/sys/contrib/ipfilter/netinet/fil.c Directory Properties: stable/10/ (props changed) stable/11/ (props changed) Modified: stable/12/sys/contrib/ipfilter/netinet/fil.c == --- stable/12/sys/contrib/ipfilter/netinet/fil.cSun Feb 3 00:18:29 2019(r343690) +++ stable/12/sys/contrib/ipfilter/netinet/fil.cSun Feb 3 00:36:12 2019(r343691) @@ -2815,7 +2815,8 @@ ipf_firewall(fin, passp) /*-2 == requires authentication */ /* Kernel: */ /* > 0 == filter error # for packet */ -/* Parameters: ip(I) - pointer to start of IPv4/6 packet */ +/* Parameters: ctx(I) - pointer to the instance context*/ +/* ip(I) - pointer to start of IPv4/6 packet */ /* hlen(I) - length of header */ /* ifp(I) - pointer to interface this packet is on */ /* out(I) - 0 == packet going in, 1 == packet going out*/ ___ 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: r343688 - head/sys/dev/vmware/vmxnet3
On Sat, Feb 2, 2019 at 7:27 PM Enji Cooper wrote: > Hi Patrick, > > On Feb 2, 2019, at 13:14, Patrick Kelsey wrote: > > Author: pkelsey > Date: Sat Feb 2 21:14:53 2019 > New Revision: 343688 > URL: https://svnweb.freebsd.org/changeset/base/343688 > > Log: > Fix interrupt index configuratoin when using MSI interrupts. > > When in MSI mode, the device was only being configured with one > interrupt index, but it needs two - one for the actual interrupt and > one to park the tx queue at. > > Also clarified comments relating to interrupt index assignment. > > Reported by:Yuri Pankov > MFC after:1 day > > > Does this change partly fix > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203874 ? > No, this fixes the behavior of the iflib version of the vmx(4) driver when that bug causes its interrupt configuration code to fall into the MSI path (because MSI-X has been blacklisted). -Patrick ___ 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: r343688 - head/sys/dev/vmware/vmxnet3
Hi Patrick, > On Feb 2, 2019, at 13:14, Patrick Kelsey wrote: > > Author: pkelsey > Date: Sat Feb 2 21:14:53 2019 > New Revision: 343688 > URL: https://svnweb.freebsd.org/changeset/base/343688 > > Log: > Fix interrupt index configuratoin when using MSI interrupts. > > When in MSI mode, the device was only being configured with one > interrupt index, but it needs two - one for the actual interrupt and > one to park the tx queue at. > > Also clarified comments relating to interrupt index assignment. > > Reported by:Yuri Pankov > MFC after:1 day Does this change partly fix https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203874 ? -Enji ___ 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: r343690 - head/sbin/ifconfig
Author: avos Date: Sun Feb 3 00:18:29 2019 New Revision: 343690 URL: https://svnweb.freebsd.org/changeset/base/343690 Log: ifconfig(8): interpret VHT rates correctly for 'list roam / txparam' options They are represented via MCS rate index, not as a 'speed in MBps' * 2. MFC after:5 days Modified: head/sbin/ifconfig/ifieee80211.c Modified: head/sbin/ifconfig/ifieee80211.c == --- head/sbin/ifconfig/ifieee80211.cSat Feb 2 22:39:29 2019 (r343689) +++ head/sbin/ifconfig/ifieee80211.cSun Feb 3 00:18:29 2019 (r343690) @@ -4301,7 +4301,10 @@ list_roam(int s) rp = [mode]; if (rp->rssi == 0 && rp->rate == 0) continue; - if (mode == IEEE80211_MODE_11NA || mode == IEEE80211_MODE_11NG) { + if (mode == IEEE80211_MODE_11NA || + mode == IEEE80211_MODE_11NG || + mode == IEEE80211_MODE_VHT_2GHZ || + mode == IEEE80211_MODE_VHT_5GHZ) { if (rp->rssi & 1) LINE_CHECK("roam:%-7.7s rssi %2u.5dBm MCS %2u ", modename[mode], rp->rssi/2, @@ -4332,7 +4335,10 @@ list_txparams(int s) tp = [mode]; if (tp->mgmtrate == 0 && tp->mcastrate == 0) continue; - if (mode == IEEE80211_MODE_11NA || mode == IEEE80211_MODE_11NG) { + if (mode == IEEE80211_MODE_11NA || + mode == IEEE80211_MODE_11NG || + mode == IEEE80211_MODE_VHT_2GHZ || + mode == IEEE80211_MODE_VHT_5GHZ) { if (tp->ucastrate == IEEE80211_FIXED_RATE_NONE) LINE_CHECK("%-7.7s ucast NONEmgmt %2u MCS " "mcast %2u MCS maxretry %u", ___ 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: r343689 - in head/sys: dev/netmap net
Author: vmaffione Date: Sat Feb 2 22:39:29 2019 New Revision: 343689 URL: https://svnweb.freebsd.org/changeset/base/343689 Log: netmap: upgrade sync-kloop support Add SYNC_KLOOP_MODE option, and add support for direct mode, where application executes the TXSYNC and RXSYNC in the context of the ioeventfd wake up callback. MFC after:5 days Modified: head/sys/dev/netmap/netmap.c head/sys/dev/netmap/netmap_kern.h head/sys/dev/netmap/netmap_kloop.c head/sys/net/netmap.h Modified: head/sys/dev/netmap/netmap.c == --- head/sys/dev/netmap/netmap.cSat Feb 2 21:14:53 2019 (r343688) +++ head/sys/dev/netmap/netmap.cSat Feb 2 22:39:29 2019 (r343689) @@ -2971,6 +2971,9 @@ nmreq_opt_size_by_type(uint32_t nro_reqtype, uint64_t case NETMAP_REQ_OPT_CSB: rv = sizeof(struct nmreq_opt_csb); break; + case NETMAP_REQ_OPT_SYNC_KLOOP_MODE: + rv = sizeof(struct nmreq_opt_sync_kloop_mode); + break; } /* subtract the common header */ return rv - sizeof(struct nmreq_option); @@ -3287,10 +3290,8 @@ netmap_poll(struct netmap_priv_d *priv, int events, NM * there are pending packets to send. The latter can be disabled * passing NETMAP_NO_TX_POLL in the NIOCREG call. */ - si[NR_RX] = nm_si_user(priv, NR_RX) ? >si[NR_RX] : - >rx_rings[priv->np_qfirst[NR_RX]]->si; - si[NR_TX] = nm_si_user(priv, NR_TX) ? >si[NR_TX] : - >tx_rings[priv->np_qfirst[NR_TX]]->si; + si[NR_RX] = priv->np_si[NR_RX]; + si[NR_TX] = priv->np_si[NR_TX]; #ifdef __FreeBSD__ /* Modified: head/sys/dev/netmap/netmap_kern.h == --- head/sys/dev/netmap/netmap_kern.h Sat Feb 2 21:14:53 2019 (r343688) +++ head/sys/dev/netmap/netmap_kern.h Sat Feb 2 22:39:29 2019 (r343689) @@ -1169,6 +1169,15 @@ nm_kr_txempty(struct netmap_kring *kring) * rxsync_prologue */ #define nm_kr_rxempty(_k) nm_kr_txempty(_k) +/* True if the application needs to wait for more space on the ring + * (more received packets or more free tx slots). + * Only valid after *xsync_prologue. */ +static inline int +nm_kr_wouldblock(struct netmap_kring *kring) +{ + return kring->rcur == kring->nr_hwtail; +} + /* * protect against multiple threads using the same ring. * also check that the ring has not been stopped or locked Modified: head/sys/dev/netmap/netmap_kloop.c == --- head/sys/dev/netmap/netmap_kloop.c Sat Feb 2 21:14:53 2019 (r343688) +++ head/sys/dev/netmap/netmap_kloop.c Sat Feb 2 22:39:29 2019 (r343689) @@ -141,6 +141,9 @@ sync_kloop_kring_dump(const char *title, const struct kring->rcur, kring->rtail, kring->nr_hwtail); } +/* Arguments for netmap_sync_kloop_tx_ring() and + * netmap_sync_kloop_rx_ring(). + */ struct sync_kloop_ring_args { struct netmap_kring *kring; struct nm_csb_atok *csb_atok; @@ -148,6 +151,10 @@ struct sync_kloop_ring_args { #ifdef SYNC_KLOOP_POLL struct eventfd_ctx *irq_ctx; #endif /* SYNC_KLOOP_POLL */ + /* Are we busy waiting rather than using a schedule() loop ? */ + bool busy_wait; + /* Are we processing in the context of VM exit ? */ + bool direct; }; static void @@ -161,10 +168,16 @@ netmap_sync_kloop_tx_ring(const struct sync_kloop_ring uint32_t num_slots; int batch; + if (unlikely(nm_kr_tryget(kring, 1, NULL))) { + return; + } + num_slots = kring->nkr_num_slots; /* Disable application --> kernel notifications. */ - csb_ktoa_kick_enable(csb_ktoa, 0); + if (!a->direct) { + csb_ktoa_kick_enable(csb_ktoa, 0); + } /* Copy the application kring pointers from the CSB */ sync_kloop_kernel_read(csb_atok, _ring, num_slots); @@ -197,7 +210,9 @@ netmap_sync_kloop_tx_ring(const struct sync_kloop_ring if (unlikely(nm_txsync_prologue(kring, _ring) >= num_slots)) { /* Reinit ring and enable notifications. */ netmap_ring_reinit(kring); - csb_ktoa_kick_enable(csb_ktoa, 1); + if (!a->busy_wait) { + csb_ktoa_kick_enable(csb_ktoa, 1); + } break; } @@ -206,8 +221,10 @@ netmap_sync_kloop_tx_ring(const struct sync_kloop_ring } if (unlikely(kring->nm_sync(kring, shadow_ring.flags))) { - /* Reenable notifications. */ - csb_ktoa_kick_enable(csb_ktoa, 1); + if
Re: svn commit: r343291 - in head/sys: dev/vmware/vmxnet3 net
On Sat, Feb 2, 2019 at 3:29 PM Patrick Kelsey wrote: > > > On Sat, Feb 2, 2019 at 9:28 AM Yuri Pankov wrote: > >> Patrick Kelsey wrote: >> > Author: pkelsey >> > Date: Tue Jan 22 01:11:17 2019 >> > New Revision: 343291 >> > URL: https://svnweb.freebsd.org/changeset/base/343291 >> > >> > Log: >> > onvert vmx(4) to being an iflib driver. >> > >> > Also, expose IFLIB_MAX_RX_SEGS to iflib drivers and add >> > iflib_dma_alloc_align() to the iflib API. >> > >> > Performance is generally better with the tunable/sysctl >> > dev.vmx..iflib.tx_abdicate=1. >> > >> > Reviewed by:shurd >> > MFC after: 1 week >> > Relnotes: yes >> > Sponsored by: RG Nets >> > Differential Revision: https://reviews.freebsd.org/D18761 >> >> This breaks vmx interfaces for me in ESXi 6.7 (output below). The >> review mentions setting hw.pci.honor_msi_blacklist="0" and it helps >> indeed -- worth mentioning in UPDATING? >> >> vmx0: port 0x3000-0x300f mem >> 0xfe903000-0xfe903fff,0xfe902000-0xfe902fff,0xfe90-0xfe901fff at >> device 0.0 on pci3 >> vmx0: Using 512 tx descriptors and 256 rx descriptors >> vmx0: msix_init qsets capped at 8 >> vmx0: intr CPUs: 20 queue msgs: 24 admincnt: 1 >> vmx0: Using 8 rx queues 8 tx queues >> vmx0: attempting to allocate 9 MSI-X vectors (25 supported) >> vmx0: failed to allocate 9 MSI-X vectors, err: 6 - using MSI >> vmx0: attempting to allocate 1 MSI vectors (1 supported) >> msi: routing MSI IRQ 25 to local APIC 6 vector 48 >> vmx0: using IRQ 25 for MSI >> vmx0: Using an MSI interrupt >> msi: Assigning MSI IRQ 25 to local APIC 25 vector 48 >> msi: Assigning MSI IRQ 25 to local APIC 24 vector 48 >> vmx0: bpf attached >> vmx0: Ethernet address: 00:00:00:00:00:33 >> vmx0: netmap queues/slots: TX 1/512, RX 1/512 >> vmx0: device enable command failed! >> vmx0: link state changed to UP >> vmx0: device enable command failed! >> >> > Setting hw.pci.honor_msi_blacklist="0" should only be necessary if you > want to operate with more than one queue. If > hw.pci.honor_msi_blacklist="0" is not set, then MSI-X will not be > available, and MSI will be used, which reduces the number of queues that > can be configured for use to 1. This case should work correctly. > > I am able to reproduce the behavior you described above on ESXi 6.7 using > the latest snapshot release (based on r343598). The error that appears in > the ESXi logs will be similar to: > > 2019-02-02T15:14:02.986Z| vcpu-1| I125: VMXNET3 user: failed to activate > 'Ethernet0', status: 0xbad0001 > > which vaguely means 'the device did not like something about the > configuration it was given'. I will see if I can determine the root > cause. Given that enabling MSI-X seems to work around the problem, and > based on other issues I encountered during development, I currently suspect > there is a problem with the interrupt index that is being configured for > the transmit queue in the device configuration structure when using MSI. > > Indeed, the interrupt index for the tx queue in MSI mode was the problem. This is now fixed in r343688 ( https://svnweb.freebsd.org/changeset/base/343688). Thanks for reporting the issue! -Patrick ___ 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: r343688 - head/sys/dev/vmware/vmxnet3
Author: pkelsey Date: Sat Feb 2 21:14:53 2019 New Revision: 343688 URL: https://svnweb.freebsd.org/changeset/base/343688 Log: Fix interrupt index configuratoin when using MSI interrupts. When in MSI mode, the device was only being configured with one interrupt index, but it needs two - one for the actual interrupt and one to park the tx queue at. Also clarified comments relating to interrupt index assignment. Reported by: Yuri Pankov MFC after:1 day Modified: head/sys/dev/vmware/vmxnet3/if_vmx.c Modified: head/sys/dev/vmware/vmxnet3/if_vmx.c == --- head/sys/dev/vmware/vmxnet3/if_vmx.cSat Feb 2 17:42:17 2019 (r343687) +++ head/sys/dev/vmware/vmxnet3/if_vmx.cSat Feb 2 21:14:53 2019 (r343688) @@ -676,14 +676,16 @@ vmxnet3_set_interrupt_idx(struct vmxnet3_softc *sc) scctx = sc->vmx_scctx; /* -* There is either one interrupt, or there is one interrupt per -* receive queue. If there is one interrupt, then all interrupt -* indexes are zero. If there is one interrupt per receive queue, -* the transmit queue interrupt indexes are assigned the receive -* queue interrupt indexesin round-robin fashion. -* -* The event interrupt is always the last interrupt index. +* There is always one interrupt per receive queue, assigned +* starting with the first interrupt. When there is only one +* interrupt available, the event interrupt shares the receive queue +* interrupt, otherwise it uses the interrupt following the last +* receive queue interrupt. Transmit queues are not assigned +* interrupts, so they are given indexes beyond the indexes that +* correspond to the real interrupts. */ + + /* The event interrupt is always the last vector. */ sc->vmx_event_intr_idx = scctx->isc_vectors - 1; intr_idx = 0; @@ -1073,14 +1075,14 @@ vmxnet3_init_shared_data(struct vmxnet3_softc *sc) ds->automask = sc->vmx_intr_mask_mode == VMXNET3_IMM_AUTO; /* * Total number of interrupt indexes we are using in the shared -* config data, even though we don't actually allocate MSI-X +* config data, even though we don't actually allocate interrupt * resources for the tx queues. Some versions of the device will * fail to initialize successfully if interrupt indexes are used in * the shared config that exceed the number of interrupts configured * here. */ ds->nintr = (scctx->isc_vectors == 1) ? - 1 : (scctx->isc_nrxqsets + scctx->isc_ntxqsets + 1); + 2 : (scctx->isc_nrxqsets + scctx->isc_ntxqsets + 1); ds->evintr = sc->vmx_event_intr_idx; ds->ictrl = VMXNET3_ICTRL_DISABLE_ALL; ___ 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: r343291 - in head/sys: dev/vmware/vmxnet3 net
On Sat, Feb 2, 2019 at 9:28 AM Yuri Pankov wrote: > Patrick Kelsey wrote: > > Author: pkelsey > > Date: Tue Jan 22 01:11:17 2019 > > New Revision: 343291 > > URL: https://svnweb.freebsd.org/changeset/base/343291 > > > > Log: > > onvert vmx(4) to being an iflib driver. > > > > Also, expose IFLIB_MAX_RX_SEGS to iflib drivers and add > > iflib_dma_alloc_align() to the iflib API. > > > > Performance is generally better with the tunable/sysctl > > dev.vmx..iflib.tx_abdicate=1. > > > > Reviewed by:shurd > > MFC after: 1 week > > Relnotes: yes > > Sponsored by: RG Nets > > Differential Revision: https://reviews.freebsd.org/D18761 > > This breaks vmx interfaces for me in ESXi 6.7 (output below). The > review mentions setting hw.pci.honor_msi_blacklist="0" and it helps > indeed -- worth mentioning in UPDATING? > > vmx0: port 0x3000-0x300f mem > 0xfe903000-0xfe903fff,0xfe902000-0xfe902fff,0xfe90-0xfe901fff at > device 0.0 on pci3 > vmx0: Using 512 tx descriptors and 256 rx descriptors > vmx0: msix_init qsets capped at 8 > vmx0: intr CPUs: 20 queue msgs: 24 admincnt: 1 > vmx0: Using 8 rx queues 8 tx queues > vmx0: attempting to allocate 9 MSI-X vectors (25 supported) > vmx0: failed to allocate 9 MSI-X vectors, err: 6 - using MSI > vmx0: attempting to allocate 1 MSI vectors (1 supported) > msi: routing MSI IRQ 25 to local APIC 6 vector 48 > vmx0: using IRQ 25 for MSI > vmx0: Using an MSI interrupt > msi: Assigning MSI IRQ 25 to local APIC 25 vector 48 > msi: Assigning MSI IRQ 25 to local APIC 24 vector 48 > vmx0: bpf attached > vmx0: Ethernet address: 00:00:00:00:00:33 > vmx0: netmap queues/slots: TX 1/512, RX 1/512 > vmx0: device enable command failed! > vmx0: link state changed to UP > vmx0: device enable command failed! > > Setting hw.pci.honor_msi_blacklist="0" should only be necessary if you want to operate with more than one queue. If hw.pci.honor_msi_blacklist="0" is not set, then MSI-X will not be available, and MSI will be used, which reduces the number of queues that can be configured for use to 1. This case should work correctly. I am able to reproduce the behavior you described above on ESXi 6.7 using the latest snapshot release (based on r343598). The error that appears in the ESXi logs will be similar to: 2019-02-02T15:14:02.986Z| vcpu-1| I125: VMXNET3 user: failed to activate 'Ethernet0', status: 0xbad0001 which vaguely means 'the device did not like something about the configuration it was given'. I will see if I can determine the root cause. Given that enabling MSI-X seems to work around the problem, and based on other issues I encountered during development, I currently suspect there is a problem with the interrupt index that is being configured for the transmit queue in the device configuration structure when using MSI. -Patrick ___ 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: r343682 - head/sys/dev/wtap
Sat, 02 Feb 2019 19:30:53 +0200 було написано Rodney W. Grimes : [ Charset UTF-8 unsupported, converting... ] Author: avos Date: Sat Feb 2 16:15:46 2019 New Revision: 343682 URL: https://svnweb.freebsd.org/changeset/base/343682 Log: sys/dev/wtap: Check return value from malloc(..., M_NOWAIT) and drop unneeded cast. MFC after:3 days Modified: head/sys/dev/wtap/if_wtap.c Modified: head/sys/dev/wtap/if_wtap.c == --- head/sys/dev/wtap/if_wtap.c Sat Feb 2 16:07:56 2019(r343681) +++ head/sys/dev/wtap/if_wtap.c Sat Feb 2 16:15:46 2019(r343682) @@ -373,7 +373,7 @@ wtap_vap_delete(struct ieee80211vap *vap) destroy_dev(avp->av_dev); callout_stop(>av_swba); ieee80211_vap_detach(vap); - free((struct wtap_vap*) vap, M_80211_VAP); + free(avp, M_80211_VAP); } static void @@ -602,6 +602,8 @@ wtap_node_alloc(struct ieee80211vap *vap, const uint8_ ni = malloc(sizeof(struct ieee80211_node), M_80211_NODE, M_NOWAIT|M_ZERO); + if (ni == NULL) + return (NULL); ni->ni_txrate = 130; return ni; Um, this simplifies to and preserves single return: if (ni != NULL) ni->ni_txrate = 130; return ni; Yes, but code style for this function is just the same across all wireless drivers and ieee80211_node(4) man page; also, it clearly shows the main code path. ___ 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: r343682 - head/sys/dev/wtap
Sat, 02 Feb 2019 19:43:31 +0200 було написано Rodney W. Grimes : Sat, 02 Feb 2019 19:25:56 +0200 Rodney W. Grimes : >> Author: avos >> Date: Sat Feb 2 16:15:46 2019 >> New Revision: 343682 >> URL: https://svnweb.freebsd.org/changeset/base/343682 >> >> Log: >> sys/dev/wtap: Check return value from malloc(..., M_NOWAIT) and >> drop unneeded cast. >> >> MFC after: 3 days >> >> Modified: >> head/sys/dev/wtap/if_wtap.c >> >> Modified: head/sys/dev/wtap/if_wtap.c >> == >> --- head/sys/dev/wtap/if_wtap.cSat Feb 2 16:07:56 2019 (r343681) >> +++ head/sys/dev/wtap/if_wtap.cSat Feb 2 16:15:46 2019 (r343682) >> @@ -373,7 +373,7 @@ wtap_vap_delete(struct ieee80211vap *vap) >>destroy_dev(avp->av_dev); >>callout_stop(>av_swba); >>ieee80211_vap_detach(vap); >> - free((struct wtap_vap*) vap, M_80211_VAP); >> + free(avp, M_80211_VAP); > > First one crees vap, second one frees avp, is that a typo, or intended > change? ieee80211_vap_detach() will not free the vap, it will free only some (internal) vap structures. Your commit message only states "drop unneeded cast", it does not mention the function change of no longering freeing vap. Ah, I see where things are getting confused; actually, avp == vap: if_wtapvar.h: #define WTAP_VAP(vap) ((struct wtap_vap *)(vap)) and the start of the function: struct wtap_vap *avp = WTAP_VAP(vap); ___ 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: r343682 - head/sys/dev/wtap
> Sat, 02 Feb 2019 19:25:56 +0200 Rodney W. Grimes > : > > >> Author: avos > >> Date: Sat Feb 2 16:15:46 2019 > >> New Revision: 343682 > >> URL: https://svnweb.freebsd.org/changeset/base/343682 > >> > >> Log: > >> sys/dev/wtap: Check return value from malloc(..., M_NOWAIT) and > >> drop unneeded cast. > >> > >> MFC after: 3 days > >> > >> Modified: > >> head/sys/dev/wtap/if_wtap.c > >> > >> Modified: head/sys/dev/wtap/if_wtap.c > >> == > >> --- head/sys/dev/wtap/if_wtap.cSat Feb 2 16:07:56 2019 > >> (r343681) > >> +++ head/sys/dev/wtap/if_wtap.cSat Feb 2 16:15:46 2019 > >> (r343682) > >> @@ -373,7 +373,7 @@ wtap_vap_delete(struct ieee80211vap *vap) > >>destroy_dev(avp->av_dev); > >>callout_stop(>av_swba); > >>ieee80211_vap_detach(vap); > >> - free((struct wtap_vap*) vap, M_80211_VAP); > >> + free(avp, M_80211_VAP); > > > > First one crees vap, second one frees avp, is that a typo, or intended > > change? > > ieee80211_vap_detach() will not free the vap, it will free only some > (internal) vap structures. Your commit message only states "drop unneeded cast", it does not mention the function change of no longering freeing vap. Also this is in routine wtap_vap_delete, which I would expect to free all things in the vap, and then free the vap. Why is a delete function only freeing "some (internal) vap structures?" -- Rod Grimes rgri...@freebsd.org ___ 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: r343687 - in stable/12: sbin/ipfw sys/netinet sys/netpfil/ipfw
Author: ae Date: Sat Feb 2 17:42:17 2019 New Revision: 343687 URL: https://svnweb.freebsd.org/changeset/base/343687 Log: MFC r341472: Add ability to request listing and deleting only for dynamic states. This can be useful, when net.inet.ip.fw.dyn_keep_states is enabled, but after rules reloading some state must be deleted. Added new flag '-D' for such purpose. Retire '-e' flag, since there can not be expired states in the meaning that this flag historically had. Also add "verbose" mode for listing of dynamic states, it can be enabled with '-v' flag and adds additional information to states list. This can be useful for debugging. Obtained from: Yandex LLC Sponsored by: Yandex LLC Modified: stable/12/sbin/ipfw/ipfw.8 stable/12/sbin/ipfw/ipfw2.c stable/12/sbin/ipfw/ipfw2.h stable/12/sbin/ipfw/main.c stable/12/sys/netinet/ip_fw.h stable/12/sys/netpfil/ipfw/ip_fw_dynamic.c stable/12/sys/netpfil/ipfw/ip_fw_sockopt.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/ipfw/ipfw.8 == --- stable/12/sbin/ipfw/ipfw.8 Sat Feb 2 17:40:43 2019(r343686) +++ stable/12/sbin/ipfw/ipfw.8 Sat Feb 2 17:42:17 2019(r343687) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 13, 2018 +.Dd December 4, 2018 .Dt IPFW 8 .Os .Sh NAME @@ -310,10 +310,9 @@ i.e., omitting the "ip from any to any" string when this does not carry any additional information. .It Fl d When listing, show dynamic rules in addition to static ones. -.It Fl e -When listing and -.Fl d -is specified, also show expired dynamic rules. +.It Fl D +When listing, show only dynamic states. +When deleting, delete only dynamic states. .It Fl f Run without prompting for confirmation for commands that can cause problems if misused, i.e., Modified: stable/12/sbin/ipfw/ipfw2.c == --- stable/12/sbin/ipfw/ipfw2.c Sat Feb 2 17:40:43 2019(r343686) +++ stable/12/sbin/ipfw/ipfw2.c Sat Feb 2 17:42:17 2019(r343687) @@ -2245,10 +2245,9 @@ show_dyn_state(struct cmdline_opts *co, struct format_ uint16_t rulenum; char buf[INET6_ADDRSTRLEN]; - if (!co->do_expired) { - if (!d->expire && !(d->dyn_type == O_LIMIT_PARENT)) - return; - } + if (d->expire == 0 && d->dyn_type != O_LIMIT_PARENT) + return; + bcopy(>rule, , sizeof(rulenum)); bprintf(bp, "%05d", rulenum); if (fo->pcwidth > 0 || fo->bcwidth > 0) { @@ -2290,6 +2289,33 @@ show_dyn_state(struct cmdline_opts *co, struct format_ if (d->kidx != 0) bprintf(bp, " :%s", object_search_ctlv(fo->tstate, d->kidx, IPFW_TLV_STATE_NAME)); + +#defineBOTH_SYN(TH_SYN | (TH_SYN << 8)) +#defineBOTH_FIN(TH_FIN | (TH_FIN << 8)) + if (co->verbose) { + bprintf(bp, " state 0x%08x%s", d->state, + d->state ? " ": ","); + if (d->state & IPFW_DYN_ORPHANED) + bprintf(bp, "ORPHANED,"); + if ((d->state & BOTH_SYN) == BOTH_SYN) + bprintf(bp, "BOTH_SYN,"); + else { + if (d->state & TH_SYN) + bprintf(bp, "F_SYN,"); + if (d->state & (TH_SYN << 8)) + bprintf(bp, "R_SYN,"); + } + if ((d->state & BOTH_FIN) == BOTH_FIN) + bprintf(bp, "BOTH_FIN,"); + else { + if (d->state & TH_FIN) + bprintf(bp, "F_FIN,"); + if (d->state & (TH_FIN << 8)) + bprintf(bp, "R_FIN,"); + } + bprintf(bp, " f_ack 0x%x, r_ack 0x%x", d->ack_fwd, + d->ack_rev); + } } static int @@ -2693,7 +2719,8 @@ ipfw_list(int ac, char *av[], int show_counters) cfg = NULL; sfo.show_counters = show_counters; sfo.show_time = co.do_time; - sfo.flags = IPFW_CFG_GET_STATIC; + if (co.do_dynamic != 2) + sfo.flags |= IPFW_CFG_GET_STATIC; if (co.do_dynamic != 0) sfo.flags |= IPFW_CFG_GET_STATES; if ((sfo.show_counters | sfo.show_time) != 0) @@ -2738,17 +2765,15 @@ ipfw_show_config(struct cmdline_opts *co, struct forma fo->set_mask = cfg->set_mask; ctlv = (ipfw_obj_ctlv *)(cfg + 1); + if (ctlv->head.type == IPFW_TLV_TBLNAME_LIST) { + object_sort_ctlv(ctlv); + fo->tstate = ctlv; + readsz += ctlv->head.length; + ctlv = (ipfw_obj_ctlv *)((caddr_t)ctlv + ctlv->head.length); + } if (cfg->flags & IPFW_CFG_GET_STATIC) {
svn commit: r343686 - in stable/12/sys/netpfil/ipfw: . nat64 nptv6
Author: ae Date: Sat Feb 2 17:40:43 2019 New Revision: 343686 URL: https://svnweb.freebsd.org/changeset/base/343686 Log: MFC r341471: Reimplement how net.inet.ip.fw.dyn_keep_states works. Turning on of this feature allows to keep dynamic states when parent rule is deleted. But it worked only when the default rule is "allow from any to any". Now when rule with dynamic opcode is going to be deleted, and net.inet.ip.fw.dyn_keep_states is enabled, existing states will reference named objects corresponding to this rule, and also reference the rule. And when ipfw_dyn_lookup_state() will find state for deleted parent rule, it will return the pointer to the deleted rule, that is still valid. This implementation doesn't support O_LIMIT_PARENT rules. The refcnt field was added to struct ip_fw to keep reference, also next pointer added to be able iterate rules and not damage the content when deleted rules are chained. Named objects are referenced only when states are going to be deleted to be able reuse kidx of named objects when new parent rules will be installed. ipfw_dyn_get_count() function was modified and now it also looks into dynamic states and constructs maps of existing named objects. This is needed to correctly export orphaned states into userland. ipfw_free_rule() was changed to be global, since now dynamic state can free rule, when it is expired and references counters becomes 1. External actions subsystem also modified, since external actions can be deregisterd and instances can be destroyed. In these cases deleted rules, that are referenced by orphaned states, must be modified to prevent access to freed memory. ipfw_dyn_reset_eaction(), ipfw_reset_eaction_instance() functions added for these purposes. Obtained from: Yandex LLC Sponsored by: Yandex LLC Differential Revision: https://reviews.freebsd.org/D17532 Modified: stable/12/sys/netpfil/ipfw/ip_fw_dynamic.c stable/12/sys/netpfil/ipfw/ip_fw_eaction.c stable/12/sys/netpfil/ipfw/ip_fw_private.h stable/12/sys/netpfil/ipfw/ip_fw_sockopt.c stable/12/sys/netpfil/ipfw/nat64/nat64lsn_control.c stable/12/sys/netpfil/ipfw/nat64/nat64stl_control.c stable/12/sys/netpfil/ipfw/nptv6/nptv6.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netpfil/ipfw/ip_fw_dynamic.c == --- stable/12/sys/netpfil/ipfw/ip_fw_dynamic.c Sat Feb 2 16:57:49 2019 (r343685) +++ stable/12/sys/netpfil/ipfw/ip_fw_dynamic.c Sat Feb 2 17:40:43 2019 (r343686) @@ -122,6 +122,12 @@ __FBSDID("$FreeBSD$"); (d)->bcnt_ ## dir += pktlen;\ } while (0) +#defineDYN_REFERENCED 0x01 +/* + * DYN_REFERENCED flag is used to show that state keeps reference to named + * object, and this reference should be released when state becomes expired. + */ + struct dyn_data { void*parent;/* pointer to parent rule */ uint32_tchain_id; /* cached ruleset id */ @@ -129,7 +135,8 @@ struct dyn_data { uint32_thashval;/* hash value used for hash resize */ uint16_tfibnum; /* fib used to send keepalives */ - uint8_t _pad[3]; + uint8_t _pad[2]; + uint8_t flags; /* internal flags */ uint8_t set;/* parent rule set number */ uint16_trulenum;/* parent rule number */ uint32_truleid; /* parent rule id */ @@ -1399,20 +1406,29 @@ ipfw_dyn_lookup_state(const struct ip_fw_args *args, c * should be deleted by dyn_expire_states(). * * In case when dyn_keep_states is enabled, return -* pointer to default rule and corresponding f_pos -* value. -* XXX: In this case we lose the cache efficiency, -* since f_pos is not cached, because it seems -* there is no easy way to atomically switch -* all fields related to parent rule of given -* state. +* pointer to deleted rule and f_pos value +* corresponding to penultimate rule. +* When we have enabled V_dyn_keep_states, states +* that become orphaned will get the DYN_REFERENCED +* flag and rule will keep around. So we can return +* it. But since it is not in the rules map, we need +* return such f_pos value, so after the state +* handling if the search will continue, the next rule +
Re: svn commit: r343682 - head/sys/dev/wtap
[ Charset UTF-8 unsupported, converting... ] > Author: avos > Date: Sat Feb 2 16:15:46 2019 > New Revision: 343682 > URL: https://svnweb.freebsd.org/changeset/base/343682 > > Log: > sys/dev/wtap: Check return value from malloc(..., M_NOWAIT) and > drop unneeded cast. > > MFC after: 3 days > > Modified: > head/sys/dev/wtap/if_wtap.c > > Modified: head/sys/dev/wtap/if_wtap.c > == > --- head/sys/dev/wtap/if_wtap.c Sat Feb 2 16:07:56 2019 > (r343681) > +++ head/sys/dev/wtap/if_wtap.c Sat Feb 2 16:15:46 2019 > (r343682) > @@ -373,7 +373,7 @@ wtap_vap_delete(struct ieee80211vap *vap) > destroy_dev(avp->av_dev); > callout_stop(>av_swba); > ieee80211_vap_detach(vap); > - free((struct wtap_vap*) vap, M_80211_VAP); > + free(avp, M_80211_VAP); > } > > static void > @@ -602,6 +602,8 @@ wtap_node_alloc(struct ieee80211vap *vap, const uint8_ > > ni = malloc(sizeof(struct ieee80211_node), M_80211_NODE, > M_NOWAIT|M_ZERO); > + if (ni == NULL) > + return (NULL); > > ni->ni_txrate = 130; > return ni; Um, this simplifies to and preserves single return: if (ni != NULL) ni->ni_txrate = 130; return ni; -- Rod Grimes rgri...@freebsd.org ___ 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: r343682 - head/sys/dev/wtap
Sat, 02 Feb 2019 19:25:56 +0200 було написано Rodney W. Grimes : [ Charset UTF-8 unsupported, converting... ] Author: avos Date: Sat Feb 2 16:15:46 2019 New Revision: 343682 URL: https://svnweb.freebsd.org/changeset/base/343682 Log: sys/dev/wtap: Check return value from malloc(..., M_NOWAIT) and drop unneeded cast. MFC after:3 days Modified: head/sys/dev/wtap/if_wtap.c Modified: head/sys/dev/wtap/if_wtap.c == --- head/sys/dev/wtap/if_wtap.c Sat Feb 2 16:07:56 2019(r343681) +++ head/sys/dev/wtap/if_wtap.c Sat Feb 2 16:15:46 2019(r343682) @@ -373,7 +373,7 @@ wtap_vap_delete(struct ieee80211vap *vap) destroy_dev(avp->av_dev); callout_stop(>av_swba); ieee80211_vap_detach(vap); - free((struct wtap_vap*) vap, M_80211_VAP); + free(avp, M_80211_VAP); First one crees vap, second one frees avp, is that a typo, or intended change? ieee80211_vap_detach() will not free the vap, it will free only some (internal) vap structures. ___ 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: r343682 - head/sys/dev/wtap
[ Charset UTF-8 unsupported, converting... ] > Author: avos > Date: Sat Feb 2 16:15:46 2019 > New Revision: 343682 > URL: https://svnweb.freebsd.org/changeset/base/343682 > > Log: > sys/dev/wtap: Check return value from malloc(..., M_NOWAIT) and > drop unneeded cast. > > MFC after: 3 days > > Modified: > head/sys/dev/wtap/if_wtap.c > > Modified: head/sys/dev/wtap/if_wtap.c > == > --- head/sys/dev/wtap/if_wtap.c Sat Feb 2 16:07:56 2019 > (r343681) > +++ head/sys/dev/wtap/if_wtap.c Sat Feb 2 16:15:46 2019 > (r343682) > @@ -373,7 +373,7 @@ wtap_vap_delete(struct ieee80211vap *vap) > destroy_dev(avp->av_dev); > callout_stop(>av_swba); > ieee80211_vap_detach(vap); > - free((struct wtap_vap*) vap, M_80211_VAP); > + free(avp, M_80211_VAP); First one crees vap, second one frees avp, is that a typo, or intended change? > } > > static void > @@ -602,6 +602,8 @@ wtap_node_alloc(struct ieee80211vap *vap, const uint8_ > > ni = malloc(sizeof(struct ieee80211_node), M_80211_NODE, > M_NOWAIT|M_ZERO); > + if (ni == NULL) > + return (NULL); > > ni->ni_txrate = 130; > return ni; > > -- Rod Grimes rgri...@freebsd.org ___ 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: r343685 - in stable: 10/tools/build/mk 11/tools/build/mk 12/tools/build/mk
Author: avos Date: Sat Feb 2 16:57:49 2019 New Revision: 343685 URL: https://svnweb.freebsd.org/changeset/base/343685 Log: MFC r343502: Remove RADIUS-related files when WITHOUT_RADIUS_SUPPORT=true is set in src.conf(5) PR: 234041 Modified: stable/11/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/10/tools/build/mk/OptionalObsoleteFiles.inc stable/12/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/10/ (props changed) stable/12/ (props changed) Modified: stable/11/tools/build/mk/OptionalObsoleteFiles.inc == --- stable/11/tools/build/mk/OptionalObsoleteFiles.inc Sat Feb 2 16:23:45 2019(r343684) +++ stable/11/tools/build/mk/OptionalObsoleteFiles.inc Sat Feb 2 16:57:49 2019(r343685) @@ -7215,6 +7215,54 @@ OLD_FILES+=usr/share/man/man8/quotaon.8.gz OLD_FILES+=usr/share/man/man8/repquota.8.gz .endif +.if ${MK_RADIUS_SUPPORT} == no +OLD_FILES+=usr/lib/libradius.a +OLD_FILES+=usr/lib/libradius.so +OLD_LIBS+=usr/lib/libradius.so.4 +OLD_FILES+=usr/lib/libradius_p.a +OLD_FILES+=usr/lib/pam_radius.so +OLD_LIBS+=usr/lib/pam_radius.so.6 +OLD_FILES+=usr/include/radlib.h +OLD_FILES+=usr/include/radlib_vs.h +OLD_FILES+=usr/share/man/man3/libradius.3.gz +OLD_FILES+=usr/share/man/man3/rad_acct_open.3.gz +OLD_FILES+=usr/share/man/man3/rad_add_server.3.gz +OLD_FILES+=usr/share/man/man3/rad_add_server_ex.3.gz +OLD_FILES+=usr/share/man/man3/rad_auth_open.3.gz +OLD_FILES+=usr/share/man/man3/rad_bind_to.3.gz +OLD_FILES+=usr/share/man/man3/rad_close.3.gz +OLD_FILES+=usr/share/man/man3/rad_config.3.gz +OLD_FILES+=usr/share/man/man3/rad_continue_send_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_create_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_create_response.3.gz +OLD_FILES+=usr/share/man/man3/rad_cvt_addr.3.gz +OLD_FILES+=usr/share/man/man3/rad_cvt_int.3.gz +OLD_FILES+=usr/share/man/man3/rad_cvt_string.3.gz +OLD_FILES+=usr/share/man/man3/rad_demangle.3.gz +OLD_FILES+=usr/share/man/man3/rad_demangle_mppe_key.3.gz +OLD_FILES+=usr/share/man/man3/rad_get_attr.3.gz +OLD_FILES+=usr/share/man/man3/rad_get_vendor_attr.3.gz +OLD_FILES+=usr/share/man/man3/rad_init_send_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_addr.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_attr.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_int.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_message_authentic.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_string.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_vendor_addr.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_vendor_attr.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_vendor_int.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_vendor_string.3.gz +OLD_FILES+=usr/share/man/man3/rad_receive_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_request_authenticator.3.gz +OLD_FILES+=usr/share/man/man3/rad_send_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_send_response.3.gz +OLD_FILES+=usr/share/man/man3/rad_server_open.3.gz +OLD_FILES+=usr/share/man/man3/rad_server_secret.3.gz +OLD_FILES+=usr/share/man/man3/rad_strerror.3.gz +OLD_FILES+=usr/share/man/man5/radius.conf.5.gz +OLD_FILES+=usr/share/man/man8/pam_radius.8.gz +.endif + .if ${MK_RBOOTD} == no OLD_FILES+=usr/libexec/rbootd OLD_FILES+=usr/share/man/man8/rbootd.8.gz ___ 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: r343685 - in stable: 10/tools/build/mk 11/tools/build/mk 12/tools/build/mk
Author: avos Date: Sat Feb 2 16:57:49 2019 New Revision: 343685 URL: https://svnweb.freebsd.org/changeset/base/343685 Log: MFC r343502: Remove RADIUS-related files when WITHOUT_RADIUS_SUPPORT=true is set in src.conf(5) PR: 234041 Modified: stable/12/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/10/tools/build/mk/OptionalObsoleteFiles.inc stable/11/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/10/ (props changed) stable/11/ (props changed) Modified: stable/12/tools/build/mk/OptionalObsoleteFiles.inc == --- stable/12/tools/build/mk/OptionalObsoleteFiles.inc Sat Feb 2 16:23:45 2019(r343684) +++ stable/12/tools/build/mk/OptionalObsoleteFiles.inc Sat Feb 2 16:57:49 2019(r343685) @@ -7287,6 +7287,54 @@ OLD_FILES+=usr/share/man/man8/quotaon.8.gz OLD_FILES+=usr/share/man/man8/repquota.8.gz .endif +.if ${MK_RADIUS_SUPPORT} == no +OLD_FILES+=usr/lib/libradius.a +OLD_FILES+=usr/lib/libradius.so +OLD_LIBS+=usr/lib/libradius.so.4 +OLD_FILES+=usr/lib/libradius_p.a +OLD_FILES+=usr/lib/pam_radius.so +OLD_LIBS+=usr/lib/pam_radius.so.6 +OLD_FILES+=usr/include/radlib.h +OLD_FILES+=usr/include/radlib_vs.h +OLD_FILES+=usr/share/man/man3/libradius.3.gz +OLD_FILES+=usr/share/man/man3/rad_acct_open.3.gz +OLD_FILES+=usr/share/man/man3/rad_add_server.3.gz +OLD_FILES+=usr/share/man/man3/rad_add_server_ex.3.gz +OLD_FILES+=usr/share/man/man3/rad_auth_open.3.gz +OLD_FILES+=usr/share/man/man3/rad_bind_to.3.gz +OLD_FILES+=usr/share/man/man3/rad_close.3.gz +OLD_FILES+=usr/share/man/man3/rad_config.3.gz +OLD_FILES+=usr/share/man/man3/rad_continue_send_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_create_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_create_response.3.gz +OLD_FILES+=usr/share/man/man3/rad_cvt_addr.3.gz +OLD_FILES+=usr/share/man/man3/rad_cvt_int.3.gz +OLD_FILES+=usr/share/man/man3/rad_cvt_string.3.gz +OLD_FILES+=usr/share/man/man3/rad_demangle.3.gz +OLD_FILES+=usr/share/man/man3/rad_demangle_mppe_key.3.gz +OLD_FILES+=usr/share/man/man3/rad_get_attr.3.gz +OLD_FILES+=usr/share/man/man3/rad_get_vendor_attr.3.gz +OLD_FILES+=usr/share/man/man3/rad_init_send_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_addr.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_attr.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_int.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_message_authentic.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_string.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_vendor_addr.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_vendor_attr.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_vendor_int.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_vendor_string.3.gz +OLD_FILES+=usr/share/man/man3/rad_receive_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_request_authenticator.3.gz +OLD_FILES+=usr/share/man/man3/rad_send_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_send_response.3.gz +OLD_FILES+=usr/share/man/man3/rad_server_open.3.gz +OLD_FILES+=usr/share/man/man3/rad_server_secret.3.gz +OLD_FILES+=usr/share/man/man3/rad_strerror.3.gz +OLD_FILES+=usr/share/man/man5/radius.conf.5.gz +OLD_FILES+=usr/share/man/man8/pam_radius.8.gz +.endif + .if ${MK_RBOOTD} == no OLD_FILES+=usr/libexec/rbootd OLD_FILES+=usr/share/man/man8/rbootd.8.gz ___ 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: r343685 - in stable: 10/tools/build/mk 11/tools/build/mk 12/tools/build/mk
Author: avos Date: Sat Feb 2 16:57:49 2019 New Revision: 343685 URL: https://svnweb.freebsd.org/changeset/base/343685 Log: MFC r343502: Remove RADIUS-related files when WITHOUT_RADIUS_SUPPORT=true is set in src.conf(5) PR: 234041 Modified: stable/10/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/11/tools/build/mk/OptionalObsoleteFiles.inc stable/12/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/11/ (props changed) stable/12/ (props changed) Modified: stable/10/tools/build/mk/OptionalObsoleteFiles.inc == --- stable/10/tools/build/mk/OptionalObsoleteFiles.inc Sat Feb 2 16:23:45 2019(r343684) +++ stable/10/tools/build/mk/OptionalObsoleteFiles.inc Sat Feb 2 16:57:49 2019(r343685) @@ -4404,6 +4404,54 @@ OLD_FILES+=usr/lib/private/libldns_p.a OLD_FILES+=usr/lib/private/libssh_p.a .endif +.if ${MK_RADIUS_SUPPORT} == no +OLD_FILES+=usr/lib/libradius.a +OLD_FILES+=usr/lib/libradius.so +OLD_LIBS+=usr/lib/libradius.so.4 +OLD_FILES+=usr/lib/libradius_p.a +OLD_FILES+=usr/lib/pam_radius.so +OLD_LIBS+=usr/lib/pam_radius.so.6 +OLD_FILES+=usr/include/radlib.h +OLD_FILES+=usr/include/radlib_vs.h +OLD_FILES+=usr/share/man/man3/libradius.3.gz +OLD_FILES+=usr/share/man/man3/rad_acct_open.3.gz +OLD_FILES+=usr/share/man/man3/rad_add_server.3.gz +OLD_FILES+=usr/share/man/man3/rad_add_server_ex.3.gz +OLD_FILES+=usr/share/man/man3/rad_auth_open.3.gz +OLD_FILES+=usr/share/man/man3/rad_bind_to.3.gz +OLD_FILES+=usr/share/man/man3/rad_close.3.gz +OLD_FILES+=usr/share/man/man3/rad_config.3.gz +OLD_FILES+=usr/share/man/man3/rad_continue_send_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_create_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_create_response.3.gz +OLD_FILES+=usr/share/man/man3/rad_cvt_addr.3.gz +OLD_FILES+=usr/share/man/man3/rad_cvt_int.3.gz +OLD_FILES+=usr/share/man/man3/rad_cvt_string.3.gz +OLD_FILES+=usr/share/man/man3/rad_demangle.3.gz +OLD_FILES+=usr/share/man/man3/rad_demangle_mppe_key.3.gz +OLD_FILES+=usr/share/man/man3/rad_get_attr.3.gz +OLD_FILES+=usr/share/man/man3/rad_get_vendor_attr.3.gz +OLD_FILES+=usr/share/man/man3/rad_init_send_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_addr.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_attr.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_int.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_message_authentic.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_string.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_vendor_addr.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_vendor_attr.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_vendor_int.3.gz +OLD_FILES+=usr/share/man/man3/rad_put_vendor_string.3.gz +OLD_FILES+=usr/share/man/man3/rad_receive_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_request_authenticator.3.gz +OLD_FILES+=usr/share/man/man3/rad_send_request.3.gz +OLD_FILES+=usr/share/man/man3/rad_send_response.3.gz +OLD_FILES+=usr/share/man/man3/rad_server_open.3.gz +OLD_FILES+=usr/share/man/man3/rad_server_secret.3.gz +OLD_FILES+=usr/share/man/man3/rad_strerror.3.gz +OLD_FILES+=usr/share/man/man5/radius.conf.5.gz +OLD_FILES+=usr/share/man/man8/pam_radius.8.gz +.endif + .if ${MK_RCMDS} == no OLD_FILES+=bin/rcp OLD_FILES+=etc/rc.d/rwho ___ 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: r343684 - head/sys/net80211
Author: avos Date: Sat Feb 2 16:23:45 2019 New Revision: 343684 URL: https://svnweb.freebsd.org/changeset/base/343684 Log: Drop unused M_80211_COM malloc(9) type. It is not used since r287197. MFC after:3 days Modified: head/sys/net80211/ieee80211_freebsd.c Modified: head/sys/net80211/ieee80211_freebsd.c == --- head/sys/net80211/ieee80211_freebsd.c Sat Feb 2 16:21:23 2019 (r343683) +++ head/sys/net80211/ieee80211_freebsd.c Sat Feb 2 16:23:45 2019 (r343684) @@ -68,8 +68,6 @@ SYSCTL_INT(_net_wlan, OID_AUTO, debug, CTLFLAG_RW, 0, "debugging printfs"); #endif -static MALLOC_DEFINE(M_80211_COM, "80211com", "802.11 com state"); - static const char wlanname[] = "wlan"; static struct if_clone *wlan_cloner; ___ 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: r343683 - head/sys/net80211
Author: avos Date: Sat Feb 2 16:21:23 2019 New Revision: 343683 URL: https://svnweb.freebsd.org/changeset/base/343683 Log: Do not acquire IEEE80211_LOCK twice in cac_timeout(); reuse locked function instead. It is externally visible since r257065. MFC after:5 days Modified: head/sys/net80211/ieee80211_dfs.c Modified: head/sys/net80211/ieee80211_dfs.c == --- head/sys/net80211/ieee80211_dfs.c Sat Feb 2 16:15:46 2019 (r343682) +++ head/sys/net80211/ieee80211_dfs.c Sat Feb 2 16:21:23 2019 (r343683) @@ -156,8 +156,7 @@ cac_timeout(void *arg) /* XXX clobbers any existing desired channel */ /* NB: dfs->newchan may be NULL, that's ok */ vap->iv_des_chan = dfs->newchan; - /* XXX recursive lock need ieee80211_new_state_locked */ - ieee80211_new_state(vap, IEEE80211_S_SCAN, 0); + ieee80211_new_state_locked(vap, IEEE80211_S_SCAN, 0); } else { if_printf(vap->iv_ifp, "CAC timer on channel %u (%u MHz) expired; " ___ 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: r343681 - head/sys/dev/usb/wlan
Sat, 02 Feb 2019 18:07:56 +0200 було написано Andriy Voskoboinyk : Author: avos Date: Sat Feb 2 16:07:56 2019 New Revision: 343681 URL: https://svnweb.freebsd.org/changeset/base/343681 Log: run(4): fix allocated memory type for ieee80211_node(4). Wrong man page number, it should be ieee80211_node(9) ___ 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: r343682 - head/sys/dev/wtap
Author: avos Date: Sat Feb 2 16:15:46 2019 New Revision: 343682 URL: https://svnweb.freebsd.org/changeset/base/343682 Log: sys/dev/wtap: Check return value from malloc(..., M_NOWAIT) and drop unneeded cast. MFC after:3 days Modified: head/sys/dev/wtap/if_wtap.c Modified: head/sys/dev/wtap/if_wtap.c == --- head/sys/dev/wtap/if_wtap.c Sat Feb 2 16:07:56 2019(r343681) +++ head/sys/dev/wtap/if_wtap.c Sat Feb 2 16:15:46 2019(r343682) @@ -373,7 +373,7 @@ wtap_vap_delete(struct ieee80211vap *vap) destroy_dev(avp->av_dev); callout_stop(>av_swba); ieee80211_vap_detach(vap); - free((struct wtap_vap*) vap, M_80211_VAP); + free(avp, M_80211_VAP); } static void @@ -602,6 +602,8 @@ wtap_node_alloc(struct ieee80211vap *vap, const uint8_ ni = malloc(sizeof(struct ieee80211_node), M_80211_NODE, M_NOWAIT|M_ZERO); + if (ni == NULL) + return (NULL); ni->ni_txrate = 130; return ni; ___ 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: r343681 - head/sys/dev/usb/wlan
Author: avos Date: Sat Feb 2 16:07:56 2019 New Revision: 343681 URL: https://svnweb.freebsd.org/changeset/base/343681 Log: run(4): fix allocated memory type for ieee80211_node(4). PR: 177366 MFC after:3 days Modified: head/sys/dev/usb/wlan/if_run.c Modified: head/sys/dev/usb/wlan/if_run.c == --- head/sys/dev/usb/wlan/if_run.c Sat Feb 2 16:06:06 2019 (r343680) +++ head/sys/dev/usb/wlan/if_run.c Sat Feb 2 16:07:56 2019 (r343681) @@ -2029,7 +2029,8 @@ run_read_eeprom(struct run_softc *sc) static struct ieee80211_node * run_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]) { - return malloc(sizeof (struct run_node), M_DEVBUF, M_NOWAIT | M_ZERO); + return malloc(sizeof (struct run_node), M_80211_NODE, + M_NOWAIT | M_ZERO); } static int ___ 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: r343680 - head/sys/dev/usb/wlan
Author: avos Date: Sat Feb 2 16:06:06 2019 New Revision: 343680 URL: https://svnweb.freebsd.org/changeset/base/343680 Log: run(4): revert previous commit; there were no compiler warning (at least, from clang(1)). Modified: head/sys/dev/usb/wlan/if_run.c Modified: head/sys/dev/usb/wlan/if_run.c == --- head/sys/dev/usb/wlan/if_run.c Sat Feb 2 16:01:16 2019 (r343679) +++ head/sys/dev/usb/wlan/if_run.c Sat Feb 2 16:06:06 2019 (r343680) @@ -2029,14 +2029,7 @@ run_read_eeprom(struct run_softc *sc) static struct ieee80211_node * run_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]) { - struct run_node *rn; - - rn = malloc(sizeof (struct run_node), M_80211_NODE, M_NOWAIT | M_ZERO); - - if (rn == NULL) - return (NULL); - - return (>ni); + return malloc(sizeof (struct run_node), M_DEVBUF, M_NOWAIT | M_ZERO); } static int ___ 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: r343679 - head/sys/dev/usb/wlan
Author: avos Date: Sat Feb 2 16:01:16 2019 New Revision: 343679 URL: https://svnweb.freebsd.org/changeset/base/343679 Log: run(4): fix allocated memory type and -Wincompatible-pointer-types compiler warning. PR: 177366 MFC after:3 days Modified: head/sys/dev/usb/wlan/if_run.c Modified: head/sys/dev/usb/wlan/if_run.c == --- head/sys/dev/usb/wlan/if_run.c Sat Feb 2 05:49:05 2019 (r343678) +++ head/sys/dev/usb/wlan/if_run.c Sat Feb 2 16:01:16 2019 (r343679) @@ -2029,7 +2029,14 @@ run_read_eeprom(struct run_softc *sc) static struct ieee80211_node * run_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]) { - return malloc(sizeof (struct run_node), M_DEVBUF, M_NOWAIT | M_ZERO); + struct run_node *rn; + + rn = malloc(sizeof (struct run_node), M_80211_NODE, M_NOWAIT | M_ZERO); + + if (rn == NULL) + return (NULL); + + return (>ni); } static int ___ 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: r343291 - in head/sys: dev/vmware/vmxnet3 net
Patrick Kelsey wrote: > Author: pkelsey > Date: Tue Jan 22 01:11:17 2019 > New Revision: 343291 > URL: https://svnweb.freebsd.org/changeset/base/343291 > > Log: > onvert vmx(4) to being an iflib driver. > > Also, expose IFLIB_MAX_RX_SEGS to iflib drivers and add > iflib_dma_alloc_align() to the iflib API. > > Performance is generally better with the tunable/sysctl > dev.vmx..iflib.tx_abdicate=1. > > Reviewed by:shurd > MFC after: 1 week > Relnotes: yes > Sponsored by: RG Nets > Differential Revision: https://reviews.freebsd.org/D18761 This breaks vmx interfaces for me in ESXi 6.7 (output below). The review mentions setting hw.pci.honor_msi_blacklist="0" and it helps indeed -- worth mentioning in UPDATING? vmx0: port 0x3000-0x300f mem 0xfe903000-0xfe903fff,0xfe902000-0xfe902fff,0xfe90-0xfe901fff at device 0.0 on pci3 vmx0: Using 512 tx descriptors and 256 rx descriptors vmx0: msix_init qsets capped at 8 vmx0: intr CPUs: 20 queue msgs: 24 admincnt: 1 vmx0: Using 8 rx queues 8 tx queues vmx0: attempting to allocate 9 MSI-X vectors (25 supported) vmx0: failed to allocate 9 MSI-X vectors, err: 6 - using MSI vmx0: attempting to allocate 1 MSI vectors (1 supported) msi: routing MSI IRQ 25 to local APIC 6 vector 48 vmx0: using IRQ 25 for MSI vmx0: Using an MSI interrupt msi: Assigning MSI IRQ 25 to local APIC 25 vector 48 msi: Assigning MSI IRQ 25 to local APIC 24 vector 48 vmx0: bpf attached vmx0: Ethernet address: 00:00:00:00:00:33 vmx0: netmap queues/slots: TX 1/512, RX 1/512 vmx0: device enable command failed! vmx0: link state changed to UP vmx0: device enable command failed! signature.asc Description: OpenPGP digital signature
Re: svn commit: r343633 - head/usr.bin/shar
On Thu, Jan 31, 2019 at 03:29:03PM -0800, Bryan Drewery wrote: > On 1/31/19 3:21 PM, Bryan Drewery wrote: > > Author: bdrewery > > Date: Thu Jan 31 23:21:18 2019 > > New Revision: 343633 > > URL: https://svnweb.freebsd.org/changeset/base/343633 > > > > Log: > > Shar files may be seen as binary by grep. > > > > Suggest using -a to egrep to properly see executed commands. > > > > This is a minor improvement to the manpage. A better improvement > > would be removal or gigantic warnings. > > I dare someone to remove this utility. > There may still be documentation suggesting its use somewhere due to > pre-bugzilla days but now we can do proper binary attachments I believe. bsdtar --format shar? Joerg ___ 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: r343678 - head/sys/netpfil/pf
Author: glebius Date: Sat Feb 2 05:49:05 2019 New Revision: 343678 URL: https://svnweb.freebsd.org/changeset/base/343678 Log: Return PFIL_CONSUMED if packet was consumed. While here gather all the identical endings of pf_check_*() into single function. PR: 235411 Modified: head/sys/netpfil/pf/pf_ioctl.c Modified: head/sys/netpfil/pf/pf_ioctl.c == --- head/sys/netpfil/pf/pf_ioctl.c Sat Feb 2 04:27:47 2019 (r343677) +++ head/sys/netpfil/pf/pf_ioctl.c Sat Feb 2 05:49:05 2019 (r343678) @@ -4002,6 +4002,26 @@ shutdown_pf(void) return (error); } +static pfil_return_t +pf_check_return(int chk, struct mbuf **m) +{ + + switch (chk) { + case PF_PASS: + if (*m == NULL) + return (PFIL_CONSUMED); + else + return (PFIL_PASS); + break; + default: + if (*m != NULL) { + m_freem(*m); + *m = NULL; + } + return (PFIL_DROPPED); + } +} + #ifdef INET static pfil_return_t pf_check_in(struct mbuf **m, struct ifnet *ifp, int flags, @@ -4010,12 +4030,8 @@ pf_check_in(struct mbuf **m, struct ifnet *ifp, int fl int chk; chk = pf_test(PF_IN, flags, ifp, m, inp); - if (chk && *m) { - m_freem(*m); - *m = NULL; - } - return (chk == PF_PASS ? PFIL_PASS : PFIL_DROPPED); + return (pf_check_return(chk, m)); } static pfil_return_t @@ -4025,12 +4041,8 @@ pf_check_out(struct mbuf **m, struct ifnet *ifp, int f int chk; chk = pf_test(PF_OUT, flags, ifp, m, inp); - if (chk && *m) { - m_freem(*m); - *m = NULL; - } - return (chk == PF_PASS ? PFIL_PASS : PFIL_DROPPED); + return (pf_check_return(chk, m)); } #endif @@ -4049,12 +4061,8 @@ pf_check6_in(struct mbuf **m, struct ifnet *ifp, int f CURVNET_SET(ifp->if_vnet); chk = pf_test6(PF_IN, flags, (*m)->m_flags & M_LOOP ? V_loif : ifp, m, inp); CURVNET_RESTORE(); - if (chk && *m) { - m_freem(*m); - *m = NULL; - } - return (chk == PF_PASS ? PFIL_PASS : PFIL_DROPPED); + return (pf_check_return(chk, m)); } static pfil_return_t @@ -4066,12 +4074,8 @@ pf_check6_out(struct mbuf **m, struct ifnet *ifp, int CURVNET_SET(ifp->if_vnet); chk = pf_test6(PF_OUT, flags, ifp, m, inp); CURVNET_RESTORE(); - if (chk && *m) { - m_freem(*m); - *m = NULL; - } - return (chk == PF_PASS ? PFIL_PASS : PFIL_DROPPED); + return (pf_check_return(chk, m)); } #endif /* INET6 */ ___ 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: r343677 - in stable/12: share/man/man4 sys/dev/rtwn/usb sys/dev/usb
Author: avos Date: Sat Feb 2 04:27:47 2019 New Revision: 343677 URL: https://svnweb.freebsd.org/changeset/base/343677 Log: MFC r343518: rtwn_usb(4): add new USB id. Submitted and tested by: Github issue: https://github.com/s3erios/rtwn/issues/4 Modified: stable/12/share/man/man4/rtwn_usb.4 stable/12/sys/dev/rtwn/usb/rtwn_usb_attach.h stable/12/sys/dev/usb/usbdevs Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man4/rtwn_usb.4 == --- stable/12/share/man/man4/rtwn_usb.4 Sat Feb 2 04:21:00 2019 (r343676) +++ stable/12/share/man/man4/rtwn_usb.4 Sat Feb 2 04:27:47 2019 (r343677) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\"/ -.Dd January 7, 2019 +.Dd February 2, 2019 .Dt RTWN_USB 4 .Os .Sh NAME @@ -80,6 +80,7 @@ based USB wireless network adapters, including: .It "Edimax EW-7811Un" Ta RTL8188CUS Ta USB 2.0 .It "Edimax EW-7811UTC" Ta RTL8821AU Ta USB 2.0 .It "Edimax EW-7822UAC" Ta RTL8812AU Ta USB 3.0 +.It "EDUP EP-AC1620" Ta RTL8821AU Ta USB 2.0 .It "Elecom WDC-150SU2M" Ta RTL8188EU Ta USB 2.0 .It "EnGenius EUB1200AC" Ta RTL8812AU Ta USB 3.0 .It "Hawking HD65U" Ta RTL8821AU Ta USB 2.0 Modified: stable/12/sys/dev/rtwn/usb/rtwn_usb_attach.h == --- stable/12/sys/dev/rtwn/usb/rtwn_usb_attach.hSat Feb 2 04:21:00 2019(r343676) +++ stable/12/sys/dev/rtwn/usb/rtwn_usb_attach.hSat Feb 2 04:27:47 2019(r343677) @@ -157,7 +157,8 @@ static const STRUCT_USB_HOST_ID rtwn_devs[] = { RTWN_RTL8821AU_DEV(HAWKING, HD65U), RTWN_RTL8821AU_DEV(MELCO, WIU2433DM), RTWN_RTL8821AU_DEV(NETGEAR, A6100), - RTWN_RTL8821AU_DEV(REALTEK, RTL8821AU) + RTWN_RTL8821AU_DEV(REALTEK, RTL8821AU_1), + RTWN_RTL8821AU_DEV(REALTEK, RTL8821AU_2) #undef RTWN_RTL8821AU_DEV }; Modified: stable/12/sys/dev/usb/usbdevs == --- stable/12/sys/dev/usb/usbdevs Sat Feb 2 04:21:00 2019 (r343676) +++ stable/12/sys/dev/usb/usbdevs Sat Feb 2 04:27:47 2019 (r343677) @@ -3926,6 +3926,7 @@ product REALTEK DUMMY 0x Dummy product product REALTEK USB20CRW 0x0158 USB20CRW Card Reader product REALTEK RTL8188ETV 0x0179 RTL8188ETV product REALTEK RTL8188CTV 0x018a RTL8188CTV +product REALTEK RTL8821AU_20x0811 RTL8821AU product REALTEK RTL8188RU_20x317f RTL8188RU product REALTEK USBKR100 0x8150 USBKR100 USB Ethernet product REALTEK RTL81520x8152 RTL8152 USB Ethernet @@ -3956,7 +3957,7 @@ product REALTEK RTL8187B_20x8198 RTL8187B Wireless Ad product REALTEK RTL87120x8712 RTL8712 product REALTEK RTL87130x8713 RTL8713 product REALTEK RTL8188CU_COMBO0x8754 RTL8188CU -product REALTEK RTL8821AU 0xa811 RTL8821AU +product REALTEK RTL8821AU_10xa811 RTL8821AU product REALTEK RTL8723BU 0xb720 RTL8723BU product REALTEK RTL8192SU 0xc512 RTL8192SU product REALTEK RTL8812AU 0x8812 RTL8812AU Wireless Adapter ___ 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"