svn commit: r318232 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 06:35:20 2017
New Revision: 318232
URL: https://svnweb.freebsd.org/changeset/base/318232

Log:
  [iwm] Recognize IWM_FW_PAGING_BLOCK_CMD wide cmd response correctly.
  
  Obtained from:dragonflybsd.git 
ef688cebb9b29b67f7a011846589971987949e0d

Modified:
  head/sys/dev/iwm/if_iwm.c

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 06:34:43 2017(r318231)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 06:35:20 2017(r318232)
@@ -5459,7 +5459,8 @@ iwm_handle_rxb(struct iwm_softc *sc, str
case IWM_REMOVE_STA:
case IWM_TXPATH_FLUSH:
case IWM_LQ_CMD:
-   case IWM_FW_PAGING_BLOCK_CMD:
+   case IWM_WIDE_ID(IWM_ALWAYS_LONG_GROUP,
+IWM_FW_PAGING_BLOCK_CMD):
case IWM_BT_CONFIG:
case IWM_REPLY_THERMAL_MNG_BACKOFF:
cresp = (void *)pkt->data;
___
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: r318231 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 06:34:43 2017
New Revision: 318231
URL: https://svnweb.freebsd.org/changeset/base/318231

Log:
  [iwm] Revert "if_iwm - SCAN_ABORT_UMAC response doesn't use a wide id"
  
  This reverts commit cef47a9cbb0a3ce5f18369fed9403d2764884bc2.
  
  Obtained from:dragonflybsd.git 
f62d325820ee7f7c2bcf721ada9cef8b70f74471

Modified:
  head/sys/dev/iwm/if_iwm.c

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 06:33:55 2017(r318230)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 06:34:43 2017(r318231)
@@ -5450,7 +5450,7 @@ iwm_handle_rxb(struct iwm_softc *sc, str
case IWM_TIME_EVENT_CMD:
case IWM_WIDE_ID(IWM_ALWAYS_LONG_GROUP, IWM_SCAN_CFG_CMD):
case IWM_WIDE_ID(IWM_ALWAYS_LONG_GROUP, IWM_SCAN_REQ_UMAC):
-   case IWM_SCAN_ABORT_UMAC:
+   case IWM_WIDE_ID(IWM_ALWAYS_LONG_GROUP, IWM_SCAN_ABORT_UMAC):
case IWM_SCAN_OFFLOAD_REQUEST_CMD:
case IWM_SCAN_OFFLOAD_ABORT_CMD:
case IWM_REPLY_BEACON_FILTERING_CMD:
___
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: r318230 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 06:33:55 2017
New Revision: 318230
URL: https://svnweb.freebsd.org/changeset/base/318230

Log:
  [iwm] Fix iwm_mvm_send_cmd_pdu(_status) declarations. Make id a uint32_t.
  
  * This fixes cases where the group id of wide commands got lost, e.g. this
happened to the IWM_SCAN_ABORT_UMAC command.
  
  Obtained from:dragonflybsd.git 
71310fab0caca79bb5da43d9d642e77a4c27eea2

Modified:
  head/sys/dev/iwm/if_iwm_util.c
  head/sys/dev/iwm/if_iwm_util.h

Modified: head/sys/dev/iwm/if_iwm_util.c
==
--- head/sys/dev/iwm/if_iwm_util.c  Fri May 12 06:33:07 2017
(r318229)
+++ head/sys/dev/iwm/if_iwm_util.c  Fri May 12 06:33:55 2017
(r318230)
@@ -346,7 +346,7 @@ iwm_send_cmd(struct iwm_softc *sc, struc
 
 /* iwlwifi: mvm/utils.c */
 int
-iwm_mvm_send_cmd_pdu(struct iwm_softc *sc, uint8_t id,
+iwm_mvm_send_cmd_pdu(struct iwm_softc *sc, uint32_t id,
uint32_t flags, uint16_t len, const void *data)
 {
struct iwm_host_cmd cmd = {
@@ -402,7 +402,7 @@ iwm_mvm_send_cmd_status(struct iwm_softc
 
 /* iwlwifi/mvm/utils.c */
 int
-iwm_mvm_send_cmd_pdu_status(struct iwm_softc *sc, uint8_t id,
+iwm_mvm_send_cmd_pdu_status(struct iwm_softc *sc, uint32_t id,
uint16_t len, const void *data, uint32_t *status)
 {
struct iwm_host_cmd cmd = {

Modified: head/sys/dev/iwm/if_iwm_util.h
==
--- head/sys/dev/iwm/if_iwm_util.h  Fri May 12 06:33:07 2017
(r318229)
+++ head/sys/dev/iwm/if_iwm_util.h  Fri May 12 06:33:55 2017
(r318230)
@@ -107,12 +107,12 @@
 #define__IF_IWM_UTIL_H__
 
 extern int iwm_send_cmd(struct iwm_softc *sc, struct iwm_host_cmd *hcmd);
-extern int iwm_mvm_send_cmd_pdu(struct iwm_softc *sc, uint8_t id,
+extern int iwm_mvm_send_cmd_pdu(struct iwm_softc *sc, uint32_t id,
uint32_t flags, uint16_t len, const void *data);
 
 extern int iwm_mvm_send_cmd_status(struct iwm_softc *sc,
struct iwm_host_cmd *cmd, uint32_t *status);
-extern int iwm_mvm_send_cmd_pdu_status(struct iwm_softc *sc, uint8_t id,
+extern int iwm_mvm_send_cmd_pdu_status(struct iwm_softc *sc, uint32_t id,
uint16_t len, const void *data, uint32_t *status);
 extern void iwm_free_resp(struct iwm_softc *sc, struct iwm_host_cmd *hcmd);
 
___
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: r318229 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 06:33:07 2017
New Revision: 318229
URL: https://svnweb.freebsd.org/changeset/base/318229

Log:
  [iwm] Adjust if_iwm_sta.h prototypes, don't pass iwm_node to rm_sta().
  
  * Since a RUN -> INIT/SCAN transition seems to immediately destroy the
ieee80211_node for the AP, we can't read the in_assoc value from there.
Instead just directly pass that information via a boolean_t argument.
  
  * Adds iwm_mvm_rm_sta_id() function, which just unconditionally removes
the station from the firmware.
  
  * The iwm_mvm_rm_sta() function shouldn't actually remove the station from
firmware when we are still associated (i.e. during a RUN -> INIT/SCAN
transition).
  
   * So when disassociating we will first call iwm_mvm_rm_sta() to drain the
 queues/fifos. Later during disassociation we will then use
 iwm_mvm_rm_sta_id() to actually remove the station.
  
  Inspired-By: Linux iwlwifi
  
  Obtained from:dragonflybsd.git 
81b3c1fe9122fa22f33d97103039cc375f656231

Modified:
  head/sys/dev/iwm/if_iwm.c
  head/sys/dev/iwm/if_iwm_sta.c
  head/sys/dev/iwm/if_iwm_sta.h

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 06:31:57 2017(r318228)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 06:33:07 2017(r318229)
@@ -4396,8 +4396,7 @@ iwm_newstate(struct ieee80211vap *vap, e
myerr = ivp->iv_newstate(vap, nstate, arg);
IEEE80211_UNLOCK(ic);
IWM_LOCK(sc);
-   in = IWM_NODE(vap->iv_bss);
-   error = iwm_mvm_rm_sta(sc, vap, in);
+   error = iwm_mvm_rm_sta(sc, vap, FALSE);
 if (error) {
 device_printf(sc->sc_dev,
"%s: Failed to remove station: %d\n",

Modified: head/sys/dev/iwm/if_iwm_sta.c
==
--- head/sys/dev/iwm/if_iwm_sta.c   Fri May 12 06:31:57 2017
(r318228)
+++ head/sys/dev/iwm/if_iwm_sta.c   Fri May 12 06:33:07 2017
(r318229)
@@ -213,10 +213,9 @@ iwm_mvm_update_sta(struct iwm_softc *sc,
 }
 
 int
-iwm_mvm_drain_sta(struct iwm_softc *sc, struct iwm_node *in, boolean_t drain)
+iwm_mvm_drain_sta(struct iwm_softc *sc, struct iwm_vap *ivp, boolean_t drain)
 {
struct iwm_mvm_add_sta_cmd cmd = {};
-   struct iwm_vap *ivp = IWM_VAP(in->in_ni.ni_vap);
int ret;
uint32_t status;
 
@@ -275,13 +274,13 @@ iwm_mvm_rm_sta_common(struct iwm_softc *
 
 int
 iwm_mvm_rm_sta(struct iwm_softc *sc, struct ieee80211vap *vap,
-   struct iwm_node *in)
+   boolean_t is_assoc)
 {
uint32_t tfd_queue_msk = 0;
int ret;
int ac;
 
-   ret = iwm_mvm_drain_sta(sc, in, TRUE);
+   ret = iwm_mvm_drain_sta(sc, IWM_VAP(vap), TRUE);
if (ret)
return ret;
mbufq_drain(&sc->sc_snd); /* XXX needed ? */
@@ -297,13 +296,12 @@ iwm_mvm_rm_sta(struct iwm_softc *sc, str
if (ret)
return ret;
 #endif
-   ret = iwm_mvm_drain_sta(sc, in, FALSE);
+   ret = iwm_mvm_drain_sta(sc, IWM_VAP(vap), FALSE);
 
-#if 0
/* if we are associated - we can't remove the AP STA now */
-   if (sta->assoc)
+   if (is_assoc)
return ret;
-#endif
+
/* XXX wait until STA is drained */
 
ret = iwm_mvm_rm_sta_common(sc);
@@ -311,6 +309,14 @@ iwm_mvm_rm_sta(struct iwm_softc *sc, str
return ret;
 }
 
+int
+iwm_mvm_rm_sta_id(struct iwm_softc *sc, struct ieee80211vap *vap)
+{
+   /* XXX wait until STA is drained */
+
+   return iwm_mvm_rm_sta_common(sc);
+}
+
 static int
 iwm_mvm_add_int_sta_common(struct iwm_softc *sc, struct iwm_int_sta *sta,
const uint8_t *addr, uint16_t mac_id, uint16_t color)

Modified: head/sys/dev/iwm/if_iwm_sta.h
==
--- head/sys/dev/iwm/if_iwm_sta.h   Fri May 12 06:31:57 2017
(r318228)
+++ head/sys/dev/iwm/if_iwm_sta.h   Fri May 12 06:33:07 2017
(r318229)
@@ -211,12 +211,13 @@ externint iwm_mvm_sta_send_to_fw(struct
 extern int iwm_mvm_add_sta(struct iwm_softc *sc, struct iwm_node *in);
 extern int iwm_mvm_update_sta(struct iwm_softc *sc, struct iwm_node *in);
 extern int iwm_mvm_rm_sta(struct iwm_softc *sc, struct ieee80211vap *vap,
-  struct iwm_node *in);
+  boolean_t is_assoc);
+extern int iwm_mvm_rm_sta_id(struct iwm_softc *sc, struct ieee80211vap *vap);
 
 extern int iwm_mvm_add_aux_sta(struct iwm_softc *sc);
 extern void iwm_mvm_del_aux_sta(struct iwm_softc *sc);
 
-extern int iwm_mvm_drain_sta(struct iwm_softc *sc, struct iwm_node *in,
+extern int iwm_mvm_drain_sta(struct iwm_softc *sc, struct iwm_vap *ivp,

svn commit: r318228 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 06:31:57 2017
New Revision: 318228
URL: https://svnweb.freebsd.org/changeset/base/318228

Log:
  [iwm] Make powersaving more similar to Linux iwlwifi behaviour.
  
  * Add a per-vap ps_disabled flag, and use it for a workaround which fixes
an association issue when powersaving is enabled.
  
  * Compute flag that should correpsond to the mvmif->bss_conf.ps flag in
Linux's iwlwifi (e.g. this disallows powersaving when not associated
yet).
  
  Inspired-By: Linux iwlwifi
  
  Obtained from:dragonflybsd.git 
dc2e69bdfe8c9d7049c8a28da0adffbfbc6de5c0

Modified:
  head/sys/dev/iwm/if_iwm.c
  head/sys/dev/iwm/if_iwm_power.c
  head/sys/dev/iwm/if_iwmvar.h

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 06:30:50 2017(r318227)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 06:31:57 2017(r318228)
@@ -4044,7 +4044,15 @@ iwm_auth(struct ieee80211vap *vap, struc
"%s: binding update cmd\n", __func__);
goto out;
}
-   if ((error = iwm_mvm_power_update_mac(sc)) != 0) {
+   /*
+* Authentication becomes unreliable when powersaving is left enabled
+* here. Powersaving will be activated again when association has
+* finished or is aborted.
+*/
+   iv->ps_disabled = TRUE;
+   error = iwm_mvm_power_update_mac(sc);
+   iv->ps_disabled = FALSE;
+   if (error != 0) {
device_printf(sc->sc_dev,
"%s: failed to update power management\n",
__func__);
@@ -6277,6 +6285,7 @@ iwm_vap_create(struct ieee80211com *ic, 
ivp->color = IWM_DEFAULT_COLOR;
 
ivp->have_wme = FALSE;
+   ivp->ps_disabled = FALSE;
 
ieee80211_ratectl_init(vap);
/* Complete setup. */

Modified: head/sys/dev/iwm/if_iwm_power.c
==
--- head/sys/dev/iwm/if_iwm_power.c Fri May 12 06:30:50 2017
(r318227)
+++ head/sys/dev/iwm/if_iwm_power.c Fri May 12 06:31:57 2017
(r318228)
@@ -285,6 +285,7 @@ iwm_mvm_power_build_cmd(struct iwm_softc
struct ieee80211_node *ni = vap->iv_bss;
int dtimper, dtimper_msec;
int keep_alive;
+   boolean_t bss_conf_ps = FALSE;
 
cmd->id_and_color = htole32(IWM_FW_CMD_ID_AND_COLOR(ivp->id,
ivp->color));
@@ -306,6 +307,14 @@ iwm_mvm_power_build_cmd(struct iwm_softc
return;
 
cmd->flags |= htole16(IWM_POWER_FLAGS_POWER_SAVE_ENA_MSK);
+
+   if (IWM_NODE(ni)->in_assoc &&
+   (vap->iv_flags & IEEE80211_F_PMGTON) != 0) {
+   bss_conf_ps = TRUE;
+   }
+   if (!bss_conf_ps)
+   return;
+
cmd->flags |= htole16(IWM_POWER_FLAGS_POWER_MANAGEMENT_ENA_MSK);
 
iwm_mvm_power_config_skip_dtim(sc, cmd);
@@ -370,15 +379,18 @@ iwm_mvm_disable_beacon_filter(struct iwm
 static int
 iwm_mvm_power_set_ps(struct iwm_softc *sc)
 {
-   struct ieee80211vap *vap = TAILQ_FIRST(&sc->sc_ic.ic_vaps);
+   struct ieee80211vap *vap;
boolean_t disable_ps;
int ret;
 
/* disable PS if CAM */
disable_ps = (iwm_power_scheme == IWM_POWER_SCHEME_CAM);
/* ...or if any of the vifs require PS to be off */
-   if (vap != NULL && (vap->iv_flags & IEEE80211_F_PMGTON) == 0)
-   disable_ps = TRUE;
+   TAILQ_FOREACH(vap, &sc->sc_ic.ic_vaps, iv_next) {
+   struct iwm_vap *ivp = IWM_VAP(vap);
+   if (ivp->phy_ctxt != NULL && ivp->ps_disabled)
+   disable_ps = TRUE;
+   }
 
/* update device power state if it has changed */
if (sc->sc_ps_disabled != disable_ps) {
@@ -402,11 +414,18 @@ iwm_mvm_power_set_ba(struct iwm_softc *s
IWM_BF_CMD_CONFIG_DEFAULTS,
.bf_enable_beacon_filter = htole32(1),
};
+   struct ieee80211vap *vap = &ivp->iv_vap;
+   struct ieee80211_node *ni = vap->iv_bss;
+   boolean_t bss_conf_ps = FALSE;
 
if (!sc->sc_bf.bf_enabled)
return 0;
 
-   sc->sc_bf.ba_enabled = !sc->sc_ps_disabled;
+   if (ni != NULL && IWM_NODE(ni)->in_assoc &&
+   (vap->iv_flags & IEEE80211_F_PMGTON) != 0) {
+   bss_conf_ps = TRUE;
+   }
+   sc->sc_bf.ba_enabled = !sc->sc_ps_disabled && bss_conf_ps;
 
return _iwm_mvm_enable_beacon_filter(sc, ivp, &cmd);
 }

Modified: head/sys/dev/iwm/if_iwmvar.h
==
--- head/sys/dev/iwm/if_iwmvar.hFri May 12 06:30:50 2017
(r318227)
+++ head/sys/dev/iwm/if_iwmvar.hFri May 12 06:31:57 2017
(r318228)
@@ -390,6 +390,9 @@ struct iwm_vap {
uint16_t edca_txop;
uint8_t aifsn;
} queue_params[WME_NUM_AC];
+
+   /

svn commit: r318227 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 06:30:50 2017
New Revision: 318227
URL: https://svnweb.freebsd.org/changeset/base/318227

Log:
  [iwm] Clean up if_iwm_power.c a bit. Fix iwm_power_scheme debug print.
  
  Obtained from:dragonflybsd.git 
52c3adbee676d8558065618e5ad694ea5c6697e0

Modified:
  head/sys/dev/iwm/if_iwm_power.c

Modified: head/sys/dev/iwm/if_iwm_power.c
==
--- head/sys/dev/iwm/if_iwm_power.c Fri May 12 06:30:06 2017
(r318226)
+++ head/sys/dev/iwm/if_iwm_power.c Fri May 12 06:30:50 2017
(r318227)
@@ -212,7 +212,7 @@ iwm_mvm_power_log(struct iwm_softc *sc, 
IWM_DPRINTF(sc, IWM_DEBUG_PWRSAVE | IWM_DEBUG_CMD,
"Sending power table command on mac id 0x%X for "
"power level %d, flags = 0x%X\n",
-   cmd->id_and_color, IWM_POWER_SCHEME_CAM, le16toh(cmd->flags));
+   cmd->id_and_color, iwm_power_scheme, le16toh(cmd->flags));
IWM_DPRINTF(sc, IWM_DEBUG_PWRSAVE | IWM_DEBUG_CMD,
"Keep alive = %u sec\n", le16toh(cmd->keep_alive_seconds));
 
@@ -281,11 +281,10 @@ static void
 iwm_mvm_power_build_cmd(struct iwm_softc *sc, struct iwm_vap *ivp,
struct iwm_mac_power_cmd *cmd)
 {
-   struct ieee80211_node *ni = ivp->iv_vap.iv_bss;
+   struct ieee80211vap *vap = &ivp->iv_vap;
+   struct ieee80211_node *ni = vap->iv_bss;
int dtimper, dtimper_msec;
int keep_alive;
-   struct ieee80211com *ic = &sc->sc_ic;
-   struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
 
cmd->id_and_color = htole32(IWM_FW_CMD_ID_AND_COLOR(ivp->id,
ivp->color));
___
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: r318226 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 06:30:06 2017
New Revision: 318226
URL: https://svnweb.freebsd.org/changeset/base/318226

Log:
  [iwm] Switch arguments from iwm_node* to iwm_vap* in if_iwm_power.c.
  
  * Power management handling is per-vap, not per-node, so we should pass
the iwm_vap in these arguments.
  
  Obtained from:dragonflybsd.git 
62a4e7957a736b4de38938b02fa7eb9b45bc5d0d

Modified:
  head/sys/dev/iwm/if_iwm.c
  head/sys/dev/iwm/if_iwm_power.c
  head/sys/dev/iwm/if_iwm_power.h

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 06:21:03 2017(r318225)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 06:30:06 2017(r318226)
@@ -4462,7 +4462,7 @@ iwm_newstate(struct ieee80211vap *vap, e
"%s: failed to update MAC: %d\n", __func__, error);
}
 
-   iwm_mvm_enable_beacon_filter(sc, in);
+   iwm_mvm_enable_beacon_filter(sc, ivp);
iwm_mvm_power_update_mac(sc);
iwm_mvm_update_quotas(sc, ivp);
iwm_setrates(sc, in);

Modified: head/sys/dev/iwm/if_iwm_power.c
==
--- head/sys/dev/iwm/if_iwm_power.c Fri May 12 06:21:03 2017
(r318225)
+++ head/sys/dev/iwm/if_iwm_power.c Fri May 12 06:30:06 2017
(r318226)
@@ -201,7 +201,7 @@ iwm_mvm_beacon_filter_send_cmd(struct iw
 
 static void
 iwm_mvm_beacon_filter_set_cqm_params(struct iwm_softc *sc,
-   struct iwm_node *in, struct iwm_beacon_filter_cmd *cmd)
+   struct iwm_vap *ivp, struct iwm_beacon_filter_cmd *cmd)
 {
cmd->ba_enable_beacon_abort = htole32(sc->sc_bf.ba_enabled);
 }
@@ -278,15 +278,14 @@ iwm_mvm_power_config_skip_dtim(struct iw
 }
 
 static void
-iwm_mvm_power_build_cmd(struct iwm_softc *sc, struct iwm_node *in,
+iwm_mvm_power_build_cmd(struct iwm_softc *sc, struct iwm_vap *ivp,
struct iwm_mac_power_cmd *cmd)
 {
-   struct ieee80211_node *ni = &in->in_ni;
+   struct ieee80211_node *ni = ivp->iv_vap.iv_bss;
int dtimper, dtimper_msec;
int keep_alive;
struct ieee80211com *ic = &sc->sc_ic;
struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
-   struct iwm_vap *ivp = IWM_VAP(vap);
 
cmd->id_and_color = htole32(IWM_FW_CMD_ID_AND_COLOR(ivp->id,
ivp->color));
@@ -319,11 +318,11 @@ iwm_mvm_power_build_cmd(struct iwm_softc
 }
 
 static int
-iwm_mvm_power_send_cmd(struct iwm_softc *sc, struct iwm_node *in)
+iwm_mvm_power_send_cmd(struct iwm_softc *sc, struct iwm_vap *ivp)
 {
struct iwm_mac_power_cmd cmd = {};
 
-   iwm_mvm_power_build_cmd(sc, in, &cmd);
+   iwm_mvm_power_build_cmd(sc, ivp, &cmd);
iwm_mvm_power_log(sc, &cmd);
 
return iwm_mvm_send_cmd_pdu(sc, IWM_MAC_PM_POWER_TABLE, 0,
@@ -331,12 +330,12 @@ iwm_mvm_power_send_cmd(struct iwm_softc 
 }
 
 static int
-_iwm_mvm_enable_beacon_filter(struct iwm_softc *sc, struct iwm_node *in,
+_iwm_mvm_enable_beacon_filter(struct iwm_softc *sc, struct iwm_vap *ivp,
struct iwm_beacon_filter_cmd *cmd)
 {
int ret;
 
-   iwm_mvm_beacon_filter_set_cqm_params(sc, in, cmd);
+   iwm_mvm_beacon_filter_set_cqm_params(sc, ivp, cmd);
ret = iwm_mvm_beacon_filter_send_cmd(sc, cmd);
 
if (!ret)
@@ -346,14 +345,14 @@ _iwm_mvm_enable_beacon_filter(struct iwm
 }
 
 int
-iwm_mvm_enable_beacon_filter(struct iwm_softc *sc, struct iwm_node *in)
+iwm_mvm_enable_beacon_filter(struct iwm_softc *sc, struct iwm_vap *ivp)
 {
struct iwm_beacon_filter_cmd cmd = {
IWM_BF_CMD_CONFIG_DEFAULTS,
.bf_enable_beacon_filter = htole32(1),
};
 
-   return _iwm_mvm_enable_beacon_filter(sc, in, &cmd);
+   return _iwm_mvm_enable_beacon_filter(sc, ivp, &cmd);
 }
 
 int
@@ -398,7 +397,7 @@ iwm_mvm_power_set_ps(struct iwm_softc *s
 }
 
 static int
-iwm_mvm_power_set_ba(struct iwm_softc *sc, struct iwm_node *in)
+iwm_mvm_power_set_ba(struct iwm_softc *sc, struct iwm_vap *ivp)
 {
struct iwm_beacon_filter_cmd cmd = {
IWM_BF_CMD_CONFIG_DEFAULTS,
@@ -410,7 +409,7 @@ iwm_mvm_power_set_ba(struct iwm_softc *s
 
sc->sc_bf.ba_enabled = !sc->sc_ps_disabled;
 
-   return _iwm_mvm_enable_beacon_filter(sc, in, &cmd);
+   return _iwm_mvm_enable_beacon_filter(sc, ivp, &cmd);
 }
 
 int
@@ -424,7 +423,7 @@ iwm_mvm_power_update_ps(struct iwm_softc
return ret;
 
if (vap != NULL)
-   return iwm_mvm_power_set_ba(sc, IWM_NODE(vap->iv_bss));
+   return iwm_mvm_power_set_ba(sc, IWM_VAP(vap));
 
return 0;
 }
@@ -440,13 +439,13 @@ iwm_mvm_power_update_mac(struct iwm_soft
return ret;
 
if (vap != NULL) {
-   ret = iwm_mvm_power_send_cmd(sc, IWM_NODE(vap->iv_bss));
+   ret = iwm_mvm_power_send_cmd(sc, IWM_V

svn commit: r318225 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 06:21:03 2017
New Revision: 318225
URL: https://svnweb.freebsd.org/changeset/base/318225

Log:
  [iwm] Already call iwm_mvm_power_update_mac() during SCAN<->AUTH paths.
  
  * Otherwise we would never update powersaving settings until we complete
an association, after the first authentication attempt.
  
  * This corresponds to what Linux iwlwifi seems to do.
  
  Obtained from:dragonflybsd.git 
aa128dc02a17c2e616232ef0fa997121e969c995

Modified:
  head/sys/dev/iwm/if_iwm.c

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 06:16:11 2017(r318224)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 06:21:03 2017(r318225)
@@ -4029,12 +4029,6 @@ iwm_auth(struct ieee80211vap *vap, struc
"%s: failed to add MAC\n", __func__);
goto out;
}
-   if ((error = iwm_mvm_power_update_mac(sc)) != 0) {
-   device_printf(sc->sc_dev,
-   "%s: failed to update power management\n",
-   __func__);
-   goto out;
-   }
}
 
if ((error = iwm_mvm_phy_ctxt_changed(sc, &sc->sc_phyctxt[0],
@@ -4050,6 +4044,12 @@ iwm_auth(struct ieee80211vap *vap, struc
"%s: binding update cmd\n", __func__);
goto out;
}
+   if ((error = iwm_mvm_power_update_mac(sc)) != 0) {
+   device_printf(sc->sc_dev,
+   "%s: failed to update power management\n",
+   __func__);
+   goto out;
+   }
if ((error = iwm_mvm_add_sta(sc, in)) != 0) {
device_printf(sc->sc_dev,
"%s: failed to add sta\n", __func__);
@@ -4408,6 +4408,12 @@ iwm_newstate(struct ieee80211vap *vap, e
 __func__, error);
 }
ivp->phy_ctxt = NULL;
+   error = iwm_mvm_power_update_mac(sc);
+   if (error != 0) {
+   device_printf(sc->sc_dev,
+   "%s: failed to update power management\n",
+   __func__);
+   }
IWM_UNLOCK(sc);
IEEE80211_LOCK(ic);
return myerr;
___
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: r318224 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 06:16:11 2017
New Revision: 318224
URL: https://svnweb.freebsd.org/changeset/base/318224

Log:
  [iwm] Refuse connection to APs with beacon interval < 16.
  
  Obtained from:dragonflybsd.git 
aba448de727e9b122adadeb36fd00a8ad6018d4f

Modified:
  head/sys/dev/iwm/if_iwm.c

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 06:05:34 2017(r318223)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 06:16:11 2017(r318224)
@@ -3976,6 +3976,21 @@ iwm_auth(struct ieee80211vap *vap, struc
 
in->in_assoc = 0;
 
+   /*
+* Firmware bug - it'll crash if the beacon interval is less
+* than 16. We can't avoid connecting at all, so refuse the
+* station state change, this will cause net80211 to abandon
+* attempts to connect to this AP, and eventually wpa_s will
+* blacklist the AP...
+*/
+   if (ni->ni_intval < 16) {
+   device_printf(sc->sc_dev,
+   "AP %s beacon interval is %d, refusing due to firmware 
bug!\n",
+   ether_sprintf(ni->ni_bssid), ni->ni_intval);
+   error = EINVAL;
+   goto out;
+   }
+
error = iwm_mvm_sf_config(sc, IWM_SF_FULL_ON);
if (error != 0)
return error;
___
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: r318223 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 06:05:34 2017
New Revision: 318223
URL: https://svnweb.freebsd.org/changeset/base/318223

Log:
  [iwm] Handle AUTH->SCAN/INIT and ASSOC->SCAN/INIT better
  
  * Tear down the relevant firmware state (i.e. the station, the vif binding)
in these transition cases.
  
  * Before this case would leave the firmware state lying around, resulting
in errors and firmware panics in the subsequent association attempts.
  
  Obtained from:dragonflybsd.git 
94b501399fde6368ae388a669c95b099a6e66e93

Modified:
  head/sys/dev/iwm/if_iwm.c

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 06:03:23 2017(r318222)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 06:05:34 2017(r318223)
@@ -4364,6 +4364,39 @@ iwm_newstate(struct ieee80211vap *vap, e
 
switch (nstate) {
case IEEE80211_S_INIT:
+   case IEEE80211_S_SCAN:
+   if (vap->iv_state == IEEE80211_S_AUTH ||
+   vap->iv_state == IEEE80211_S_ASSOC) {
+   int myerr;
+   IWM_UNLOCK(sc);
+   IEEE80211_LOCK(ic);
+   myerr = ivp->iv_newstate(vap, nstate, arg);
+   IEEE80211_UNLOCK(ic);
+   IWM_LOCK(sc);
+   in = IWM_NODE(vap->iv_bss);
+   error = iwm_mvm_rm_sta(sc, vap, in);
+if (error) {
+device_printf(sc->sc_dev,
+   "%s: Failed to remove station: %d\n",
+   __func__, error);
+   }
+   error = iwm_mvm_mac_ctxt_changed(sc, vap);
+if (error) {
+device_printf(sc->sc_dev,
+"%s: Failed to change mac context: %d\n",
+__func__, error);
+}
+error = iwm_mvm_binding_remove_vif(sc, ivp);
+if (error) {
+device_printf(sc->sc_dev,
+"%s: Failed to remove channel ctx: %d\n",
+__func__, error);
+}
+   ivp->phy_ctxt = NULL;
+   IWM_UNLOCK(sc);
+   IEEE80211_LOCK(ic);
+   return myerr;
+   }
break;
 
case IEEE80211_S_AUTH:
___
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: r318222 - in head/sys: conf dev/iwm modules/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 06:03:23 2017
New Revision: 318222
URL: https://svnweb.freebsd.org/changeset/base/318222

Log:
  [iwm] Factor out firmware station handling into if_iwm_sta.c.
  
  * This adds iwm_mvm_rm_sta(), which will be used to tear down firmware
state for better/cleaner iwm_newstate() handling.
  
  * Makes iwm_enable_txq() and iwm_mvm_flush_tx_path() non-static, add
the declarations to if_iwm_util.h for now.
  
  Obtained from:dragonflybsd.git 
85d1c6190c4c3564b1a347f253e823aa95c202b2

Added:
  head/sys/dev/iwm/if_iwm_sta.c   (contents, props changed)
  head/sys/dev/iwm/if_iwm_sta.h   (contents, props changed)
Modified:
  head/sys/conf/files
  head/sys/dev/iwm/if_iwm.c
  head/sys/dev/iwm/if_iwm_util.h
  head/sys/modules/iwm/Makefile

Modified: head/sys/conf/files
==
--- head/sys/conf/files Fri May 12 05:53:28 2017(r318221)
+++ head/sys/conf/files Fri May 12 06:03:23 2017(r318222)
@@ -1855,6 +1855,7 @@ dev/iwm/if_iwm_phy_ctxt.c optional iwm
 dev/iwm/if_iwm_phy_db.coptional iwm
 dev/iwm/if_iwm_power.c optional iwm
 dev/iwm/if_iwm_scan.c  optional iwm
+dev/iwm/if_iwm_sta.c   optional iwm
 dev/iwm/if_iwm_time_event.coptional iwm
 dev/iwm/if_iwm_util.c  optional iwm
 iwm3160fw.coptional iwm3160fw | iwmfw  \

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 05:53:28 2017(r318221)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 06:03:23 2017(r318222)
@@ -164,6 +164,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
@@ -265,7 +266,6 @@ static void iwm_mvm_nic_config(struct iw
 static int iwm_nic_rx_init(struct iwm_softc *);
 static int iwm_nic_tx_init(struct iwm_softc *);
 static int iwm_nic_init(struct iwm_softc *);
-static int iwm_enable_txq(struct iwm_softc *, int, int, int);
 static int iwm_trans_pcie_fw_alive(struct iwm_softc *, uint32_t);
 static int iwm_nvm_read_chunk(struct iwm_softc *, uint16_t, uint16_t,
uint16_t, uint8_t *, uint16_t *);
@@ -344,19 +344,6 @@ static int iwm_tx(struct iwm_softc *, st
struct ieee80211_node *, int);
 static int iwm_raw_xmit(struct ieee80211_node *, struct mbuf *,
 const struct ieee80211_bpf_params *);
-static int iwm_mvm_flush_tx_path(struct iwm_softc *sc,
- uint32_t tfd_msk, uint32_t flags);
-static int iwm_mvm_send_add_sta_cmd_status(struct iwm_softc *,
-   struct iwm_mvm_add_sta_cmd *,
-int *);
-static int iwm_mvm_sta_send_to_fw(struct iwm_softc *, struct iwm_node *,
-   int);
-static int iwm_mvm_add_sta(struct iwm_softc *, struct iwm_node *);
-static int iwm_mvm_update_sta(struct iwm_softc *, struct iwm_node *);
-static int iwm_mvm_add_int_sta_common(struct iwm_softc *,
-   struct iwm_int_sta *,
-  const uint8_t *, uint16_t, uint16_t);
-static int iwm_mvm_add_aux_sta(struct iwm_softc *);
 static int iwm_mvm_update_quotas(struct iwm_softc *, struct iwm_vap *);
 static int iwm_auth(struct ieee80211vap *, struct iwm_softc *);
 static int iwm_release(struct iwm_softc *, struct iwm_node *);
@@ -1532,7 +1519,7 @@ iwm_nic_init(struct iwm_softc *sc)
return 0;
 }
 
-static int
+int
 iwm_enable_txq(struct iwm_softc *sc, int sta_id, int qid, int fifo)
 {
if (!iwm_nic_lock(sc)) {
@@ -3884,137 +3871,6 @@ iwm_mvm_flush_tx_path(struct iwm_softc *
 }
 
 /*
- * BEGIN mvm/sta.c
- */
-
-static int
-iwm_mvm_send_add_sta_cmd_status(struct iwm_softc *sc,
-   struct iwm_mvm_add_sta_cmd *cmd, int *status)
-{
-   return iwm_mvm_send_cmd_pdu_status(sc, IWM_ADD_STA, sizeof(*cmd),
-   cmd, status);
-}
-
-/* send station add/update command to firmware */
-static int
-iwm_mvm_sta_send_to_fw(struct iwm_softc *sc, struct iwm_node *in, int update)
-{
-   struct iwm_vap *ivp = IWM_VAP(in->in_ni.ni_vap);
-   struct iwm_mvm_add_sta_cmd add_sta_cmd;
-   int ret;
-   uint32_t status;
-
-   memset(&add_sta_cmd, 0, sizeof(add_sta_cmd));
-
-   add_sta_cmd.sta_id = IWM_STATION_ID;
-   add_sta_cmd.mac_id_n_color
-   = htole32(IWM_FW_CMD_ID_AND_COLOR(ivp->id, ivp->color));
-   if (!update) {
-   int ac;
-   for (ac = 0; ac < WME_NUM_AC; ac++) {
-   add_sta_cmd.tfd_queue_msk |=
-   htole32(1 << iwm_mvm_ac_to_tx_fifo[ac]);
-   }
-   IEEE80211_ADDR_COPY(&add_sta_cmd.addr, in->in_ni.ni_bssid);

svn commit: r318221 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 05:53:28 2017
New Revision: 318221
URL: https://svnweb.freebsd.org/changeset/base/318221

Log:
  [iwm] Deduplicate code in iwm_auth() from an if condition.
  
  Obtained from:dragonflybsd.git 
03c6e6970115727c9d39f9358e0500ab4f4634cd

Modified:
  head/sys/dev/iwm/if_iwm.c

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 05:51:50 2017(r318220)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 05:53:28 2017(r318221)
@@ -4152,24 +4152,6 @@ iwm_auth(struct ieee80211vap *vap, struc
"%s: failed to update MAC\n", __func__);
goto out;
}
-   if ((error = iwm_mvm_phy_ctxt_changed(sc, &sc->sc_phyctxt[0],
-   in->in_ni.ni_chan, 1, 1)) != 0) {
-   device_printf(sc->sc_dev,
-   "%s: failed update phy ctxt\n", __func__);
-   goto out;
-   }
-   iv->phy_ctxt = &sc->sc_phyctxt[0];
-
-   if ((error = iwm_mvm_binding_add_vif(sc, iv)) != 0) {
-   device_printf(sc->sc_dev,
-   "%s: binding update cmd\n", __func__);
-   goto out;
-   }
-   if ((error = iwm_mvm_add_sta(sc, in)) != 0) {
-   device_printf(sc->sc_dev,
-   "%s: failed to add sta\n", __func__);
-   goto out;
-   }
} else {
if ((error = iwm_mvm_mac_ctxt_add(sc, vap)) != 0) {
device_printf(sc->sc_dev,
@@ -4182,25 +4164,25 @@ iwm_auth(struct ieee80211vap *vap, struc
__func__);
goto out;
}
-   if ((error = iwm_mvm_phy_ctxt_changed(sc, &sc->sc_phyctxt[0],
-   in->in_ni.ni_chan, 1, 1)) != 0) {
-   device_printf(sc->sc_dev,
-   "%s: failed add phy ctxt!\n", __func__);
-   error = ETIMEDOUT;
-   goto out;
-   }
-   iv->phy_ctxt = &sc->sc_phyctxt[0];
+   }
 
-   if ((error = iwm_mvm_binding_add_vif(sc, iv)) != 0) {
-   device_printf(sc->sc_dev,
-   "%s: binding add cmd\n", __func__);
-   goto out;
-   }
-   if ((error = iwm_mvm_add_sta(sc, in)) != 0) {
-   device_printf(sc->sc_dev,
-   "%s: failed to add sta\n", __func__);
-   goto out;
-   }
+   if ((error = iwm_mvm_phy_ctxt_changed(sc, &sc->sc_phyctxt[0],
+   in->in_ni.ni_chan, 1, 1)) != 0) {
+   device_printf(sc->sc_dev,
+   "%s: failed update phy ctxt\n", __func__);
+   goto out;
+   }
+   iv->phy_ctxt = &sc->sc_phyctxt[0];
+
+   if ((error = iwm_mvm_binding_add_vif(sc, iv)) != 0) {
+   device_printf(sc->sc_dev,
+   "%s: binding update cmd\n", __func__);
+   goto out;
+   }
+   if ((error = iwm_mvm_add_sta(sc, in)) != 0) {
+   device_printf(sc->sc_dev,
+   "%s: failed to add sta\n", __func__);
+   goto 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: r318220 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 05:51:50 2017
New Revision: 318220
URL: https://svnweb.freebsd.org/changeset/base/318220

Log:
  [iwm] No need for iwm_assoc() in AUTH->ASSOC transition.
  
  * Hence no need to keep stuff in separate iwm_assoc() function, just
inline the stuff into iwm_newstate().
  
  Obtained from:dragonflybsd.git 
e8f7d88e0d030f138f95ecdb7c1a729d9fb0d6ab

Modified:
  head/sys/dev/iwm/if_iwm.c

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 05:50:38 2017(r318219)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 05:51:50 2017(r318220)
@@ -359,7 +359,6 @@ static int  iwm_mvm_add_int_sta_common(st
 static int iwm_mvm_add_aux_sta(struct iwm_softc *);
 static int iwm_mvm_update_quotas(struct iwm_softc *, struct iwm_vap *);
 static int iwm_auth(struct ieee80211vap *, struct iwm_softc *);
-static int iwm_assoc(struct ieee80211vap *, struct iwm_softc *);
 static int iwm_release(struct iwm_softc *, struct iwm_node *);
 static struct ieee80211_node *
iwm_node_alloc(struct ieee80211vap *,
@@ -4166,9 +4165,9 @@ iwm_auth(struct ieee80211vap *vap, struc
"%s: binding update cmd\n", __func__);
goto out;
}
-   if ((error = iwm_mvm_update_sta(sc, in)) != 0) {
+   if ((error = iwm_mvm_add_sta(sc, in)) != 0) {
device_printf(sc->sc_dev,
-   "%s: failed to update sta\n", __func__);
+   "%s: failed to add sta\n", __func__);
goto out;
}
} else {
@@ -4220,28 +4219,6 @@ out:
 }
 
 static int
-iwm_assoc(struct ieee80211vap *vap, struct iwm_softc *sc)
-{
-   struct iwm_node *in = IWM_NODE(vap->iv_bss);
-   int error;
-
-   if ((error = iwm_mvm_update_sta(sc, in)) != 0) {
-   device_printf(sc->sc_dev,
-   "%s: failed to update STA\n", __func__);
-   return error;
-   }
-
-   in->in_assoc = 1;
-   if ((error = iwm_mvm_mac_ctxt_changed(sc, vap)) != 0) {
-   device_printf(sc->sc_dev,
-   "%s: failed to update MAC\n", __func__);
-   return error;
-   }
-
-   return 0;
-}
-
-static int
 iwm_release(struct iwm_softc *sc, struct iwm_node *in)
 {
uint32_t tfd_msk;
@@ -4556,7 +4533,6 @@ iwm_newstate(struct ieee80211vap *vap, e
device_printf(sc->sc_dev,
"%s: could not move to auth state: %d\n",
__func__, error);
-   break;
}
break;
 
@@ -4565,13 +4541,7 @@ iwm_newstate(struct ieee80211vap *vap, e
 * EBS may be disabled due to previous failures reported by FW.
 * Reset EBS status here assuming environment has been changed.
 */
-sc->last_ebs_successful = TRUE;
-   if ((error = iwm_assoc(vap, sc)) != 0) {
-   device_printf(sc->sc_dev,
-   "%s: failed to associate: %d\n", __func__,
-   error);
-   break;
-   }
+   sc->last_ebs_successful = TRUE;
break;
 
case IEEE80211_S_RUN:
@@ -4582,18 +4552,24 @@ iwm_newstate(struct ieee80211vap *vap, e
.flags = IWM_CMD_SYNC,
};
 
+   in = IWM_NODE(vap->iv_bss);
/* Update the association state, now we have it all */
/* (eg associd comes in at this point */
-   error = iwm_assoc(vap, sc);
+   error = iwm_mvm_update_sta(sc, in);
if (error != 0) {
device_printf(sc->sc_dev,
-   "%s: failed to update association state: %d\n",
-   __func__,
-   error);
-   break;
+   "%s: failed to update STA\n", __func__);
+   IWM_UNLOCK(sc);
+   IEEE80211_LOCK(ic);
+   return error;
+   }
+   in->in_assoc = 1;
+   error = iwm_mvm_mac_ctxt_changed(sc, vap);
+   if (error != 0) {
+   device_printf(sc->sc_dev,
+   "%s: failed to update MAC: %d\n", __func__, error);
}
 
-   in = IWM_NODE(vap->iv_bss);
iwm_mvm_enable_beacon_filter(sc, in);
iwm_mvm_power_update_mac(sc);
iwm_mvm_update_quotas(sc, ivp);
___
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: r318219 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 05:50:38 2017
New Revision: 318219
URL: https://svnweb.freebsd.org/changeset/base/318219

Log:
  [iwm] Properly implement iwm_wme_update callback function.
  
  * Inspired by iwn(4) and Linux iwlwifi.
  
  * Read wme parameters into a buffer within struct iwm_vap in
iwm_wme_update().
  
  * If we aren't associated yet, the new settings will soon be sent
by iwm_mvm_mac_ctxt_changed() during association.
  
  * If we are already associated, explicitly call iwm_mvm_mac_ctxt_changed()
from iwm_wme_update() to send the new settings to the firmware.
  
  * Change iwm_mvm_ac_to_tx_fifo mapping, to fit the freebsd net80211
WME stream class numbering, instead of Linux's enum ieee80211_ac_numbers.
  
  Obtained from:dragonflybsd.git 
b8bd6cd746d1f45e616ccfcbeed06dfe452a1108

Modified:
  head/sys/dev/iwm/if_iwm.c
  head/sys/dev/iwm/if_iwm_mac_ctxt.c
  head/sys/dev/iwm/if_iwm_mac_ctxt.h
  head/sys/dev/iwm/if_iwmvar.h

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 05:49:24 2017(r318218)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 05:50:38 2017(r318219)
@@ -1533,13 +1533,6 @@ iwm_nic_init(struct iwm_softc *sc)
return 0;
 }
 
-const uint8_t iwm_mvm_ac_to_tx_fifo[] = {
-   IWM_MVM_TX_FIFO_VO,
-   IWM_MVM_TX_FIFO_VI,
-   IWM_MVM_TX_FIFO_BE,
-   IWM_MVM_TX_FIFO_BK,
-};
-
 static int
 iwm_enable_txq(struct iwm_softc *sc, int sta_id, int qid, int fifo)
 {
@@ -4258,7 +4251,7 @@ iwm_release(struct iwm_softc *sc, struct
 * from RUN back to SCAN is:
 *
 * iwm_mvm_power_mac_disable(sc, in);
-* iwm_mvm_mac_ctxt_changed(sc, in);
+* iwm_mvm_mac_ctxt_changed(sc, vap);
 * iwm_mvm_rm_sta(sc, in);
 * iwm_mvm_update_quotas(sc, NULL);
 * iwm_mvm_mac_ctxt_changed(sc, in);
@@ -4295,7 +4288,7 @@ iwm_release(struct iwm_softc *sc, struct
 
iwm_mvm_power_mac_disable(sc, in);
 
-   if ((error = iwm_mvm_mac_ctxt_changed(sc, in)) != 0) {
+   if ((error = iwm_mvm_mac_ctxt_changed(sc, vap)) != 0) {
device_printf(sc->sc_dev, "mac ctxt change fail 1 %d\n", error);
return error;
}
@@ -4307,7 +4300,7 @@ iwm_release(struct iwm_softc *sc, struct
error = iwm_mvm_rm_sta(sc, in);
in->in_assoc = 0;
iwm_mvm_update_quotas(sc, NULL);
-   if ((error = iwm_mvm_mac_ctxt_changed(sc, in)) != 0) {
+   if ((error = iwm_mvm_mac_ctxt_changed(sc, vap)) != 0) {
device_printf(sc->sc_dev, "mac ctxt change fail 2 %d\n", error);
return error;
}
@@ -6260,12 +6253,47 @@ iwm_is_valid_ether_addr(uint8_t *addr)
 }
 
 static int
-iwm_update_edca(struct ieee80211com *ic)
+iwm_wme_update(struct ieee80211com *ic)
 {
+#define IWM_EXP2(x)((1 << (x)) - 1)/* CWmin = 2^ECWmin - 1 */
struct iwm_softc *sc = ic->ic_softc;
+   struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
+   struct iwm_vap *ivp = IWM_VAP(vap);
+   struct iwm_node *in;
+   struct wmeParams tmp[WME_NUM_AC];
+   int aci, error;
+
+   if (vap == NULL)
+   return (0);
+
+   IEEE80211_LOCK(ic);
+   for (aci = 0; aci < WME_NUM_AC; aci++)
+   tmp[aci] = ic->ic_wme.wme_chanParams.cap_wmeParams[aci];
+   IEEE80211_UNLOCK(ic);
+
+   IWM_LOCK(sc);
+   for (aci = 0; aci < WME_NUM_AC; aci++) {
+   const struct wmeParams *ac = &tmp[aci];
+   ivp->queue_params[aci].aifsn = ac->wmep_aifsn;
+   ivp->queue_params[aci].cw_min = IWM_EXP2(ac->wmep_logcwmin);
+   ivp->queue_params[aci].cw_max = IWM_EXP2(ac->wmep_logcwmax);
+   ivp->queue_params[aci].edca_txop =
+   IEEE80211_TXOP_TO_US(ac->wmep_txopLimit);
+   }
+   ivp->have_wme = TRUE;
+   if (ivp->is_uploaded && vap->iv_bss != NULL) {
+   in = IWM_NODE(vap->iv_bss);
+   if (in->in_assoc) {
+   if ((error = iwm_mvm_mac_ctxt_changed(sc, vap)) != 0) {
+   device_printf(sc->sc_dev,
+   "%s: failed to update MAC\n", __func__);
+   }
+   }
+   }
+   IWM_UNLOCK(sc);
 
-   device_printf(sc->sc_dev, "%s: called\n", __func__);
return (0);
+#undef IWM_EXP2
 }
 
 static void
@@ -6322,7 +6350,7 @@ iwm_preinit(void *arg)
ic->ic_set_channel = iwm_set_channel;
ic->ic_scan_curchan = iwm_scan_curchan;
ic->ic_scan_mindwell = iwm_scan_mindwell;
-   ic->ic_wme.wme_update = iwm_update_edca;
+   ic->ic_wme.wme_update = iwm_wme_update;
ic->ic_parent = iwm_parent;
ic->ic_transmit = iwm_transmit;
iwm_radiotap_attach(sc);
@@ -6380,6 +6408,8 @@ iwm_vap_create(struct ieee80211com *ic, 
ivp->id = IWM_DEFAULT_MACID;
ivp->color = IWM

svn commit: r318218 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 05:49:24 2017
New Revision: 318218
URL: https://svnweb.freebsd.org/changeset/base/318218

Log:
  [iwm] Process multiple frames per RX buffer.
  
  * Factor out iwm_handle_rxb() function from iwm_notif_intr().
  
  * Removing the IWM_FH_RCSR_CHNL0_RX_CONFIG_SINGLE_FRAME_MSK flag allows
the device to put multiple frames (both command responses and 80211
frames) into a single RX buffer.
  
  * Uses m_copym() to split up the receive buffers when multiple 80211
frames are received in one RX buffer. The effect is basically the same
as when using m_split(), but we want to keep the original mbuf around
when calling iwm_mvm_rx_rx_mpdu() to make error handling a bit easier
for now.
  
  * Contains a small optimization to avoid the m_copym() when only a single
80211 frame is received in one RX buffer (i.e. matching the existing
behaviour).
  
  Obtained from:dragonflybsd.git 
b5eb43f0280bbcfd26af51cf5a4b8e8ff3590b67

Modified:
  head/sys/dev/iwm/if_iwm.c
  head/sys/dev/iwm/if_iwmreg.h
  head/sys/dev/iwm/if_iwmvar.h

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 05:30:01 2017(r318217)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 05:49:24 2017(r318218)
@@ -169,6 +169,9 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
+/* From DragonflyBSD */
+#define mtodoff(m, t, off)  ((t)((m)->m_data + (off)))
+
 const uint8_t iwm_nvm_channels[] = {
/* 2.4 GHz */
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
@@ -320,16 +323,15 @@ static intiwm_rx_addbuf(struct iwm_soft
 static int iwm_mvm_get_signal_strength(struct iwm_softc *,
struct iwm_rx_phy_info *);
 static voidiwm_mvm_rx_rx_phy_cmd(struct iwm_softc *,
-  struct iwm_rx_packet *,
-  struct iwm_rx_data *);
+  struct iwm_rx_packet *);
 static int iwm_get_noise(struct iwm_softc *sc,
const struct iwm_mvm_statistics_rx_non_phy *);
-static voidiwm_mvm_rx_rx_mpdu(struct iwm_softc *, struct mbuf *);
+static boolean_t iwm_mvm_rx_rx_mpdu(struct iwm_softc *, struct mbuf *,
+   uint32_t, boolean_t);
 static int iwm_mvm_rx_tx_cmd_single(struct iwm_softc *,
  struct iwm_rx_packet *,
 struct iwm_node *);
-static voidiwm_mvm_rx_tx_cmd(struct iwm_softc *, struct iwm_rx_packet *,
-  struct iwm_rx_data *);
+static voidiwm_mvm_rx_tx_cmd(struct iwm_softc *, struct iwm_rx_packet *);
 static voidiwm_cmd_done(struct iwm_softc *, struct iwm_rx_packet *);
 #if 0
 static voidiwm_update_sched(struct iwm_softc *, int, int, uint8_t,
@@ -385,6 +387,7 @@ static const char *
 static voidiwm_nic_error(struct iwm_softc *);
 static voidiwm_nic_umac_error(struct iwm_softc *);
 #endif
+static voidiwm_handle_rxb(struct iwm_softc *, struct mbuf *);
 static voidiwm_notif_intr(struct iwm_softc *);
 static voidiwm_intr(void *);
 static int iwm_attach(device_t);
@@ -1432,14 +1435,21 @@ iwm_nic_rx_init(struct iwm_softc *sc)
IWM_WRITE(sc,
IWM_FH_RSCSR_CHNL0_STTS_WPTR_REG, sc->rxq.stat_dma.paddr >> 4);
 
-   /* Enable RX. */
+   /* Enable Rx DMA
+* XXX 5000 HW isn't supported by the iwm(4) driver.
+* IWM_FH_RCSR_CHNL0_RX_IGNORE_RXF_EMPTY is set because of HW bug in
+*  the credit mechanism in 5000 HW RX FIFO
+* Direct rx interrupts to hosts
+* Rx buffer size 4 or 8k or 12k
+* RB timeout 0x10
+* 256 RBDs
+*/
IWM_WRITE(sc, IWM_FH_MEM_RCSR_CHNL0_CONFIG_REG,
IWM_FH_RCSR_RX_CONFIG_CHNL_EN_ENABLE_VAL|
IWM_FH_RCSR_CHNL0_RX_IGNORE_RXF_EMPTY   |  /* HW bug */
IWM_FH_RCSR_CHNL0_RX_CONFIG_IRQ_DEST_INT_HOST_VAL   |
-   IWM_FH_RCSR_CHNL0_RX_CONFIG_SINGLE_FRAME_MSK|
-   (IWM_RX_RB_TIMEOUT << IWM_FH_RCSR_RX_CONFIG_REG_IRQ_RBTH_POS) |
IWM_FH_RCSR_RX_CONFIG_REG_VAL_RB_SIZE_4K|
+   (IWM_RX_RB_TIMEOUT << IWM_FH_RCSR_RX_CONFIG_REG_IRQ_RBTH_POS) |
IWM_RX_QUEUE_SIZE_LOG << IWM_FH_RCSR_RX_CONFIG_RBDCB_SIZE_POS);
 
IWM_WRITE_1(sc, IWM_CSR_INT_COALESCING, IWM_HOST_INT_TIMEOUT_DEF);
@@ -3126,13 +3136,11 @@ iwm_mvm_get_signal_strength(struct iwm_s
 }
 
 static void
-iwm_mvm_rx_rx_phy_cmd(struct iwm_softc *sc,
-   struct iwm_rx_packet *pkt, struct iwm_rx_data *data)
+iwm_mvm_rx_rx_phy_cmd(struct iwm_softc *sc, struct iwm_rx_packet *pkt)
 {
struct iwm_rx_phy_info *phy_info = (void *)pkt->data;
 
IWM_DPRINTF(sc, IWM_DEBUG_RECV, "received PHY stats\n");
-   bus_dmamap_sync(sc->rxq.data_dmat, data->map, B

svn commit: r318217 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 05:30:01 2017
New Revision: 318217
URL: https://svnweb.freebsd.org/changeset/base/318217

Log:
  [iwm] Change UCODE_TLV_API #define-s from bitmasks to indexes.
  
  * Fixes oversight from commit 757eecf0e6c92745aa2eee95811e573c8300850e.
fw_has_api now uses the isset macro instead of a simple logical-and.
  
  Obtained from:dragonflybsd.git 
c00575de8491dc402abf52c8c7e1cca1ef79e257

Modified:
  head/sys/dev/iwm/if_iwmreg.h

Modified: head/sys/dev/iwm/if_iwmreg.h
==
--- head/sys/dev/iwm/if_iwmreg.hFri May 12 05:28:49 2017
(r318216)
+++ head/sys/dev/iwm/if_iwmreg.hFri May 12 05:30:01 2017
(r318217)
@@ -669,12 +669,12 @@ P2P_PS_SCM\31UAPSD_SUPPORT\32EBS\33P2P_P
  * @IWM_NUM_UCODE_TLV_API: number of bits used
  */
 enum iwm_ucode_tlv_api {
-   IWM_UCODE_TLV_API_FRAGMENTED_SCAN   = (1 << 8),
-   IWM_UCODE_TLV_API_WIFI_MCC_UPDATE   = (1 << 9),
-   IWM_UCODE_TLV_API_WIDE_CMD_HDR  = (1 << 14),
-   IWM_UCODE_TLV_API_LQ_SS_PARAMS  = (1 << 18),
-   IWM_UCODE_TLV_API_EXT_SCAN_PRIORITY = (1 << 24),
-   IWM_UCODE_TLV_API_TX_POWER_CHAIN= (1 << 27),
+   IWM_UCODE_TLV_API_FRAGMENTED_SCAN   = 8,
+   IWM_UCODE_TLV_API_WIFI_MCC_UPDATE   = 9,
+   IWM_UCODE_TLV_API_WIDE_CMD_HDR  = 14,
+   IWM_UCODE_TLV_API_LQ_SS_PARAMS  = 18,
+   IWM_UCODE_TLV_API_EXT_SCAN_PRIORITY = 24,
+   IWM_UCODE_TLV_API_TX_POWER_CHAIN= 27,
 
IWM_NUM_UCODE_TLV_API = 32
 };
___
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: r318216 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 05:28:49 2017
New Revision: 318216
URL: https://svnweb.freebsd.org/changeset/base/318216

Log:
  [iwm] Sync iwm_read_firmware()'s loop to iwlwifi's code.
  
  Obtained from:dragonflybsd.git 
d1c10ccfcf2d6d2a664f17197add0b4f9181

Modified:
  head/sys/dev/iwm/if_iwm.c

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 05:22:29 2017(r318215)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 05:28:49 2017(r318216)
@@ -549,12 +549,14 @@ iwm_read_firmware(struct iwm_softc *sc, 
 {
struct iwm_fw_info *fw = &sc->sc_fw;
const struct iwm_tlv_ucode_header *uhdr;
-   struct iwm_ucode_tlv tlv;
+   const struct iwm_ucode_tlv *tlv;
struct iwm_ucode_capabilities *capa = &sc->ucode_capa;
enum iwm_ucode_tlv_type tlv_type;
const struct firmware *fwp;
const uint8_t *data;
+   uint32_t tlv_len;
uint32_t usniffer_img;
+   const uint8_t *tlv_data;
uint32_t paging_mem_size;
int num_of_cpus;
int error = 0;
@@ -607,24 +609,20 @@ iwm_read_firmware(struct iwm_softc *sc, 
goto out;
}
 
-   snprintf(sc->sc_fwver, sizeof(sc->sc_fwver), "%d.%d (API ver %d)",
+   snprintf(sc->sc_fwver, sizeof(sc->sc_fwver), "%u.%u (API ver %u)",
IWM_UCODE_MAJOR(le32toh(uhdr->ver)),
IWM_UCODE_MINOR(le32toh(uhdr->ver)),
IWM_UCODE_API(le32toh(uhdr->ver)));
data = uhdr->data;
len = fw->fw_fp->datasize - sizeof(*uhdr);
 
-   while (len >= sizeof(tlv)) {
-   size_t tlv_len;
-   const void *tlv_data;
-
-   memcpy(&tlv, data, sizeof(tlv));
-   tlv_len = le32toh(tlv.length);
-   tlv_type = le32toh(tlv.type);
-
-   len -= sizeof(tlv);
-   data += sizeof(tlv);
-   tlv_data = data;
+   while (len >= sizeof(*tlv)) {
+   len -= sizeof(*tlv);
+   tlv = (const void *)data;
+
+   tlv_len = le32toh(tlv->length);
+   tlv_type = le32toh(tlv->type);
+   tlv_data = tlv->data;
 
if (len < tlv_len) {
device_printf(sc->sc_dev,
@@ -633,19 +631,21 @@ iwm_read_firmware(struct iwm_softc *sc, 
error = EINVAL;
goto parse_out;
}
+   len -= roundup2(tlv_len, 4);
+   data += sizeof(tlv) + roundup2(tlv_len, 4);
 
switch ((int)tlv_type) {
case IWM_UCODE_TLV_PROBE_MAX_LEN:
-   if (tlv_len < sizeof(uint32_t)) {
+   if (tlv_len != sizeof(uint32_t)) {
device_printf(sc->sc_dev,
-   "%s: PROBE_MAX_LEN (%d) < 
sizeof(uint32_t)\n",
+   "%s: PROBE_MAX_LEN (%d) != 
sizeof(uint32_t)\n",
__func__,
(int) tlv_len);
error = EINVAL;
goto parse_out;
}
capa->max_probe_length =
-   le32toh(*(const uint32_t *)tlv_data);
+   le32_to_cpup((const uint32_t *)tlv_data);
/* limit it to something sensible */
if (capa->max_probe_length >
IWM_SCAN_OFFLOAD_PROBE_REQ_SIZE) {
@@ -676,6 +676,14 @@ iwm_read_firmware(struct iwm_softc *sc, 
error = EINVAL;
goto parse_out;
}
+   if (tlv_len % sizeof(uint32_t)) {
+   device_printf(sc->sc_dev,
+   "%s: IWM_UCODE_TLV_FLAGS: tlv_len (%d) %% 
sizeof(uint32_t)\n",
+   __func__,
+   (int) tlv_len);
+   error = EINVAL;
+   goto parse_out;
+   }
/*
 * Apparently there can be many flags, but Linux driver
 * parses only the first one, and so do we.
@@ -687,7 +695,7 @@ iwm_read_firmware(struct iwm_softc *sc, 
 *  2) TLV_FLAGS contains TLV_FLAGS_PAN
 * ==> this resets TLV_PAN to itself... hnnnk
 */
-   capa->flags = le32toh(*(const uint32_t *)tlv_data);
+   capa->flags = le32_to_cpup((const uint32_t *)tlv_data);
break;
case IWM_UCODE_TLV_CSCHEME:
if ((error = iwm_store_cscheme(sc,
@@ -708,7 +716,7 @@ iwm_read_firmware(struct iwm_softc *sc, 

svn commit: r318215 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 05:22:29 2017
New Revision: 318215
URL: https://svnweb.freebsd.org/changeset/base/318215

Log:
  [iwm] change the check for ADD_STA status, use IWM_ADD_STA_STATUS_MASK.
  
  Obtained from:dragonflybsd.git 
74d41163ddac72b0d7ea7b7873d53fe134723a12

Modified:
  head/sys/dev/iwm/if_iwm.c

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 05:21:50 2017(r318214)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 05:22:29 2017(r318215)
@@ -3925,7 +3925,7 @@ iwm_mvm_sta_send_to_fw(struct iwm_softc 
if (ret)
return ret;
 
-   switch (status) {
+   switch (status & IWM_ADD_STA_STATUS_MASK) {
case IWM_ADD_STA_SUCCESS:
break;
default:
@@ -3971,7 +3971,7 @@ iwm_mvm_add_int_sta_common(struct iwm_so
if (ret)
return ret;
 
-   switch (status) {
+   switch (status & IWM_ADD_STA_STATUS_MASK) {
case IWM_ADD_STA_SUCCESS:
IWM_DPRINTF(sc, IWM_DEBUG_RESET,
"%s: Internal station added.\n", __func__);
___
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: r318214 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 05:21:50 2017
New Revision: 318214
URL: https://svnweb.freebsd.org/changeset/base/318214

Log:
  [iwm] Sanity check channel for IEEE80211_CHAN_ANYC in if_iwm_mac_ctxt.c.
  
  * This avoids panicing in some broken vap state handling cases.
  
  Obtained from:dragonflybsd.git 
10d5b77b5421e7cbcc426160edbe858d1d610a29

Modified:
  head/sys/dev/iwm/if_iwm_mac_ctxt.c

Modified: head/sys/dev/iwm/if_iwm_mac_ctxt.c
==
--- head/sys/dev/iwm/if_iwm_mac_ctxt.c  Fri May 12 05:21:02 2017
(r318213)
+++ head/sys/dev/iwm/if_iwm_mac_ctxt.c  Fri May 12 05:21:50 2017
(r318214)
@@ -308,7 +308,7 @@ iwm_mvm_mac_ctxt_cmd_common(struct iwm_s
/*
 * Default to 2ghz if no node information is given.
 */
-   if (in) {
+   if (in && in->in_ni.ni_chan != IEEE80211_CHAN_ANYC) {
is2ghz = !! IEEE80211_IS_CHAN_2GHZ(in->in_ni.ni_chan);
} else {
is2ghz = 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: r318213 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 05:21:02 2017
New Revision: 318213
URL: https://svnweb.freebsd.org/changeset/base/318213

Log:
  [if_iwm] Get rid of another usage of the IWM_DEFAULT_MACID/_COLOR constant.
  
  Obtained from:dragonflybsd.git 
c009badecf7b1389cd86adde9fd35f6113c75b5b

Modified:
  head/sys/dev/iwm/if_iwm.c

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 05:19:08 2017(r318212)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 05:21:02 2017(r318213)
@@ -3895,6 +3895,7 @@ iwm_mvm_send_add_sta_cmd_status(struct i
 static int
 iwm_mvm_sta_send_to_fw(struct iwm_softc *sc, struct iwm_node *in, int update)
 {
+   struct iwm_vap *ivp = IWM_VAP(in->in_ni.ni_vap);
struct iwm_mvm_add_sta_cmd add_sta_cmd;
int ret;
uint32_t status;
@@ -3903,8 +3904,7 @@ iwm_mvm_sta_send_to_fw(struct iwm_softc 
 
add_sta_cmd.sta_id = IWM_STATION_ID;
add_sta_cmd.mac_id_n_color
-   = htole32(IWM_FW_CMD_ID_AND_COLOR(IWM_DEFAULT_MACID,
-   IWM_DEFAULT_COLOR));
+   = htole32(IWM_FW_CMD_ID_AND_COLOR(ivp->id, ivp->color));
if (!update) {
int ac;
for (ac = 0; ac < WME_NUM_AC; ac++) {
___
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: r318212 - head/sys/dev/iwm

2017-05-11 Thread Adrian Chadd
Author: adrian
Date: Fri May 12 05:19:08 2017
New Revision: 318212
URL: https://svnweb.freebsd.org/changeset/base/318212

Log:
  [if_iwm] Partly sync if_iwm_binding.c to Linux iwlwifi code.
  
  * Store macid and color values in struct iwm_vap, to avoid hardcoded
constants a bit.
  
  * Add iwm_mvm_binding_remove_vif() function (will be used in disconnecting
from an access point without resetting the whole device).
  
  * Not adding code from Linux iwlwifi yet, to handle one PHY context to
be bound to several VAPs/virtual-interfaces, it's definitely not needed
in the near future.
  
  Obtained from:dragonflybsd.git 
f16ef74977e51e1bfc7a625dd18b98b02158e0e5

Modified:
  head/sys/dev/iwm/if_iwm.c
  head/sys/dev/iwm/if_iwm_binding.c
  head/sys/dev/iwm/if_iwm_binding.h
  head/sys/dev/iwm/if_iwm_mac_ctxt.c
  head/sys/dev/iwm/if_iwm_power.c
  head/sys/dev/iwm/if_iwm_time_event.c
  head/sys/dev/iwm/if_iwm_time_event.h
  head/sys/dev/iwm/if_iwmvar.h

Modified: head/sys/dev/iwm/if_iwm.c
==
--- head/sys/dev/iwm/if_iwm.c   Fri May 12 05:17:49 2017(r318211)
+++ head/sys/dev/iwm/if_iwm.c   Fri May 12 05:19:08 2017(r318212)
@@ -4156,7 +4156,7 @@ iwm_auth(struct ieee80211vap *vap, struc
}
iv->phy_ctxt = &sc->sc_phyctxt[0];
 
-   if ((error = iwm_mvm_binding_update(sc, iv)) != 0) {
+   if ((error = iwm_mvm_binding_add_vif(sc, iv)) != 0) {
device_printf(sc->sc_dev,
"%s: binding update cmd\n", __func__);
goto out;
@@ -4205,7 +4205,7 @@ iwm_auth(struct ieee80211vap *vap, struc
 */
/* XXX duration is in units of TU, not MS */
duration = IWM_MVM_TE_SESSION_PROTECTION_MAX_TIME_MS;
-   iwm_mvm_protect_session(sc, in, duration, 500 /* XXX magic number */);
+   iwm_mvm_protect_session(sc, iv, duration, 500 /* XXX magic number */);
DELAY(100);
 
error = 0;
@@ -4250,7 +4250,7 @@ iwm_release(struct iwm_softc *sc, struct
 * iwm_mvm_rm_sta(sc, in);
 * iwm_mvm_update_quotas(sc, NULL);
 * iwm_mvm_mac_ctxt_changed(sc, in);
-* iwm_mvm_binding_remove_vif(sc, in);
+* iwm_mvm_binding_remove_vif(sc, IWM_VAP(in->in_ni.ni_vap));
 * iwm_mvm_mac_ctxt_remove(sc, in);
 *
 * However, that freezes the device not matter which permutations
@@ -4299,7 +4299,7 @@ iwm_release(struct iwm_softc *sc, struct
device_printf(sc->sc_dev, "mac ctxt change fail 2 %d\n", error);
return error;
}
-   iwm_mvm_binding_remove_vif(sc, in);
+   iwm_mvm_binding_remove_vif(sc, IWM_VAP(in->in_ni.ni_vap));
 
iwm_mvm_mac_ctxt_remove(sc, in);
 
@@ -6303,6 +6303,9 @@ iwm_vap_create(struct ieee80211com *ic, 
ivp->iv_newstate = vap->iv_newstate;
vap->iv_newstate = iwm_newstate;
 
+   ivp->id = IWM_DEFAULT_MACID;
+   ivp->color = IWM_DEFAULT_COLOR;
+
ieee80211_ratectl_init(vap);
/* Complete setup. */
ieee80211_vap_attach(vap, iwm_media_change, ieee80211_media_status,

Modified: head/sys/dev/iwm/if_iwm_binding.c
==
--- head/sys/dev/iwm/if_iwm_binding.c   Fri May 12 05:17:49 2017
(r318211)
+++ head/sys/dev/iwm/if_iwm_binding.c   Fri May 12 05:19:08 2017
(r318212)
@@ -31,7 +31,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2007 - 2013 Intel Corporation. All rights reserved.
+ * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -51,13 +51,12 @@
  * in the file called COPYING.
  *
  * Contact Information:
- *  Intel Linux Wireless 
+ *  Intel Linux Wireless 
  * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
  *
- *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2013 Intel Corporation. All rights reserved.
+ * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -87,21 +86,6 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-/*-
- * Copyright (c) 2007-2010 Damien Bergamini 
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER 

svn commit: r318211 - head/contrib/netbsd-tests/lib/libc/ssp

2017-05-11 Thread Ngie Cooper
Author: ngie
Date: Fri May 12 05:17:49 2017
New Revision: 318211
URL: https://svnweb.freebsd.org/changeset/base/318211

Log:
  Fix up previous commit
  
  - Apply the logic to the FreeBSD block
  - Fix a typo with the getconf(1) call that I would have caught, were
it not for the fact that I got the blocks wrong.
  - Consolidate the hardcoded buffer sizes to the NetBSD block.
  
  This would have been discovered had I run the test on a system where
  PATH_MAX != 1024 (I don't have that at my disposal right at this moment).
  
  MFC after:3 weeks
  MFC with: r318210
  Sponsored by: Dell EMC Isilon

Modified:
  head/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh

Modified: head/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh
==
--- head/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh Fri May 12 05:06:48 
2017(r318210)
+++ head/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh Fri May 12 05:17:49 
2017(r318211)
@@ -386,14 +386,15 @@ read_body()
 {
prog="$(atf_get_srcdir)/h_read"
 
-   h_pass "$prog 1024" "echo foo |"
# Begin FreeBSD
if true; then
-   h_fail "$prog 1027" "echo bar |"
+   MAX_PATH=$(getconf _XOPEN_PATH_MAX) || atf_fail "getconf failed"
+   h_pass "$prog $MAX_PATH" "echo foo |"
+   h_fail "$prog $(( $MAX_PATH + 3 ))" "echo bar |"
else
# End FreeBSD
-   MAX_PATH=$(getconf _XOPEN_MAX_PATH) || atf_fail "getconf failed"
-   h_fail "$prog $(( $MAX_PATH + 1))" "echo bar |"
+   h_pass "$prog 1024" "echo foo |"
+   h_fail "$prog 1025" "echo bar |"
# Begin FreeBSD
fi
# End FreeBSD
___
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: r318210 - head/contrib/netbsd-tests/lib/libc/ssp

2017-05-11 Thread Ngie Cooper
Author: ngie
Date: Fri May 12 05:06:48 2017
New Revision: 318210
URL: https://svnweb.freebsd.org/changeset/base/318210

Log:
  ssp_test:read:: query the value of MAXPATHLEN via getconf(1)
  
  In the event the value of PATH_MAX was changed, the assumption that
  MAXPATHLEN is 1024 (and hence the buffer length required to trigger
  SSP to fail for read(2)) would be invalidated. Query getconf(1) for
  the actual value of MAXPATHLEN via _XOPEN_PATH_MAX instead, and
  increment the value by 1 to ensure that the SSP support tests the
  stack smashing support properly.
  
  MFC after:3 weeks
  Sponsored by: Dell EMC Isilon

Modified:
  head/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh

Modified: head/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh
==
--- head/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh Fri May 12 04:10:02 
2017(r318209)
+++ head/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh Fri May 12 05:06:48 
2017(r318210)
@@ -392,7 +392,8 @@ read_body()
h_fail "$prog 1027" "echo bar |"
else
# End FreeBSD
-   h_fail "$prog 1025" "echo bar |"
+   MAX_PATH=$(getconf _XOPEN_MAX_PATH) || atf_fail "getconf failed"
+   h_fail "$prog $(( $MAX_PATH + 1))" "echo bar |"
# Begin FreeBSD
fi
# End FreeBSD
___
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: r318209 - head/sys/dev/dpaa

2017-05-11 Thread Justin Hibbits
Author: jhibbits
Date: Fri May 12 04:10:02 2017
New Revision: 318209
URL: https://svnweb.freebsd.org/changeset/base/318209

Log:
  Use UMA_ALIGN_PTR to specify pointer alignment
  
  Suggested by: jhb

Modified:
  head/sys/dev/dpaa/if_dtsec_rm.c

Modified: head/sys/dev/dpaa/if_dtsec_rm.c
==
--- head/sys/dev/dpaa/if_dtsec_rm.c Fri May 12 03:44:20 2017
(r318208)
+++ head/sys/dev/dpaa/if_dtsec_rm.c Fri May 12 04:10:02 2017
(r318209)
@@ -115,7 +115,7 @@ dtsec_rm_fi_pool_init(struct dtsec_softc
 
sc->sc_fi_zone = uma_zcreate(sc->sc_fi_zname,
sizeof(struct dtsec_rm_frame_info), NULL, NULL, NULL, NULL,
-   sizeof(void *) - 1, 0);
+   UMA_ALIGN_PTR, 0);
if (sc->sc_fi_zone == NULL)
return (EIO);
 
___
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: r318208 - stable/10/sys/amd64/pci

2017-05-11 Thread Sepherosa Ziehau
Author: sephe
Date: Fri May 12 03:44:20 2017
New Revision: 318208
URL: https://svnweb.freebsd.org/changeset/base/318208

Log:
  MFC 317786
  
  pcicfg: Fix direct calls of pci_cfg{read,write} on systems w/o PCI host 
bridge.
  
  Reported by:dexuan@
  Reviewed by:jhb@
  Sponsored by:   Microsoft
  Differential Revision: https://reviews.freebsd.org/D10564

Modified:
  stable/10/sys/amd64/pci/pci_cfgreg.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/amd64/pci/pci_cfgreg.c
==
--- stable/10/sys/amd64/pci/pci_cfgreg.cFri May 12 03:06:45 2017
(r318207)
+++ stable/10/sys/amd64/pci/pci_cfgreg.cFri May 12 03:44:20 2017
(r318208)
@@ -64,6 +64,7 @@ static vm_offset_t pcie_base;
 static int pcie_minbus, pcie_maxbus;
 static uint32_t pcie_badslots;
 static struct mtx pcicfg_mtx;
+MTX_SYSINIT(pcicfg_mtx, &pcicfg_mtx, "pcicfg_mtx", MTX_SPIN);
 static int mcfg_enable = 1;
 TUNABLE_INT("hw.pci.mcfg", &mcfg_enable);
 SYSCTL_INT(_hw_pci, OID_AUTO, mcfg, CTLFLAG_RDTUN, &mcfg_enable, 0,
@@ -75,15 +76,9 @@ SYSCTL_INT(_hw_pci, OID_AUTO, mcfg, CTLF
 int
 pci_cfgregopen(void)
 {
-   static int once = 0;
uint64_t pciebar;
uint16_t did, vid;
 
-   if (!once) {
-   mtx_init(&pcicfg_mtx, "pcicfg", NULL, MTX_SPIN);
-   once = 1;
-   }
-
if (cfgmech != CFGMECH_NONE)
return (1);
cfgmech = CFGMECH_1;
@@ -139,6 +134,9 @@ pci_cfgregread(int bus, int slot, int fu
 {
uint32_t line;
 
+   if (cfgmech == CFGMECH_NONE)
+   return (0x);
+
/*
 * Some BIOS writers seem to want to ignore the spec and put
 * 0 in the intline rather than 255 to indicate none.  Some use
@@ -163,6 +161,9 @@ void
 pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int 
bytes)
 {
 
+   if (cfgmech == CFGMECH_NONE)
+   return;
+
if (cfgmech == CFGMECH_PCIE &&
(bus >= pcie_minbus && bus <= pcie_maxbus) &&
(bus != 0 || !(1 << slot & pcie_badslots)))
___
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: r318207 - stable/11/sys/amd64/pci

2017-05-11 Thread Sepherosa Ziehau
Author: sephe
Date: Fri May 12 03:06:45 2017
New Revision: 318207
URL: https://svnweb.freebsd.org/changeset/base/318207

Log:
  MFC 317786
  
  pcicfg: Fix direct calls of pci_cfg{read,write} on systems w/o PCI host 
bridge.
  
  Reported by:dexuan@
  Reviewed by:jhb@
  Sponsored by:   Microsoft
  Differential Revision: https://reviews.freebsd.org/D10564

Modified:
  stable/11/sys/amd64/pci/pci_cfgreg.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/amd64/pci/pci_cfgreg.c
==
--- stable/11/sys/amd64/pci/pci_cfgreg.cFri May 12 02:32:01 2017
(r318206)
+++ stable/11/sys/amd64/pci/pci_cfgreg.cFri May 12 03:06:45 2017
(r318207)
@@ -64,6 +64,7 @@ static vm_offset_t pcie_base;
 static int pcie_minbus, pcie_maxbus;
 static uint32_t pcie_badslots;
 static struct mtx pcicfg_mtx;
+MTX_SYSINIT(pcicfg_mtx, &pcicfg_mtx, "pcicfg_mtx", MTX_SPIN);
 static int mcfg_enable = 1;
 SYSCTL_INT(_hw_pci, OID_AUTO, mcfg, CTLFLAG_RDTUN, &mcfg_enable, 0,
 "Enable support for PCI-e memory mapped config access");
@@ -74,15 +75,9 @@ SYSCTL_INT(_hw_pci, OID_AUTO, mcfg, CTLF
 int
 pci_cfgregopen(void)
 {
-   static int once = 0;
uint64_t pciebar;
uint16_t did, vid;
 
-   if (!once) {
-   mtx_init(&pcicfg_mtx, "pcicfg", NULL, MTX_SPIN);
-   once = 1;
-   }
-
if (cfgmech != CFGMECH_NONE)
return (1);
cfgmech = CFGMECH_1;
@@ -138,6 +133,9 @@ pci_cfgregread(int bus, int slot, int fu
 {
uint32_t line;
 
+   if (cfgmech == CFGMECH_NONE)
+   return (0x);
+
/*
 * Some BIOS writers seem to want to ignore the spec and put
 * 0 in the intline rather than 255 to indicate none.  Some use
@@ -162,6 +160,9 @@ void
 pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int 
bytes)
 {
 
+   if (cfgmech == CFGMECH_NONE)
+   return;
+
if (cfgmech == CFGMECH_PCIE &&
(bus >= pcie_minbus && bus <= pcie_maxbus) &&
(bus != 0 || !(1 << slot & pcie_badslots)))
___
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: r318206 - in stable: 10/contrib/ipfilter/tools 11/contrib/ipfilter/tools

2017-05-11 Thread Cy Schubert
Author: cy
Date: Fri May 12 02:32:01 2017
New Revision: 318206
URL: https://svnweb.freebsd.org/changeset/base/318206

Log:
  MFC 317830:
  
  Ifdef out a redundant if statement when INET6 is disabled.

Modified:
  stable/10/contrib/ipfilter/tools/ippool.c
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/contrib/ipfilter/tools/ippool.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/10/contrib/ipfilter/tools/ippool.c
==
--- stable/10/contrib/ipfilter/tools/ippool.c   Fri May 12 02:26:39 2017
(r318205)
+++ stable/10/contrib/ipfilter/tools/ippool.c   Fri May 12 02:32:01 2017
(r318206)
@@ -1050,7 +1050,9 @@ setnodeaddr(int type, int role, void *pt
if (type == IPLT_POOL) {
ip_pool_node_t *node = ptr;
 
+#ifdef USE_INET6
if (node->ipn_addr.adf_family == AF_INET)
+#endif
node->ipn_addr.adf_len = offsetof(addrfamily_t,
  adf_addr) +
 sizeof(struct in_addr);
___
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: r318206 - in stable: 10/contrib/ipfilter/tools 11/contrib/ipfilter/tools

2017-05-11 Thread Cy Schubert
Author: cy
Date: Fri May 12 02:32:01 2017
New Revision: 318206
URL: https://svnweb.freebsd.org/changeset/base/318206

Log:
  MFC 317830:
  
  Ifdef out a redundant if statement when INET6 is disabled.

Modified:
  stable/11/contrib/ipfilter/tools/ippool.c
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/contrib/ipfilter/tools/ippool.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/contrib/ipfilter/tools/ippool.c
==
--- stable/11/contrib/ipfilter/tools/ippool.c   Fri May 12 02:26:39 2017
(r318205)
+++ stable/11/contrib/ipfilter/tools/ippool.c   Fri May 12 02:32:01 2017
(r318206)
@@ -1047,7 +1047,9 @@ setnodeaddr(int type, int role, void *pt
if (type == IPLT_POOL) {
ip_pool_node_t *node = ptr;
 
+#ifdef USE_INET6
if (node->ipn_addr.adf_family == AF_INET)
+#endif
node->ipn_addr.adf_len = offsetof(addrfamily_t,
  adf_addr) +
 sizeof(struct in_addr);
___
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: r318205 - in stable: 10/contrib/ipfilter/tools 11/contrib/ipfilter/tools

2017-05-11 Thread Cy Schubert
Author: cy
Date: Fri May 12 02:26:39 2017
New Revision: 318205
URL: https://svnweb.freebsd.org/changeset/base/318205

Log:
  Revert r318203: Neglected to put "MFC 318203:" in the log.
  
  Pointy hat to:cy

Modified:
  stable/10/contrib/ipfilter/tools/ippool.c
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/contrib/ipfilter/tools/ippool.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/10/contrib/ipfilter/tools/ippool.c
==
--- stable/10/contrib/ipfilter/tools/ippool.c   Fri May 12 02:12:38 2017
(r318204)
+++ stable/10/contrib/ipfilter/tools/ippool.c   Fri May 12 02:26:39 2017
(r318205)
@@ -1050,9 +1050,7 @@ setnodeaddr(int type, int role, void *pt
if (type == IPLT_POOL) {
ip_pool_node_t *node = ptr;
 
-#ifdef USE_INET6
if (node->ipn_addr.adf_family == AF_INET)
-#endif
node->ipn_addr.adf_len = offsetof(addrfamily_t,
  adf_addr) +
 sizeof(struct in_addr);
___
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: r318205 - in stable: 10/contrib/ipfilter/tools 11/contrib/ipfilter/tools

2017-05-11 Thread Cy Schubert
Author: cy
Date: Fri May 12 02:26:39 2017
New Revision: 318205
URL: https://svnweb.freebsd.org/changeset/base/318205

Log:
  Revert r318203: Neglected to put "MFC 318203:" in the log.
  
  Pointy hat to:cy

Modified:
  stable/11/contrib/ipfilter/tools/ippool.c
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/contrib/ipfilter/tools/ippool.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/contrib/ipfilter/tools/ippool.c
==
--- stable/11/contrib/ipfilter/tools/ippool.c   Fri May 12 02:12:38 2017
(r318204)
+++ stable/11/contrib/ipfilter/tools/ippool.c   Fri May 12 02:26:39 2017
(r318205)
@@ -1047,9 +1047,7 @@ setnodeaddr(int type, int role, void *pt
if (type == IPLT_POOL) {
ip_pool_node_t *node = ptr;
 
-#ifdef USE_INET6
if (node->ipn_addr.adf_family == AF_INET)
-#endif
node->ipn_addr.adf_len = offsetof(addrfamily_t,
  adf_addr) +
 sizeof(struct in_addr);
___
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: r318204 - stable/11/share/man/man4

2017-05-11 Thread Glen Barber
Author: gjb
Date: Fri May 12 02:12:38 2017
New Revision: 318204
URL: https://svnweb.freebsd.org/changeset/base/318204

Log:
  MFC r318109:
   Correct "first appeared in" entries for various drivers that
   exist in stable/11.
  
  Sponsored by: The FreeBSD Foundation

Modified:
  stable/11/share/man/man4/bnxt.4
  stable/11/share/man/man4/bytgpio.4
  stable/11/share/man/man4/cxgbev.4
  stable/11/share/man/man4/jedec_ts.4
  stable/11/share/man/man4/qlnxe.4
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/share/man/man4/bnxt.4
==
--- stable/11/share/man/man4/bnxt.4 Fri May 12 02:12:03 2017
(r318203)
+++ stable/11/share/man/man4/bnxt.4 Fri May 12 02:12:38 2017
(r318204)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 12, 2016
+.Dd May 9, 2017
 .Dt BNXT 4
 .Os
 .Sh NAME
@@ -212,7 +212,7 @@ As of this writing, the system must be r
 The
 .Nm
 device driver first appeared in
-.Fx 12.0 .
+.Fx 11.1 .
 .Sh AUTHORS
 The
 .Nm

Modified: stable/11/share/man/man4/bytgpio.4
==
--- stable/11/share/man/man4/bytgpio.4  Fri May 12 02:12:03 2017
(r318203)
+++ stable/11/share/man/man4/bytgpio.4  Fri May 12 02:12:38 2017
(r318204)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 20, 2016
+.Dd May 9, 2017
 .Dt BYTGPIO 4
 .Os
 .Sh NAME
@@ -49,7 +49,7 @@ on boards schematics: GPIO_S0_SCnn, GPIO
 The
 .Nm
 manual page first appeared in
-.Fx 12.0 .
+.Fx 11.1 .
 .Sh AUTHORS
 This driver and man page was written by
 .An Oleksandr Tymoshenko Aq Mt go...@freebsd.org .

Modified: stable/11/share/man/man4/cxgbev.4
==
--- stable/11/share/man/man4/cxgbev.4   Fri May 12 02:12:03 2017
(r318203)
+++ stable/11/share/man/man4/cxgbev.4   Fri May 12 02:12:38 2017
(r318204)
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd December 22, 2016
+.Dd May 9, 2017
 .Dt CXGBEV 4
 .Os
 .Sh NAME
@@ -312,7 +312,7 @@ The
 device driver first appeared in
 .Fx 11.1
 and
-.Fx 12.0 .
+.Fx 11.1 .
 .Sh AUTHORS
 .An -nosplit
 The

Modified: stable/11/share/man/man4/jedec_ts.4
==
--- stable/11/share/man/man4/jedec_ts.4 Fri May 12 02:12:03 2017
(r318203)
+++ stable/11/share/man/man4/jedec_ts.4 Fri May 12 02:12:38 2017
(r318204)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 13, 2016
+.Dd May 9, 2017
 .Dt JEDEC_TS 4
 .Os
 .Sh NAME
@@ -121,7 +121,7 @@ dev.jedec_ts.1.temp: 40.7500C
 The
 .Nm
 driver first appeared in
-.Fx 12.0 .
+.Fx 11.1 .
 .Sh AUTHORS
 .An -nosplit
 The

Modified: stable/11/share/man/man4/qlnxe.4
==
--- stable/11/share/man/man4/qlnxe.4Fri May 12 02:12:03 2017
(r318203)
+++ stable/11/share/man/man4/qlnxe.4Fri May 12 02:12:38 2017
(r318204)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd March 24, 2017
+.Dd May 9, 2017
 .Dt QLNXE 4
 .Os
 .Sh NAME
@@ -80,7 +80,7 @@ or by E-mail at
 The
 .Nm
 device driver first appeared in
-.Fx 12.0 .
+.Fx 11.1 .
 .Sh AUTHORS
 .An -nosplit
 The
___
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: r318203 - in stable: 10/contrib/ipfilter/tools 11/contrib/ipfilter/tools

2017-05-11 Thread Cy Schubert
Author: cy
Date: Fri May 12 02:12:03 2017
New Revision: 318203
URL: https://svnweb.freebsd.org/changeset/base/318203

Log:
  Ifdef out a redundant if statement when INET6 is disabled.

Modified:
  stable/10/contrib/ipfilter/tools/ippool.c
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/contrib/ipfilter/tools/ippool.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/10/contrib/ipfilter/tools/ippool.c
==
--- stable/10/contrib/ipfilter/tools/ippool.c   Fri May 12 01:09:24 2017
(r318202)
+++ stable/10/contrib/ipfilter/tools/ippool.c   Fri May 12 02:12:03 2017
(r318203)
@@ -1050,7 +1050,9 @@ setnodeaddr(int type, int role, void *pt
if (type == IPLT_POOL) {
ip_pool_node_t *node = ptr;
 
+#ifdef USE_INET6
if (node->ipn_addr.adf_family == AF_INET)
+#endif
node->ipn_addr.adf_len = offsetof(addrfamily_t,
  adf_addr) +
 sizeof(struct in_addr);
___
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: r318203 - in stable: 10/contrib/ipfilter/tools 11/contrib/ipfilter/tools

2017-05-11 Thread Cy Schubert
Author: cy
Date: Fri May 12 02:12:03 2017
New Revision: 318203
URL: https://svnweb.freebsd.org/changeset/base/318203

Log:
  Ifdef out a redundant if statement when INET6 is disabled.

Modified:
  stable/11/contrib/ipfilter/tools/ippool.c
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/contrib/ipfilter/tools/ippool.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/contrib/ipfilter/tools/ippool.c
==
--- stable/11/contrib/ipfilter/tools/ippool.c   Fri May 12 01:09:24 2017
(r318202)
+++ stable/11/contrib/ipfilter/tools/ippool.c   Fri May 12 02:12:03 2017
(r318203)
@@ -1047,7 +1047,9 @@ setnodeaddr(int type, int role, void *pt
if (type == IPLT_POOL) {
ip_pool_node_t *node = ptr;
 
+#ifdef USE_INET6
if (node->ipn_addr.adf_family == AF_INET)
+#endif
node->ipn_addr.adf_len = offsetof(addrfamily_t,
  adf_addr) +
 sizeof(struct in_addr);
___
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: r318202 - head/contrib/ipfilter/lib

2017-05-11 Thread Cy Schubert
Author: cy
Date: Fri May 12 01:09:24 2017
New Revision: 318202
URL: https://svnweb.freebsd.org/changeset/base/318202

Log:
  Add missing linefeed in debug output.

Modified:
  head/contrib/ipfilter/lib/printpoolnode.c

Modified: head/contrib/ipfilter/lib/printpoolnode.c
==
--- head/contrib/ipfilter/lib/printpoolnode.c   Thu May 11 23:49:53 2017
(r318201)
+++ head/contrib/ipfilter/lib/printpoolnode.c   Fri May 12 01:09:24 2017
(r318202)
@@ -52,7 +52,7 @@ printpoolnode(np, opts, fields)
PRINTF("\tAddress: %s%s", np->ipn_info ? "! " : "",
inet_ntoa(np->ipn_addr.adf_addr.in4));
} else {
-   PRINTF("\tAddress: family: %d",
+   PRINTF("\tAddress: family: %d\n",
np->ipn_addr.adf_family);
 #ifdef AF_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: r318201 - stable/11/release/doc/en_US.ISO8859-1/relnotes

2017-05-11 Thread Glen Barber
Author: gjb
Date: Thu May 11 23:49:53 2017
New Revision: 318201
URL: https://svnweb.freebsd.org/changeset/base/318201

Log:
  Clarify the syslogd(8) 'include' directive is specified in syslog.conf(5).
  
  Submitted by: jilles
  Sponsored by: The FreeBSD Foundation

Modified:
  stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml

Modified: stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml
==
--- stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml  Thu May 11 
21:13:06 2017(r318200)
+++ stable/11/release/doc/en_US.ISO8859-1/relnotes/article.xml  Thu May 11 
23:49:53 2017(r318201)
@@ -190,8 +190,8 @@
&man.syslogd.8; utility has been updated to add the
include keyword which allows specifying
a directory containing configuration files to be included in
-   addition to &man.syslogd.8;.  The default &man.syslogd.8; has
-   been updated to include /etc/syslog.d and /usr/local/etc/syslog.d by
default.
___
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: r318199 - stable/11/sys/dev/sdhci

2017-05-11 Thread Marius Strobl
Author: marius
Date: Thu May 11 21:13:01 2017
New Revision: 318199
URL: https://svnweb.freebsd.org/changeset/base/318199

Log:
  MFC: r315431
  
  - Adds macros for the content of SDHCI_ADMA_ERR and SDHCI_HOST_CONTROL2
registers.
  - Add slot type capability bits. These bits should allow recognizing
removable card slots, embedded cards and shared buses (shared bus
supposedly is always comprised of non-removable cards).
  - Dump CAPABILITIES2, ADMA_ERR, HOST_CONTROL2 and ADMA_ADDRESS_LO
registers in sdhci_dumpregs().
  - The drive type support flags in the CAPABILITIES2 register are for
drive types A,C,D, drive type B is the default setting (value 0) of
the drive strength field in the SDHCI_HOST_CONTROL2 register.
  
  Obtained from:DragonFlyBSD (9e3c8f63, 455bd1b1)

Modified:
  stable/11/sys/dev/sdhci/sdhci.c
  stable/11/sys/dev/sdhci/sdhci.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/sdhci/sdhci.c
==
--- stable/11/sys/dev/sdhci/sdhci.c Thu May 11 21:01:02 2017
(r318198)
+++ stable/11/sys/dev/sdhci/sdhci.c Thu May 11 21:13:01 2017
(r318199)
@@ -157,10 +157,14 @@ sdhci_dumpregs(struct sdhci_slot *slot)
RD1(slot, SDHCI_TIMEOUT_CONTROL), RD4(slot, SDHCI_INT_STATUS));
slot_printf(slot, "Int enab: 0x%08x | Sig enab: 0x%08x\n",
RD4(slot, SDHCI_INT_ENABLE), RD4(slot, SDHCI_SIGNAL_ENABLE));
-   slot_printf(slot, "AC12 err: 0x%08x | Slot int: 0x%08x\n",
-   RD2(slot, SDHCI_ACMD12_ERR), RD2(slot, SDHCI_SLOT_INT_STATUS));
-   slot_printf(slot, "Caps: 0x%08x | Max curr: 0x%08x\n",
-   RD4(slot, SDHCI_CAPABILITIES), RD4(slot, SDHCI_MAX_CURRENT));
+   slot_printf(slot, "AC12 err: 0x%08x | Host ctl2: 0x%08x\n",
+   RD2(slot, SDHCI_ACMD12_ERR), RD2(slot, SDHCI_HOST_CONTROL2));
+   slot_printf(slot, "Caps: 0x%08x | Caps2:0x%08x\n",
+   RD4(slot, SDHCI_CAPABILITIES), RD4(slot, SDHCI_CAPABILITIES2));
+   slot_printf(slot, "Max curr: 0x%08x | ADMA err: 0x%08x\n",
+   RD4(slot, SDHCI_MAX_CURRENT), RD1(slot, SDHCI_ADMA_ERR));
+   slot_printf(slot, "ADMA addr: 0x%08x | Slot int: 0x%08x\n",
+   RD4(slot, SDHCI_ADMA_ADDRESS_LO), RD2(slot, SDHCI_SLOT_INT_STATUS));
 
slot_printf(slot,
"===\n");

Modified: stable/11/sys/dev/sdhci/sdhci.h
==
--- stable/11/sys/dev/sdhci/sdhci.h Thu May 11 21:01:02 2017
(r318198)
+++ stable/11/sys/dev/sdhci/sdhci.h Thu May 11 21:13:01 2017
(r318199)
@@ -219,7 +219,24 @@
SDHCI_INT_DATA_END_BIT)
 
 #defineSDHCI_ACMD12_ERR0x3C
+
 #defineSDHCI_HOST_CONTROL2 0x3E
+#define SDHCI_CTRL2_PRESET_VALUE   0x8000
+#define SDHCI_CTRL2_ASYNC_INTR 0x4000
+#define SDHCI_CTRL2_SAMPLING_CLOCK 0x0080
+#define SDHCI_CTRL2_EXEC_TUNING0x0040
+#define SDHCI_CTRL2_DRIVER_TYPE_MASK   0x0030
+#define SDHCI_CTRL2_DRIVER_TYPE_B  0x
+#define SDHCI_CTRL2_DRIVER_TYPE_A  0x0010
+#define SDHCI_CTRL2_DRIVER_TYPE_C  0x0020
+#define SDHCI_CTRL2_DRIVER_TYPE_D  0x0030
+#define SDHCI_CTRL2_S18_ENABLE 0x0008
+#define SDHCI_CTRL2_UHS_MASK   0x0007
+#define SDHCI_CTRL2_UHS_SDR12  0x
+#define SDHCI_CTRL2_UHS_SDR25  0x0001
+#define SDHCI_CTRL2_UHS_SDR50  0x0002
+#define SDHCI_CTRL2_UHS_SDR104 0x0003
+#define SDHCI_CTRL2_UHS_DDR50  0x0004
 
 #defineSDHCI_CAPABILITIES  0x40
 #define SDHCI_TIMEOUT_CLK_MASK 0x003F
@@ -240,14 +257,18 @@
 #define SDHCI_CAN_VDD_180  0x0400
 #define SDHCI_CAN_DO_64BIT 0x1000
 #define SDHCI_CAN_ASYNC_INTR   0x2000
+#define SDHCI_SLOTTYPE_MASK0xC000
+#define SDHCI_SLOTTYPE_REMOVABLE   0x
+#define SDHCI_SLOTTYPE_EMBEDDED0x4000
+#define SDHCI_SLOTTYPE_SHARED  0x8000
 
 #defineSDHCI_CAPABILITIES2 0x44
 #define SDHCI_CAN_SDR500x0001
 #define SDHCI_CAN_SDR104   0x0002
 #define SDHCI_CAN_DDR500x0004
 #define SDHCI_CAN_DRIVE_TYPE_A 0x0010
-#define SDHCI_CAN_DRIVE_TYPE_B 0x0020
-#define SDHCI_CAN_DRIVE_TYPE_C 0x0040
+#define SDHCI_CAN_DRIVE_TYPE_C 0x0020
+#define SDHCI_CAN_DRIVE_TYPE_D 0x0040
 #define SDHCI_RETUNE_CNT_MASK  0x0F00
 #define SDHCI_RETUNE_CNT_SHIFT 8
 #define SDHCI_TUNE_SDR50   0x2000
@@ -259,9 +280,17 @@
 #defineSDHCI_MAX_CURRENT   0x48
 #defineSDHCI_FORCE_AUTO_EVENT  0x50
 #defineSDHCI_FORCE_INTR_EVENT  0x52
+
 #defineSDHCI_ADMA_ERR

svn commit: r318200 - stable/10/sys/dev/sdhci

2017-05-11 Thread Marius Strobl
Author: marius
Date: Thu May 11 21:13:06 2017
New Revision: 318200
URL: https://svnweb.freebsd.org/changeset/base/318200

Log:
  MFC: r315431
  
  - Adds macros for the content of SDHCI_ADMA_ERR and SDHCI_HOST_CONTROL2
registers.
  - Add slot type capability bits. These bits should allow recognizing
removable card slots, embedded cards and shared buses (shared bus
supposedly is always comprised of non-removable cards).
  - Dump CAPABILITIES2, ADMA_ERR, HOST_CONTROL2 and ADMA_ADDRESS_LO
registers in sdhci_dumpregs().
  - The drive type support flags in the CAPABILITIES2 register are for
drive types A,C,D, drive type B is the default setting (value 0) of
the drive strength field in the SDHCI_HOST_CONTROL2 register.
  
  Obtained from:DragonFlyBSD (9e3c8f63, 455bd1b1)

Modified:
  stable/10/sys/dev/sdhci/sdhci.c
  stable/10/sys/dev/sdhci/sdhci.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/sdhci/sdhci.c
==
--- stable/10/sys/dev/sdhci/sdhci.c Thu May 11 21:13:01 2017
(r318199)
+++ stable/10/sys/dev/sdhci/sdhci.c Thu May 11 21:13:06 2017
(r318200)
@@ -158,10 +158,14 @@ sdhci_dumpregs(struct sdhci_slot *slot)
RD1(slot, SDHCI_TIMEOUT_CONTROL), RD4(slot, SDHCI_INT_STATUS));
slot_printf(slot, "Int enab: 0x%08x | Sig enab: 0x%08x\n",
RD4(slot, SDHCI_INT_ENABLE), RD4(slot, SDHCI_SIGNAL_ENABLE));
-   slot_printf(slot, "AC12 err: 0x%08x | Slot int: 0x%08x\n",
-   RD2(slot, SDHCI_ACMD12_ERR), RD2(slot, SDHCI_SLOT_INT_STATUS));
-   slot_printf(slot, "Caps: 0x%08x | Max curr: 0x%08x\n",
-   RD4(slot, SDHCI_CAPABILITIES), RD4(slot, SDHCI_MAX_CURRENT));
+   slot_printf(slot, "AC12 err: 0x%08x | Host ctl2: 0x%08x\n",
+   RD2(slot, SDHCI_ACMD12_ERR), RD2(slot, SDHCI_HOST_CONTROL2));
+   slot_printf(slot, "Caps: 0x%08x | Caps2:0x%08x\n",
+   RD4(slot, SDHCI_CAPABILITIES), RD4(slot, SDHCI_CAPABILITIES2));
+   slot_printf(slot, "Max curr: 0x%08x | ADMA err: 0x%08x\n",
+   RD4(slot, SDHCI_MAX_CURRENT), RD1(slot, SDHCI_ADMA_ERR));
+   slot_printf(slot, "ADMA addr: 0x%08x | Slot int: 0x%08x\n",
+   RD4(slot, SDHCI_ADMA_ADDRESS_LO), RD2(slot, SDHCI_SLOT_INT_STATUS));
 
slot_printf(slot,
"===\n");

Modified: stable/10/sys/dev/sdhci/sdhci.h
==
--- stable/10/sys/dev/sdhci/sdhci.h Thu May 11 21:13:01 2017
(r318199)
+++ stable/10/sys/dev/sdhci/sdhci.h Thu May 11 21:13:06 2017
(r318200)
@@ -219,7 +219,24 @@
SDHCI_INT_DATA_END_BIT)
 
 #defineSDHCI_ACMD12_ERR0x3C
+
 #defineSDHCI_HOST_CONTROL2 0x3E
+#define SDHCI_CTRL2_PRESET_VALUE   0x8000
+#define SDHCI_CTRL2_ASYNC_INTR 0x4000
+#define SDHCI_CTRL2_SAMPLING_CLOCK 0x0080
+#define SDHCI_CTRL2_EXEC_TUNING0x0040
+#define SDHCI_CTRL2_DRIVER_TYPE_MASK   0x0030
+#define SDHCI_CTRL2_DRIVER_TYPE_B  0x
+#define SDHCI_CTRL2_DRIVER_TYPE_A  0x0010
+#define SDHCI_CTRL2_DRIVER_TYPE_C  0x0020
+#define SDHCI_CTRL2_DRIVER_TYPE_D  0x0030
+#define SDHCI_CTRL2_S18_ENABLE 0x0008
+#define SDHCI_CTRL2_UHS_MASK   0x0007
+#define SDHCI_CTRL2_UHS_SDR12  0x
+#define SDHCI_CTRL2_UHS_SDR25  0x0001
+#define SDHCI_CTRL2_UHS_SDR50  0x0002
+#define SDHCI_CTRL2_UHS_SDR104 0x0003
+#define SDHCI_CTRL2_UHS_DDR50  0x0004
 
 #defineSDHCI_CAPABILITIES  0x40
 #define SDHCI_TIMEOUT_CLK_MASK 0x003F
@@ -240,14 +257,18 @@
 #define SDHCI_CAN_VDD_180  0x0400
 #define SDHCI_CAN_DO_64BIT 0x1000
 #define SDHCI_CAN_ASYNC_INTR   0x2000
+#define SDHCI_SLOTTYPE_MASK0xC000
+#define SDHCI_SLOTTYPE_REMOVABLE   0x
+#define SDHCI_SLOTTYPE_EMBEDDED0x4000
+#define SDHCI_SLOTTYPE_SHARED  0x8000
 
 #defineSDHCI_CAPABILITIES2 0x44
 #define SDHCI_CAN_SDR500x0001
 #define SDHCI_CAN_SDR104   0x0002
 #define SDHCI_CAN_DDR500x0004
 #define SDHCI_CAN_DRIVE_TYPE_A 0x0010
-#define SDHCI_CAN_DRIVE_TYPE_B 0x0020
-#define SDHCI_CAN_DRIVE_TYPE_C 0x0040
+#define SDHCI_CAN_DRIVE_TYPE_C 0x0020
+#define SDHCI_CAN_DRIVE_TYPE_D 0x0040
 #define SDHCI_RETUNE_CNT_MASK  0x0F00
 #define SDHCI_RETUNE_CNT_SHIFT 8
 #define SDHCI_TUNE_SDR50   0x2000
@@ -259,9 +280,17 @@
 #defineSDHCI_MAX_CURRENT   0x48
 #defineSDHCI_FORCE_AUTO_EVENT  0x50
 #defineSDHCI_FORCE_INTR_EVENT  0x52
+
 #defineSDHCI_ADMA_ERR

svn commit: r318198 - in stable/10: . etc/mtree include sys/arm/at91 sys/arm/broadcom/bcm2835 sys/arm/freescale/imx sys/arm/lpc sys/arm/ti sys/conf sys/dev/mmc sys/dev/sdhci sys/modules sys/modules...

2017-05-11 Thread Marius Strobl
Author: marius
Date: Thu May 11 21:01:02 2017
New Revision: 318198
URL: https://svnweb.freebsd.org/changeset/base/318198

Log:
  MFC: r292180 (partial), r297127 (partial), r311911, r311923, r312939,
   r313250, r313712, r314811 (partial), r314887 (partial), r315430,
   r317981, r315466
  
  o Move the DRIVER_MODULE() statements that declare mmc(4) to be a child
of the various bridge drivers out of dev/mmc.c and into the bridge
drivers.
  
  o Add ACPI platform support for SDHCI driver.
  
  o Fix some overly long lines, whitespace and other bugs according to
style(9) as well as spelling etc. in mmc(4), mmcsd(4) and sdhci(4).
  
  o In the mmc(4) bridges and sdhci(4) (bus) front-ends:
- Remove redundant assignments of the default bus_generic_print_child
  device method,
- use DEVMETHOD_END,
- use NULL instead of 0 for pointers.
  
  o Trim/adjust includes.
  
  o Add and use a MMC_DECLARE_BRIDGE macro for declaring mmc(4) bridges
as kernel drivers and their dependency onto mmc(4).
  
  o Add support for eMMC "partitions". Besides the user data area, i. e.
the default partition, eMMC v4.41 and later devices can additionally
provide up to:
1 enhanced user data area partition
2 boot partitions
1 RPMB (Replay Protected Memory Block) partition
4 general purpose partitions (optionally with a enhanced or extended
  attribute)
  
Besides simply subdividing eMMC devices, some Intel NUCs having UEFI
code in the boot partitions etc., another use case for the partition
support is the activation of pseudo-SLC mode, which manufacturers of
eMMC chips typically associate with the enhanced user data area and/
or the enhanced attribute of general purpose partitions.
  
CAVEAT EMPTOR: Partitioning eMMC devices is a one-time operation.
  
  o Now that properly issuing CMD6 is crucial (so data isn't written to
the wrong partition for example), make a step into the direction of
correctly handling the timeout for these commands in the MMC layer.
Also, do a SEND_STATUS when CMD6 is invoked with an R1B response as
recommended by relevant specifications.
  
  o Add an IOCTL interface to mmcsd(4); this is sufficiently compatible
with Linux so that the GNU mmc-utils can be ported to and used with
FreeBSD (note that due to the remaining deficiencies outlined above
SANITIZE operations issued by/with `mmc` currently most likely will
fail). These latter have been added to ports as sysutils/mmc-utils.
Among others, the `mmc` tool of mmc-utils allows for partitioning
eMMC devices (tested working).
  
  o For devices following the eMMC specification v4.41 or later, year 0
is 2013 rather than 1997; so correct this for assembling the device
ID string properly.
  
  o Let mmcsd.ko depend on mmc.ko. Additionally, bump MMC_VERSION as at
least for some of the above a matching pair is required.

Added:
  stable/10/sys/dev/mmc/mmc_ioctl.h
 - copied unchanged from r315430, head/sys/dev/mmc/mmc_ioctl.h
  stable/10/sys/dev/mmc/mmc_private.h
 - copied unchanged from r315430, head/sys/dev/mmc/mmc_private.h
  stable/10/sys/dev/mmc/mmc_subr.c
 - copied unchanged from r315430, head/sys/dev/mmc/mmc_subr.c
  stable/10/sys/dev/mmc/mmc_subr.h
 - copied unchanged from r315430, head/sys/dev/mmc/mmc_subr.h
  stable/10/sys/dev/sdhci/sdhci_acpi.c
 - copied, changed from r311911, head/sys/dev/sdhci/sdhci_acpi.c
  stable/10/sys/modules/sdhci_acpi/
 - copied from r311911, head/sys/modules/sdhci_acpi/
Modified:
  stable/10/UPDATING
  stable/10/etc/mtree/BSD.include.dist
  stable/10/include/Makefile
  stable/10/sys/arm/at91/at91_mci.c
  stable/10/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
  stable/10/sys/arm/freescale/imx/imx_sdhci.c
  stable/10/sys/arm/lpc/lpc_mmc.c
  stable/10/sys/arm/ti/ti_sdhci.c
  stable/10/sys/conf/files
  stable/10/sys/dev/mmc/bridge.h
  stable/10/sys/dev/mmc/mmc.c
  stable/10/sys/dev/mmc/mmcbr_if.m
  stable/10/sys/dev/mmc/mmcbrvar.h
  stable/10/sys/dev/mmc/mmcreg.h
  stable/10/sys/dev/mmc/mmcsd.c
  stable/10/sys/dev/mmc/mmcvar.h
  stable/10/sys/dev/sdhci/sdhci.c
  stable/10/sys/dev/sdhci/sdhci.h
  stable/10/sys/dev/sdhci/sdhci_fdt.c
  stable/10/sys/dev/sdhci/sdhci_if.m
  stable/10/sys/dev/sdhci/sdhci_pci.c
  stable/10/sys/modules/Makefile
  stable/10/sys/modules/mmc/Makefile
  stable/10/sys/modules/sdhci_acpi/Makefile
  stable/10/sys/powerpc/mpc85xx/fsl_sdhc.c
  stable/10/sys/sys/param.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/UPDATING
==
--- stable/10/UPDATING  Thu May 11 20:55:11 2017(r318197)
+++ stable/10/UPDATING  Thu May 11 21:01:02 2017(r318198)
@@ -16,6 +16,13 @@ from older versions of FreeBSD, try WITH
 stable/10, and then rebuild without this option. The bootstrap process from
 older version of current is a bit fragile.
 
+201705

Re: svn commit: r318166 - head/sys/netinet

2017-05-11 Thread Gleb Smirnoff
On Thu, May 11, 2017 at 12:55:14PM +0200, Fabian Keil wrote:
F> > Author: glebius
F> > Date: Wed May 10 23:32:31 2017
F> > New Revision: 318166
F> > URL: https://svnweb.freebsd.org/changeset/base/318166
F> > 
F> > Log:
F> >   There is no good reason for TCP reassembly zone to be UMA_ZONE_NOFREE.
F> >   
F> >   It has strong locking model, doesn't have any timers associated with
F> >   entries.  The entries theirselves are referenced only from the tcpcb
F> > zone, which itself is a normal zone, without the UMA_ZONE_NOFREE flag.
F> 
F> A side effect of the UMA_ZONE_NOFREE flag is that allocations
F> with M_NOWAIT (currently used tcp_reass()) are less likely to
F> fail.
F> 
F> Removing the UMA_ZONE_NOFREE in other TCP-related parts
F> "recently" caused (still unfixed) regressions like:
F> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209680
F> 
F> It would be great if there was a method to reserve a certain
F> number of items for the zone without having to rely on
F> UMA_ZONE_NOFREE but last time I checked there wasn't one.

Using UMA_ZONE_NOFREE for that problems is definitely a workaround.

The problems should be separated, there definitely is an ipfw
problem and TCP stack one. It is very strange that for an
already established connection we require allocating more memory
from these zones.

-- 
Totus tuus, Glebius.
___
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: r318197 - in stable/11: . etc/mtree include sys/arm/allwinner sys/arm/amlogic/aml8726 sys/arm/at91 sys/arm/broadcom/bcm2835 sys/arm/lpc sys/arm/nvidia sys/arm/ti sys/conf sys/dev/mmc sy...

2017-05-11 Thread Marius Strobl
Author: marius
Date: Thu May 11 20:55:11 2017
New Revision: 318197
URL: https://svnweb.freebsd.org/changeset/base/318197

Log:
  MFC: r312939, r313250, r314811 (partial), r314887 (partial), r315760,
   r315845, 315430, r317981, r315466
  
  o Fix some overly long lines, whitespace and other bugs according to
style(9) as well as spelling etc. in mmc(4), mmcsd(4) and sdhci(4).
  
  o In the mmc(4) bridges and sdhci(4) (bus) front-ends:
- Remove redundant assignments of the default bus_generic_print_child
  device method,
- use DEVMETHOD_END,
- use NULL instead of 0 for pointers.
  
  o Trim/adjust includes.
  
  o Add and use a MMC_DECLARE_BRIDGE macro for declaring mmc(4) bridges
as kernel drivers and their dependency onto mmc(4).
  
  o Add support for eMMC "partitions". Besides the user data area, i. e.
the default partition, eMMC v4.41 and later devices can additionally
provide up to:
1 enhanced user data area partition
2 boot partitions
1 RPMB (Replay Protected Memory Block) partition
4 general purpose partitions (optionally with a enhanced or extended
  attribute)
  
Besides simply subdividing eMMC devices, some Intel NUCs having UEFI
code in the boot partitions etc., another use case for the partition
support is the activation of pseudo-SLC mode, which manufacturers of
eMMC chips typically associate with the enhanced user data area and/
or the enhanced attribute of general purpose partitions.
  
CAVEAT EMPTOR: Partitioning eMMC devices is a one-time operation.
  
  o Now that properly issuing CMD6 is crucial (so data isn't written to
the wrong partition for example), make a step into the direction of
correctly handling the timeout for these commands in the MMC layer.
Also, do a SEND_STATUS when CMD6 is invoked with an R1B response as
recommended by relevant specifications.
  
  o Add an IOCTL interface to mmcsd(4); this is sufficiently compatible
with Linux so that the GNU mmc-utils can be ported to and used with
FreeBSD (note that due to the remaining deficiencies outlined above
SANITIZE operations issued by/with `mmc` currently most likely will
fail). These latter have been added to ports as sysutils/mmc-utils.
Among others, the `mmc` tool of mmc-utils allows for partitioning
eMMC devices (tested working).
  
  o For devices following the eMMC specification v4.41 or later, year 0
is 2013 rather than 1997; so correct this for assembling the device
ID string properly.
  
  o Let mmcsd.ko depend on mmc.ko. Additionally, bump MMC_VERSION as at
least for some of the above a matching pair is required.
  
  o In the ACPI front-end of sdhci(4) describe the Intel eMMC and SDXC
controllers as such in order to match the PCI one.
Additionally, in the entry for the 80860F14 SDXC controller remove
the eMMC-only SDHCI_QUIRK_INTEL_POWER_UP_RESET.

Added:
  stable/11/sys/dev/mmc/mmc_ioctl.h
 - copied unchanged from r315430, head/sys/dev/mmc/mmc_ioctl.h
  stable/11/sys/dev/mmc/mmc_private.h
 - copied unchanged from r315430, head/sys/dev/mmc/mmc_private.h
  stable/11/sys/dev/mmc/mmc_subr.c
 - copied unchanged from r315430, head/sys/dev/mmc/mmc_subr.c
  stable/11/sys/dev/mmc/mmc_subr.h
 - copied unchanged from r315430, head/sys/dev/mmc/mmc_subr.h
Modified:
  stable/11/UPDATING
  stable/11/etc/mtree/BSD.include.dist
  stable/11/include/Makefile
  stable/11/sys/arm/allwinner/a10_mmc.c
  stable/11/sys/arm/amlogic/aml8726/aml8726_mmc.c
  stable/11/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c
  stable/11/sys/arm/at91/at91_mci.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
  stable/11/sys/arm/lpc/lpc_mmc.c
  stable/11/sys/arm/nvidia/tegra_sdhci.c
  stable/11/sys/arm/ti/ti_sdhci.c
  stable/11/sys/conf/files
  stable/11/sys/dev/mmc/bridge.h
  stable/11/sys/dev/mmc/host/dwmmc.c
  stable/11/sys/dev/mmc/mmc.c
  stable/11/sys/dev/mmc/mmcbr_if.m
  stable/11/sys/dev/mmc/mmcbrvar.h
  stable/11/sys/dev/mmc/mmcreg.h
  stable/11/sys/dev/mmc/mmcsd.c
  stable/11/sys/dev/mmc/mmcvar.h
  stable/11/sys/dev/sdhci/fsl_sdhci.c
  stable/11/sys/dev/sdhci/sdhci.c
  stable/11/sys/dev/sdhci/sdhci.h
  stable/11/sys/dev/sdhci/sdhci_acpi.c
  stable/11/sys/dev/sdhci/sdhci_fdt.c
  stable/11/sys/dev/sdhci/sdhci_if.m
  stable/11/sys/dev/sdhci/sdhci_pci.c
  stable/11/sys/modules/mmc/Makefile
  stable/11/sys/sys/param.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/UPDATING
==
--- stable/11/UPDATING  Thu May 11 20:30:44 2017(r318196)
+++ stable/11/UPDATING  Thu May 11 20:55:11 2017(r318197)
@@ -16,6 +16,13 @@ from older versions of FreeBSD, try WITH
 the tip of head, and then rebuild without this option. The bootstrap process
 from older version of current across the gcc/clang cutover is a bit fragile.
 
+20170511:
+   The mmcsd.ko module now addition

svn commit: r318196 - stable/11/sys/tools/fdt

2017-05-11 Thread Oleksandr Tymoshenko
Author: gonzo
Date: Thu May 11 20:30:44 2017
New Revision: 318196
URL: https://svnweb.freebsd.org/changeset/base/318196

Log:
  MFC r315031:
  
  [fdt] Make DTBs generated by make_dtb.sh overlay-ready
  
  Generate symbols node when compiling dts files so they can be modified
  during boot-time by applying overlays.

Modified:
  stable/11/sys/tools/fdt/make_dtb.sh
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/tools/fdt/make_dtb.sh
==
--- stable/11/sys/tools/fdt/make_dtb.sh Thu May 11 20:01:20 2017
(r318195)
+++ stable/11/sys/tools/fdt/make_dtb.sh Thu May 11 20:30:44 2017
(r318196)
@@ -20,5 +20,5 @@ for d in ${dts}; do
 dtb=${dtb_path}/`basename $d .dts`.dtb
 echo "converting $d -> $dtb"
 cpp -P -x assembler-with-cpp -I $S/gnu/dts/include -I 
$S/boot/fdt/dts/${MACHINE} -I $S/gnu/dts/${MACHINE} -include $d /dev/null | 
-   dtc -O dtb -o $dtb -b 0 -p 1024 -i $S/boot/fdt/dts/${MACHINE} -i 
$S/gnu/dts/${MACHINE}
+   dtc -@ -O dtb -o $dtb -b 0 -p 1024 -i $S/boot/fdt/dts/${MACHINE} -i 
$S/gnu/dts/${MACHINE}
 done
___
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: r318195 - stable/11

2017-05-11 Thread Alexander Motin
Author: mav
Date: Thu May 11 20:01:20 2017
New Revision: 318195
URL: https://svnweb.freebsd.org/changeset/base/318195

Log:
  Record as merged revisions that were reverted in head:
  r307392, r308781, r310023, r310104.

Modified:
Directory Properties:
  stable/11/   (props changed)
___
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: r318194 - head/share/mk

2017-05-11 Thread Simon J. Gerraty
Author: sjg
Date: Thu May 11 19:49:22 2017
New Revision: 318194
URL: https://svnweb.freebsd.org/changeset/base/318194

Log:
  Tell bmake (meta mode) to ignore changes to /usr/local/etc/libmap.d/*
  
  Differential Revision:D10685
  Reviewed by:  bdrewery

Modified:
  head/share/mk/local.meta.sys.mk

Modified: head/share/mk/local.meta.sys.mk
==
--- head/share/mk/local.meta.sys.mk Thu May 11 18:53:28 2017
(r318193)
+++ head/share/mk/local.meta.sys.mk Thu May 11 19:49:22 2017
(r318194)
@@ -283,3 +283,6 @@ META_MODE+= missing-meta=yes
 .if empty(META_MODE:Mnofilemon)
 META_MODE+=missing-filemon=yes
 .endif
+# We do not want everything out-of-date just because
+# some unrelated shared lib updated this.
+.MAKE.META.IGNORE_PATHS+= /usr/local/etc/libmap.d
___
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: r318193 - head/sys/boot/efi/loader

2017-05-11 Thread Mark Johnston
Author: markj
Date: Thu May 11 18:53:28 2017
New Revision: 318193
URL: https://svnweb.freebsd.org/changeset/base/318193

Log:
  Set the right variable when overriding the default console speed.
  
  MFC after:1 week

Modified:
  head/sys/boot/efi/loader/main.c

Modified: head/sys/boot/efi/loader/main.c
==
--- head/sys/boot/efi/loader/main.c Thu May 11 17:26:34 2017
(r318192)
+++ head/sys/boot/efi/loader/main.c Thu May 11 18:53:28 2017
(r318193)
@@ -391,7 +391,7 @@ main(int argc, CHAR16 *argv[])
} else {
cpy16to8(&argv[i + 
1][0], var,
sizeof(var));
-   
setenv("comconsole_speedspeed", var, 1);
+   
setenv("comconsole_speed", var, 1);
}
i++;
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"


Re: svn commit: r318171 - head/sys/dev/dpaa

2017-05-11 Thread John Baldwin
On Thursday, May 11, 2017 03:47:58 AM Justin Hibbits wrote:
> Author: jhibbits
> Date: Thu May 11 03:47:58 2017
> New Revision: 318171
> URL: https://svnweb.freebsd.org/changeset/base/318171
> 
> Log:
>   Fix uma_zcreate() align argument, now that the constraint is asserted.
>   
>   The alignment argument is the mask of low bits to mask off when allocating
>   items in a zone, not the block-size alignment.

The first one should probably be using UMA_ALIGN_PTR instead.

However, I do wonder if we shouldn't fix the API.  All of the other APIs in
the kernel for memory allocation use the size for alignment (contigmalloc,
kmem_*, bus_dma, etc.).

We could support a transition for uma by doing something like this in the
implementation:

if (alignment == 0)
zone->align = 0;
else if (powerof2(alignment))
zone->align = alignment - 1;
else {
KASSERT(powerof2(alignment + 1), ...);
printf("WARNING: UMA zone %s using old alignment\n");
zone->alignment = alignment;
}

Along with updating the UMA_ALIGN_* constants which should fix most of the
zones in the tree to use the new strategy.  In 13 we would turn the printf()
into a panic() / KASSERT.

-- 
John Baldwin
___
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: r318164 - in stable: 10/sys/amd64/linux 10/sys/amd64/linux32 10/sys/compat/freebsd32 10/sys/compat/svr4 10/sys/i386/ibcs2 10/sys/i386/linux 10/sys/kern 10/sys/sys 11/sys/amd64/linux 11

2017-05-11 Thread John Baldwin
On Wednesday, May 10, 2017 11:09:20 PM John Baldwin wrote:
> Author: jhb
> Date: Wed May 10 23:09:17 2017
> New Revision: 318164
> URL: https://svnweb.freebsd.org/changeset/base/318164
> 
> Log:
>   MFC 313564:
>   Drop the "created from" line from files generated by makesyscalls.sh.
>   
>   This information is less useful when the generated files are included in
>   source control along with the source.  If needed it can be reconstructed
>   from the $FreeBSD$ tag in the generated file.  Removing this information
>   from the generated output permits committing the generated files along
>   with the change to the system call master list without having inconsistent
>   metadata in the generated files.
>   
>   Regenerate the affected files along with the MFC.

After this commit, I think we should include regenerated files when MFC'ing
changes going forward so that stable/ branches are never in an inconsistent
state.

-- 
John Baldwin
___
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: r318192 - in stable: 10/sys/kern 10/sys/sys 10/usr.bin/gcore 11/sys/kern 11/sys/sys 11/usr.bin/gcore

2017-05-11 Thread John Baldwin
Author: jhb
Date: Thu May 11 17:26:34 2017
New Revision: 318192
URL: https://svnweb.freebsd.org/changeset/base/318192

Log:
  MFC 313407,313449: Copy ELF machine/flags from binaries to core dumps.
  
  313407:
  Copy the e_machine and e_flags fields from the binary into an ELF core dump.
  
  In the kernel, cache the machine and flags fields from ELF header to use in
  the ELF header of a core dump. For gcore, the copy these fields over from
  the ELF header in the binary.
  
  This matters for platforms which encode ABI information in the flags field
  (such as o32 vs n32 on MIPS).
  
  313449:
  Trim trailing whitespace (mostly introduced in r313407).
  
  Sponsored by: DARPA / AFRL

Modified:
  stable/11/sys/kern/imgact_elf.c
  stable/11/sys/kern/kern_fork.c
  stable/11/sys/sys/proc.h
  stable/11/usr.bin/gcore/elfcore.c
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/sys/kern/imgact_elf.c
  stable/10/sys/kern/kern_fork.c
  stable/10/sys/sys/proc.h
  stable/10/usr.bin/gcore/elfcore.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/sys/kern/imgact_elf.c
==
--- stable/11/sys/kern/imgact_elf.c Thu May 11 17:03:45 2017
(r318191)
+++ stable/11/sys/kern/imgact_elf.c Thu May 11 17:26:34 2017
(r318192)
@@ -1079,6 +1079,8 @@ __CONCAT(exec_, __elfN(imgact))(struct i
imgp->interpreted = 0;
imgp->reloc_base = addr;
imgp->proc->p_osrel = osrel;
+   imgp->proc->p_elf_machine = hdr->e_machine;
+   imgp->proc->p_elf_flags = hdr->e_flags;
 
  ret:
free(interp_buf, M_TEMP);
@@ -1682,15 +1684,11 @@ __elfN(puthdr)(struct thread *td, void *
ehdr->e_ident[EI_ABIVERSION] = 0;
ehdr->e_ident[EI_PAD] = 0;
ehdr->e_type = ET_CORE;
-#if defined(COMPAT_FREEBSD32) && __ELF_WORD_SIZE == 32
-   ehdr->e_machine = ELF_ARCH32;
-#else
-   ehdr->e_machine = ELF_ARCH;
-#endif
+   ehdr->e_machine = td->td_proc->p_elf_machine;
ehdr->e_version = EV_CURRENT;
ehdr->e_entry = 0;
ehdr->e_phoff = sizeof(Elf_Ehdr);
-   ehdr->e_flags = 0;
+   ehdr->e_flags = td->td_proc->p_elf_flags;
ehdr->e_ehsize = sizeof(Elf_Ehdr);
ehdr->e_phentsize = sizeof(Elf_Phdr);
ehdr->e_phnum = numsegs + 1;

Modified: stable/11/sys/kern/kern_fork.c
==
--- stable/11/sys/kern/kern_fork.c  Thu May 11 17:03:45 2017
(r318191)
+++ stable/11/sys/kern/kern_fork.c  Thu May 11 17:26:34 2017
(r318192)
@@ -408,6 +408,8 @@ do_fork(struct thread *td, struct fork_r
 
bcopy(&p1->p_startcopy, &p2->p_startcopy,
__rangeof(struct proc, p_startcopy, p_endcopy));
+   p2->p_elf_machine = p1->p_elf_machine;
+   p2->p_elf_flags = p1->p_elf_flags;
pargs_hold(p2->p_args);
 
PROC_UNLOCK(p1);

Modified: stable/11/sys/sys/proc.h
==
--- stable/11/sys/sys/proc.hThu May 11 17:03:45 2017(r318191)
+++ stable/11/sys/sys/proc.hThu May 11 17:26:34 2017(r318192)
@@ -316,7 +316,7 @@ struct thread {
} td_state; /* (t) thread state */
union {
register_t  tdu_retval[2];
-   off_t   tdu_off;
+   off_t   tdu_off;
} td_uretoff;   /* (k) Syscall aux returns. */
 #define td_retval  td_uretoff.tdu_retval
u_int   td_cowgen;  /* (k) Generation of COW pointers. */
@@ -626,8 +626,10 @@ struct proc {
   our subtree. */
u_int   p_xexit;/* (c) Exit code. */
u_int   p_xsig; /* (c) Stop/kill sig. */
+
 /* End area that is copied on creation. */
-#definep_endcopy   p_xsig
+#definep_endcopy   p_pgrp
+
struct pgrp *p_pgrp;/* (c + e) Pointer to process group. */
struct knlist   *p_klist;   /* (c) Knotes attached to this proc. */
int p_numthreads;   /* (c) Number of threads. */
@@ -657,6 +659,8 @@ struct proc {
LIST_ENTRY(proc) p_orphan;  /* (e) List of orphan processes. */
LIST_HEAD(, proc) p_orphans;/* (e) Pointer to list of orphans. */
u_int   p_ptevents; /* (c) ptrace() event mask. */
+   uint16_tp_elf_machine;  /* (x) ELF machine type */
+   uint64_tp_elf_flags;/* (x) ELF flags */
 };
 
 #definep_session   p_pgrp->pg_session

Modified: stable/11/usr.bin/gcore/elfcore.c
==
--- stable/11/usr.bin/gcore/elfcore.c   Thu May 11 17:03:45 2017
(r318191)
+++ stable/11/usr.bin/gcore/elfcore.c   Thu 

svn commit: r318192 - in stable: 10/sys/kern 10/sys/sys 10/usr.bin/gcore 11/sys/kern 11/sys/sys 11/usr.bin/gcore

2017-05-11 Thread John Baldwin
Author: jhb
Date: Thu May 11 17:26:34 2017
New Revision: 318192
URL: https://svnweb.freebsd.org/changeset/base/318192

Log:
  MFC 313407,313449: Copy ELF machine/flags from binaries to core dumps.
  
  313407:
  Copy the e_machine and e_flags fields from the binary into an ELF core dump.
  
  In the kernel, cache the machine and flags fields from ELF header to use in
  the ELF header of a core dump. For gcore, the copy these fields over from
  the ELF header in the binary.
  
  This matters for platforms which encode ABI information in the flags field
  (such as o32 vs n32 on MIPS).
  
  313449:
  Trim trailing whitespace (mostly introduced in r313407).
  
  Sponsored by: DARPA / AFRL

Modified:
  stable/10/sys/kern/imgact_elf.c
  stable/10/sys/kern/kern_fork.c
  stable/10/sys/sys/proc.h
  stable/10/usr.bin/gcore/elfcore.c
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/sys/kern/imgact_elf.c
  stable/11/sys/kern/kern_fork.c
  stable/11/sys/sys/proc.h
  stable/11/usr.bin/gcore/elfcore.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/10/sys/kern/imgact_elf.c
==
--- stable/10/sys/kern/imgact_elf.c Thu May 11 17:03:45 2017
(r318191)
+++ stable/10/sys/kern/imgact_elf.c Thu May 11 17:26:34 2017
(r318192)
@@ -1041,6 +1041,8 @@ __CONCAT(exec_, __elfN(imgact))(struct i
imgp->interpreted = 0;
imgp->reloc_base = addr;
imgp->proc->p_osrel = osrel;
+   imgp->proc->p_elf_machine = hdr->e_machine;
+   imgp->proc->p_elf_flags = hdr->e_flags;
 
  ret:
free(interp_buf, M_TEMP);
@@ -1616,15 +1618,11 @@ __elfN(puthdr)(struct thread *td, void *
ehdr->e_ident[EI_ABIVERSION] = 0;
ehdr->e_ident[EI_PAD] = 0;
ehdr->e_type = ET_CORE;
-#if defined(COMPAT_FREEBSD32) && __ELF_WORD_SIZE == 32
-   ehdr->e_machine = ELF_ARCH32;
-#else
-   ehdr->e_machine = ELF_ARCH;
-#endif
+   ehdr->e_machine = td->td_proc->p_elf_machine;
ehdr->e_version = EV_CURRENT;
ehdr->e_entry = 0;
ehdr->e_phoff = sizeof(Elf_Ehdr);
-   ehdr->e_flags = 0;
+   ehdr->e_flags = td->td_proc->p_elf_flags;
ehdr->e_ehsize = sizeof(Elf_Ehdr);
ehdr->e_phentsize = sizeof(Elf_Phdr);
ehdr->e_phnum = numsegs + 1;

Modified: stable/10/sys/kern/kern_fork.c
==
--- stable/10/sys/kern/kern_fork.c  Thu May 11 17:03:45 2017
(r318191)
+++ stable/10/sys/kern/kern_fork.c  Thu May 11 17:26:34 2017
(r318192)
@@ -404,6 +404,8 @@ do_fork(struct thread *td, int flags, st
 
bcopy(&p1->p_startcopy, &p2->p_startcopy,
__rangeof(struct proc, p_startcopy, p_endcopy));
+   p2->p_elf_machine = p1->p_elf_machine;
+   p2->p_elf_flags = p1->p_elf_flags;
pargs_hold(p2->p_args);
PROC_UNLOCK(p1);
 

Modified: stable/10/sys/sys/proc.h
==
--- stable/10/sys/sys/proc.hThu May 11 17:03:45 2017(r318191)
+++ stable/10/sys/sys/proc.hThu May 11 17:26:34 2017(r318192)
@@ -580,6 +580,7 @@ struct proc {
rlim_t  p_cpulimit; /* (c) Current CPU limit in seconds. */
signed char p_nice; /* (c) Process "nice" value. */
int p_fibnum;   /* in this routing domain XXX MRT */
+
 /* End area that is copied on creation. */
 #definep_endcopy   p_xstat
 
@@ -623,6 +624,8 @@ struct proc {
struct pgrp *p_pgrp;/* (c + e) Pointer to process group. */
struct filemon  *p_filemon; /* (c) filemon-specific data. */
u_int   p_ptevents; /* (c) ptrace() event mask. */
+   uint16_tp_elf_machine;  /* (x) ELF machine type */
+   uint64_tp_elf_flags;/* (x) ELF flags */
 };
 
 #definep_session   p_pgrp->pg_session

Modified: stable/10/usr.bin/gcore/elfcore.c
==
--- stable/10/usr.bin/gcore/elfcore.c   Thu May 11 17:03:45 2017
(r318191)
+++ stable/10/usr.bin/gcore/elfcore.c   Thu May 11 17:26:34 2017
(r318192)
@@ -114,8 +114,8 @@ static void *elf_note_procstat_psstrings
 static void *elf_note_procstat_rlimit(void *, size_t *);
 static void *elf_note_procstat_umask(void *, size_t *);
 static void *elf_note_procstat_vmmap(void *, size_t *);
-static void elf_puthdr(pid_t, vm_map_entry_t, void *, size_t, size_t, size_t,
-int);
+static void elf_puthdr(int, pid_t, vm_map_entry_t, void *, size_t, size_t,
+size_t, int);
 static void elf_putnote(int, notefunc_t, void *, struct sbuf *);
 static void elf_putnotes(pid_t, struct sbuf *, size_t *);
 static void freemap(vm_map_entry_t);
@@ -175,7 +175,7 @@ elf_detach(void)
  * Write an ELF co

svn commit: r318191 - head/sys/kern

2017-05-11 Thread Mark Johnston
Author: markj
Date: Thu May 11 17:03:45 2017
New Revision: 318191
URL: https://svnweb.freebsd.org/changeset/base/318191

Log:
  Let ptracestop() suspend threads sleeping in an SBDRY section.
  
  When a thread enters ptracestop(), for example because it had received
  SIGSTOP from ptrace(PT_ATTACH), it attempts to suspend other threads in
  the same process. In the case of a thread sleeping interruptibly in an
  SBDRY section, sig_suspend_threads() must wake the thread and allow it to
  reach the user-mode boundary. However, sig_suspend_threads() would
  erroneously avoid waking up such threads, resulting in an apparent hang.
  
  Reviewed by:  kib
  Tested by:pho
  MFC after:2 weeks
  Sponsored by: Dell EMC Isilon

Modified:
  head/sys/kern/kern_sig.c

Modified: head/sys/kern/kern_sig.c
==
--- head/sys/kern/kern_sig.cThu May 11 16:37:29 2017(r318190)
+++ head/sys/kern/kern_sig.cThu May 11 17:03:45 2017(r318191)
@@ -2477,6 +2477,7 @@ sig_suspend_threads(struct thread *td, s
 
PROC_LOCK_ASSERT(p, MA_OWNED);
PROC_SLOCK_ASSERT(p, MA_OWNED);
+   MPASS(sending || td == curthread);
 
wakeup_swapper = 0;
FOREACH_THREAD_IN_PROC(p, td2) {
@@ -2493,10 +2494,9 @@ sig_suspend_threads(struct thread *td, s
 */
KASSERT(!TD_IS_SUSPENDED(td2),
("thread with deferred stops suspended"));
-   if (TD_SBDRY_INTR(td2) && sending) {
+   if (TD_SBDRY_INTR(td2))
wakeup_swapper |= sleepq_abort(td2,
TD_SBDRY_ERRNO(td2));
-   }
} else if (!TD_IS_SUSPENDED(td2)) {
thread_suspend_one(td2);
}
___
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: r318190 - head/release/scripts

2017-05-11 Thread Glen Barber
Author: gjb
Date: Thu May 11 16:37:29 2017
New Revision: 318190
URL: https://svnweb.freebsd.org/changeset/base/318190

Log:
  Update release/scripts/atlas-upload.sh to account for API changes
  made recently by Atlas Hashicorp.  The data returned from GET and
  POST requests has changed, which caused a number of regex patterns
  to fail to be properly identified as 'success' or 'failure', which
  ended up in upload/publish failures.
  
  Tested with:  12-CURRENT
  MFC after:3 days
  Sponsored by: The FreeBSD Foundation

Modified:
  head/release/scripts/atlas-upload.sh

Modified: head/release/scripts/atlas-upload.sh
==
--- head/release/scripts/atlas-upload.shThu May 11 16:26:56 2017
(r318189)
+++ head/release/scripts/atlas-upload.shThu May 11 16:37:29 2017
(r318190)
@@ -132,20 +132,20 @@ main () {
echo "Failed to get the token from the API"
exit 2;
fi
-   echo ${TOKENRESULT} | grep "\"token\":" > /dev/null
+   echo ${TOKENRESULT} | grep -E "\"(token|upload_path)\":" > /dev/null
if [ $? != 0 ]; then
echo "No token found from the API"
exit 2
else
-   TOKEN=$(echo $TOKENRESULT | sed -e 's/.*token":"//' -e 
's/".*//')
+   TOKEN=$(echo $TOKENRESULT | sed -e 's/.*token":"//' -e 
's/.*upload_path":"//' -e 's/}$//g' -e 's/"//g')
echo "Uploading to Atlas"
-   UPLOADRESULT=$(/usr/local/bin/curl -s -X PUT --upload-file 
${FILE} ${ATLAS_UPLOAD_URL}/${TOKEN})
+   UPLOADRESULT=$(/usr/local/bin/curl -s -X PUT --upload-file 
${FILE} ${TOKEN})
 
# Validate the Upload
echo "Validating"
VALIDRESULT=$(/usr/local/bin/curl -s 
"https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}?access_token=${KEY}";)
-   HOSTED_TOKEN=$(echo $VALIDRESULT | sed -e 
's/.*hosted_token":"//' -e 's/".*//')
-   if [ ! -z ${HOSTED_TOKEN} -a ! -z ${TOKEN} -a ${HOSTED_TOKEN} 
!= ${TOKEN} ]; then
+   HOSTED_TOKEN=$(echo $VALIDRESULT | sed -e 's/.*"hosted"://' -e 
's/,.*$//')
+   if [ ! -z ${TOKEN} -a "${HOSTED_TOKEN}" != "true" ]; then
echo "Upload failed, try again."
exit 2
fi
___
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: r318189 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

2017-05-11 Thread Alan Somers
Author: asomers
Date: Thu May 11 16:26:56 2017
New Revision: 318189
URL: https://svnweb.freebsd.org/changeset/base/318189

Log:
  vdev_geom may associate multiple vdevs per g_consumer
  
  vdev_geom.c currently uses the g_consumer's private field to point to a
  vdev_t. That way, a GEOM event can cause a change to a ZFS vdev. For
  example, when you remove a disk, the vdev's status will change to REMOVED.
  However, vdev_geom will sometimes attach multiple vdevs to the same GEOM
  consumer. If this happens, then geom events will only be propagated to one
  of the vdevs.
  
  Fix this by storing a linked list of vdevs in g_consumer's private field.
  
  sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
  
  * g_consumer.private now stores a linked list of vdev pointers associated
with the consumer instead of just a single vdev pointer.
  
  * Change vdev_geom_set_physpath's signature to more closely match
vdev_geom_set_rotation_rate
  
  * Don't bother calling g_access in vdev_geom_set_physpath. It's guaranteed
that we've already accessed the consumer by the time we get here.
  
  * Don't call vdev_geom_set_physpath in vdev_geom_attach. Instead, call it
in vdev_geom_open, after we know that the open has succeeded.
  
  PR:   218634
  Reviewed by:  gibbs
  MFC after:1 week
  Sponsored by: Spectra Logic Corp
  Differential Revision:https://reviews.freebsd.org/D10391

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
==
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Thu May 
11 15:19:04 2017(r318188)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Thu May 
11 16:26:56 2017(r318189)
@@ -49,6 +49,16 @@ struct g_class zfs_vdev_class = {
.attrchanged = vdev_geom_attrchanged,
 };
 
+struct consumer_vdev_elem {
+   SLIST_ENTRY(consumer_vdev_elem) elems;
+   vdev_t  *vd;
+};
+
+SLIST_HEAD(consumer_priv_t, consumer_vdev_elem);
+_Static_assert(sizeof(((struct g_consumer*)NULL)->private)
+== sizeof(struct consumer_priv_t*),
+"consumer_priv_t* can't be stored in g_consumer.private");
+
 DECLARE_GEOM_CLASS(zfs_vdev_class, zfs_vdev);
 
 SYSCTL_DECL(_vfs_zfs_vdev);
@@ -85,21 +95,16 @@ vdev_geom_set_rotation_rate(vdev_t *vd, 
 }
 
 static void
-vdev_geom_set_physpath(struct g_consumer *cp, boolean_t do_null_update)
+vdev_geom_set_physpath(vdev_t *vd, struct g_consumer *cp,
+  boolean_t do_null_update)
 {
boolean_t needs_update = B_FALSE;
-   vdev_t *vd;
char *physpath;
int error, physpath_len;
 
-   if (g_access(cp, 1, 0, 0) != 0)
-   return;
-
-   vd = cp->private;
physpath_len = MAXPATHLEN;
physpath = g_malloc(physpath_len, M_WAITOK|M_ZERO);
error = g_io_getattr("GEOM::physpath", cp, &physpath_len, physpath);
-   g_access(cp, -1, 0, 0);
if (error == 0) {
char *old_physpath;
 
@@ -130,37 +135,40 @@ vdev_geom_set_physpath(struct g_consumer
 static void
 vdev_geom_attrchanged(struct g_consumer *cp, const char *attr)
 {
-   vdev_t *vd;
char *old_physpath;
+   struct consumer_priv_t *priv;
+   struct consumer_vdev_elem *elem;
int error;
 
-   vd = cp->private;
-   if (vd == NULL)
+   priv = (struct consumer_priv_t*)&cp->private;
+   if (SLIST_EMPTY(priv))
return;
 
-   if (strcmp(attr, "GEOM::rotation_rate") == 0) {
-   vdev_geom_set_rotation_rate(vd, cp);
-   return;
-   }
-
-   if (strcmp(attr, "GEOM::physpath") == 0) {
-   vdev_geom_set_physpath(cp, /*do_null_update*/B_TRUE);
-   return;
+   SLIST_FOREACH(elem, priv, elems) {
+   vdev_t *vd = elem->vd;
+   if (strcmp(attr, "GEOM::rotation_rate") == 0) {
+   vdev_geom_set_rotation_rate(vd, cp);
+   return;
+   }
+   if (strcmp(attr, "GEOM::physpath") == 0) {
+   vdev_geom_set_physpath(vd, cp, /*null_update*/B_TRUE);
+   return;
+   }
}
 }
 
 static void
 vdev_geom_orphan(struct g_consumer *cp)
 {
-   vdev_t *vd;
+   struct consumer_priv_t *priv;
+   struct consumer_vdev_elem *elem;
 
g_topology_assert();
 
-   vd = cp->private;
-   if (vd == NULL) {
+   priv = (struct consumer_priv_t*)&cp->private;
+   if (SLIST_EMPTY(priv))
/* Vdev close in progress.  Ignore the event. */
return;
-   }
 
/*
 * Orphan callbacks occur from the GEOM event thread.
@@ -176,8 +184,12 @@ vdev_geom_orphan(struct g_consumer *cp)
 * async removal support to invoke a close on this
 * vde

svn commit: r318188 - in head/sys/dev: mpr mps

2017-05-11 Thread Scott Long
Author: scottl
Date: Thu May 11 15:19:04 2017
New Revision: 318188
URL: https://svnweb.freebsd.org/changeset/base/318188

Log:
  Improve error messages during command timeout for the mpr and mps
  drivers.
  
  Sponsored by: Netflix

Modified:
  head/sys/dev/mpr/mpr_sas.c
  head/sys/dev/mps/mps_sas.c

Modified: head/sys/dev/mpr/mpr_sas.c
==
--- head/sys/dev/mpr/mpr_sas.c  Thu May 11 13:50:16 2017(r318187)
+++ head/sys/dev/mpr/mpr_sas.c  Thu May 11 15:19:04 2017(r318188)
@@ -1562,7 +1562,7 @@ mprsas_send_abort(struct mpr_softc *sc, 
return -1;
}
 
-   mprsas_log_command(tm, MPR_RECOVERY|MPR_INFO,
+   mprsas_log_command(cm, MPR_RECOVERY|MPR_INFO,
"Aborting command %p\n", cm);
 
req = (MPI2_SCSI_TASK_MANAGE_REQUEST *)tm->cm_req;
@@ -1594,7 +1594,7 @@ mprsas_send_abort(struct mpr_softc *sc, 
 
err = mpr_map_command(sc, tm);
if (err)
-   mprsas_log_command(tm, MPR_RECOVERY,
+   mpr_dprint(sc, MPR_RECOVERY,
"error %d sending abort for cm %p SMID %u\n",
err, cm, req->TaskMID);
return err;
@@ -1635,8 +1635,9 @@ mprsas_scsiio_timeout(void *data)
targ = cm->cm_targ;
targ->timeouts++;
 
-   mprsas_log_command(cm, MPR_ERROR, "command timeout cm %p ccb %p target "
-   "%u, handle(0x%04x)\n", cm, cm->cm_ccb, targ->tid, targ->handle);
+   mprsas_log_command(cm, MPR_ERROR, "command timeout %d cm %p target "
+   "%u, handle(0x%04x)\n", cm->cm_ccb->ccb_h.timeout, cm,  targ->tid,
+   targ->handle);
if (targ->encl_level_valid) {
mpr_dprint(sc, MPR_ERROR, "At enclosure level %d, slot %d, "
"connector name (%4s)\n", targ->encl_level, targ->encl_slot,

Modified: head/sys/dev/mps/mps_sas.c
==
--- head/sys/dev/mps/mps_sas.c  Thu May 11 13:50:16 2017(r318187)
+++ head/sys/dev/mps/mps_sas.c  Thu May 11 15:19:04 2017(r318188)
@@ -1505,7 +1505,7 @@ mpssas_send_abort(struct mps_softc *sc, 
return -1;
}
 
-   mpssas_log_command(tm, MPS_RECOVERY|MPS_INFO,
+   mpssas_log_command(cm, MPS_RECOVERY|MPS_INFO,
"Aborting command %p\n", cm);
 
req = (MPI2_SCSI_TASK_MANAGE_REQUEST *)tm->cm_req;
@@ -1536,7 +1536,7 @@ mpssas_send_abort(struct mps_softc *sc, 
 
err = mps_map_command(sc, tm);
if (err)
-   mpssas_log_command(tm, MPS_RECOVERY,
+   mps_dprint(sc, MPS_RECOVERY,
"error %d sending abort for cm %p SMID %u\n",
err, cm, req->TaskMID);
return err;
@@ -1574,12 +1574,13 @@ mpssas_scsiio_timeout(void *data)
return;
}
 
-   mpssas_log_command(cm, MPS_INFO, "command timeout cm %p ccb %p\n", 
-   cm, cm->cm_ccb);
-
targ = cm->cm_targ;
targ->timeouts++;
 
+   mpssas_log_command(cm, MPS_ERROR, "command timeout %d cm %p target "
+   "%u, handle(0x%04x)\n", cm->cm_ccb->ccb_h.timeout, cm,  targ->tid,
+   targ->handle);
+
/* XXX first, check the firmware state, to see if it's still
 * operational.  if not, do a diag reset.
 */
___
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: r318187 - stable/10/share/man/man4

2017-05-11 Thread Hans Petter Selasky
Author: hselasky
Date: Thu May 11 13:50:16 2017
New Revision: 318187
URL: https://svnweb.freebsd.org/changeset/base/318187

Log:
  MFC r317584:
  Correct manual page link to usbdi(9).

Modified:
  stable/10/share/man/man4/usb.4
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/share/man/man4/usb.4
==
--- stable/10/share/man/man4/usb.4  Thu May 11 13:49:05 2017
(r318186)
+++ stable/10/share/man/man4/usb.4  Thu May 11 13:50:16 2017
(r318187)
@@ -144,7 +144,7 @@ specifications can be found at:
 .D1 Pa http://www.usb.org/developers/docs/
 .Pp
 .Xr libusb 3 ,
-.Xr usbdi 4 ,
+.Xr usbdi 9 ,
 .Xr aue 4 ,
 .Xr axe 4 ,
 .Xr axge 4 ,
___
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: r318186 - stable/11/share/man/man4

2017-05-11 Thread Hans Petter Selasky
Author: hselasky
Date: Thu May 11 13:49:05 2017
New Revision: 318186
URL: https://svnweb.freebsd.org/changeset/base/318186

Log:
  MFC r317584:
  Correct manual page link to usbdi(9).

Modified:
  stable/11/share/man/man4/usb.4
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/share/man/man4/usb.4
==
--- stable/11/share/man/man4/usb.4  Thu May 11 13:46:30 2017
(r318185)
+++ stable/11/share/man/man4/usb.4  Thu May 11 13:49:05 2017
(r318186)
@@ -144,7 +144,7 @@ specifications can be found at:
 .D1 Pa http://www.usb.org/developers/docs/
 .Pp
 .Xr libusb 3 ,
-.Xr usbdi 4 ,
+.Xr usbdi 9 ,
 .Xr aue 4 ,
 .Xr axe 4 ,
 .Xr axge 4 ,
___
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: r318185 - in head: lib/libmt usr.bin/mt

2017-05-11 Thread Kenneth D. Merry
Author: ken
Date: Thu May 11 13:46:30 2017
New Revision: 318185
URL: https://svnweb.freebsd.org/changeset/base/318185

Log:
  Add LTO-8 density codes.
  
  lib/libmt/mtlib.c:
Add the LTO-8 density code to the density table in libmt.
  
  usr.bin/mt/mt.1:
Add the LTO-8 density code, tracks, bpmm, and bpi to the density
table in the mt(1) man page.
  
  MFC after:3 days
  Sponsored by: Spectra Logic

Modified:
  head/lib/libmt/mtlib.c
  head/usr.bin/mt/mt.1

Modified: head/lib/libmt/mtlib.c
==
--- head/lib/libmt/mtlib.c  Thu May 11 11:13:02 2017(r318184)
+++ head/lib/libmt/mtlib.c  Thu May 11 13:46:30 2017(r318185)
@@ -644,6 +644,7 @@ static struct densities {
{ 0x58, 15142,  384607, "LTO-5" },
{ 0x5A, 15142,  384607, "LTO-6" },
{ 0x5C, 19107,  485318, "LTO-7" },
+   { 0x5E, 20669,  524993, "LTO-8" },
{ 0x71, 11800,  299720, "3592A1 (encrypted)" },
{ 0x72, 11800,  299720, "3592A2 (encrypted)" },
{ 0x73, 13452,  341681, "3592A3 (encrypted)" },

Modified: head/usr.bin/mt/mt.1
==
--- head/usr.bin/mt/mt.1Thu May 11 11:13:02 2017(r318184)
+++ head/usr.bin/mt/mt.1Thu May 11 13:46:30 2017(r318185)
@@ -29,7 +29,7 @@
 .\"@(#)mt.18.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd May 5, 2017
+.Dd May 11, 2017
 .Dt MT 1
 .Os
 .Sh NAME
@@ -521,6 +521,7 @@ Value  WidthTracksDensity   
 0x58   12.7  (0.5) 1280  15,142 (384,607)   C   LTO-5
 0x5A   12.7  (0.5) 2176  15,142 (384,607)   C   LTO-6
 0x5C   12.7  (0.5) 3584  19,107 (485,318)   C   LTO-7
+0x5E   12.7  (0.5) 6656  20,669 (524,993)   C   LTO-8
 0x71   12.7  (0.5)  512  11,800 (299,720)   C   3592A1 (encrypted)
 0x72   12.7  (0.5)  896  11,800 (299,720)   C   3592A2 (encrypted)
 0x73   12.7  (0.5) 1152  13,452 (341,681)   C   3592A3 (encrypted)
___
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: r318166 - head/sys/netinet

2017-05-11 Thread Fabian Keil
Gleb Smirnoff  wrote:

> Author: glebius
> Date: Wed May 10 23:32:31 2017
> New Revision: 318166
> URL: https://svnweb.freebsd.org/changeset/base/318166
> 
> Log:
>   There is no good reason for TCP reassembly zone to be UMA_ZONE_NOFREE.
>   
>   It has strong locking model, doesn't have any timers associated with
>   entries.  The entries theirselves are referenced only from the tcpcb
> zone, which itself is a normal zone, without the UMA_ZONE_NOFREE flag.

A side effect of the UMA_ZONE_NOFREE flag is that allocations
with M_NOWAIT (currently used tcp_reass()) are less likely to
fail.

Removing the UMA_ZONE_NOFREE in other TCP-related parts
"recently" caused (still unfixed) regressions like:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209680

It would be great if there was a method to reserve a certain
number of items for the zone without having to rely on
UMA_ZONE_NOFREE but last time I checked there wasn't one.

Fabian


pgpICYxU2RXuq.pgp
Description: OpenPGP digital signature


Re: svn commit: r318161 - head/contrib/bmake

2017-05-11 Thread Renato Botelho
On 10/05/17 19:35, Ngie Cooper wrote:
> On Wed, May 10, 2017 at 3:31 PM, Ngie Cooper  wrote:
>> On Wed, May 10, 2017 at 3:24 PM, Simon J. Gerraty  wrote:
>>> Author: sjg
>>> Date: Wed May 10 22:24:09 2017
>>> New Revision: 318161
>>> URL: https://svnweb.freebsd.org/changeset/base/318161
>>>
>>> Log:
>>>   Ensure buf2 is in scope
>>
>> I think this is the proper fix for the issue that Bryan, Ravi, and I
> 
> Ravi -> Renato
> 
>> reported.. also reported as Coverity CID: 1374641.

Yeah, it fixed the problem to me.

Thanks!
-- 
Renato Botelho
___
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: r318184 - vendor/libarchive/dist/cpio/test

2017-05-11 Thread Martin Matuska
Author: mm
Date: Thu May 11 11:13:02 2017
New Revision: 318184
URL: https://svnweb.freebsd.org/changeset/base/318184

Log:
  Update vendor/libarchive to git f2230fcaed3159d10caed63d9a20caa9fdc94c62
  
  Vendor fixes:
#909: Fix use after free in cpio test_option_lz4
  
  Reported by:  Coverity (ngie@)

Modified:
  vendor/libarchive/dist/cpio/test/test_option_lz4.c

Modified: vendor/libarchive/dist/cpio/test/test_option_lz4.c
==
--- vendor/libarchive/dist/cpio/test/test_option_lz4.c  Thu May 11 09:36:51 
2017(r318183)
+++ vendor/libarchive/dist/cpio/test/test_option_lz4.c  Thu May 11 11:13:02 
2017(r318184)
@@ -74,8 +74,8 @@ DEFINE_TEST(test_option_lz4)
free(p);
return;
}
-   free(p);
failure("--lz4 option is broken: %s", p);
+   free(p);
assertEqualInt(r, 0);
return;
}
___
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: r318183 - stable/11/sys/kern

2017-05-11 Thread Konstantin Belousov
Author: kib
Date: Thu May 11 09:36:51 2017
New Revision: 318183
URL: https://svnweb.freebsd.org/changeset/base/318183

Log:
  MFC r317523:
  Add asserts to verify stability of struct proc and struct thread layouts.

Modified:
  stable/11/sys/kern/kern_thread.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/kern_thread.c
==
--- stable/11/sys/kern/kern_thread.cThu May 11 08:39:55 2017
(r318182)
+++ stable/11/sys/kern/kern_thread.cThu May 11 09:36:51 2017
(r318183)
@@ -64,6 +64,57 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
+/*
+ * Asserts below verify the stability of struct thread and struct proc
+ * layout, as exposed by KBI to modules.  On head, the KBI is allowed
+ * to drift, change to the structures must be accompanied by the
+ * assert update.
+ *
+ * On the stable branches after KBI freeze, conditions must not be
+ * violated.  Typically new fields are moved to the end of the
+ * structures.
+ */
+#ifdef __amd64__
+_Static_assert(offsetof(struct thread, td_flags) == 0xe4,
+"struct thread KBI td_flags");
+_Static_assert(offsetof(struct thread, td_pflags) == 0xec,
+"struct thread KBI td_pflags");
+_Static_assert(offsetof(struct thread, td_frame) == 0x418,
+"struct thread KBI td_frame");
+_Static_assert(offsetof(struct thread, td_emuldata) == 0x4c0,
+"struct thread KBI td_emuldata");
+_Static_assert(offsetof(struct proc, p_flag) == 0xb0,
+"struct proc KBI p_flag");
+_Static_assert(offsetof(struct proc, p_pid) == 0xbc,
+"struct proc KBI p_pid");
+_Static_assert(offsetof(struct proc, p_filemon) == 0x3d0,
+"struct proc KBI p_filemon");
+_Static_assert(offsetof(struct proc, p_comm) == 0x3e0,
+"struct proc KBI p_comm");
+_Static_assert(offsetof(struct proc, p_emuldata) == 0x4b0,
+"struct proc KBI p_emuldata");
+#endif
+#ifdef __i386__
+_Static_assert(offsetof(struct thread, td_flags) == 0x8c,
+"struct thread KBI td_flags");
+_Static_assert(offsetof(struct thread, td_pflags) == 0x94,
+"struct thread KBI td_pflags");
+_Static_assert(offsetof(struct thread, td_frame) == 0x2c0,
+"struct thread KBI td_frame");
+_Static_assert(offsetof(struct thread, td_emuldata) == 0x30c,
+"struct thread KBI td_emuldata");
+_Static_assert(offsetof(struct proc, p_flag) == 0x68,
+"struct proc KBI p_flag");
+_Static_assert(offsetof(struct proc, p_pid) == 0x74,
+"struct proc KBI p_pid");
+_Static_assert(offsetof(struct proc, p_filemon) == 0x278,
+"struct proc KBI p_filemon");
+_Static_assert(offsetof(struct proc, p_comm) == 0x284,
+"struct proc KBI p_comm");
+_Static_assert(offsetof(struct proc, p_emuldata) == 0x304,
+"struct proc KBI p_emuldata");
+#endif
+
 SDT_PROVIDER_DECLARE(proc);
 SDT_PROBE_DEFINE(proc, , , lwp__exit);
 
___
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: r318182 - head/share/man/man7

2017-05-11 Thread Edward Tomasz Napierala
Author: trasz
Date: Thu May 11 08:39:55 2017
New Revision: 318182
URL: https://svnweb.freebsd.org/changeset/base/318182

Log:
  Improve build(7): add missing "buildkernel" and "installkernel"
  to the example, change the architectures to something more common,
  and improve description of defaults for TARGET.
  
  Reviewed by:  bdrewery, ngie, imp (older revisions)
  MFC after:2 weeks
  Differential Revision:https://reviews.freebsd.org/D10654

Modified:
  head/share/man/man7/build.7

Modified: head/share/man/man7/build.7
==
--- head/share/man/man7/build.7 Thu May 11 08:22:01 2017(r318181)
+++ head/share/man/man7/build.7 Thu May 11 08:39:55 2017(r318182)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd March 22, 2017
+.Dd May 11, 2017
 .Dt BUILD 7
 .Os
 .Sh NAME
@@ -528,7 +528,10 @@ and
 .Va TARGET Ns = Ns Li arm64 .
 If not set,
 .Va TARGET
-defaults to the current hardware platform.
+defaults to the current hardware platform, unless
+.Va TARGET_ARCH
+is also set, in which case it defaults to the appropriate
+value for that architecture.
 .It Va TARGET_ARCH
 The target machine processor architecture.
 This is analogous to the
@@ -689,11 +692,11 @@ section in
 .Pa src/UPDATING .
 .Pp
 The following sequence of commands can be used to cross-build the
-system for the sparc64 architecture on an i386 host:
+system for the armv6 architecture on an amd64 host:
 .Bd -literal -offset indent
 cd /usr/src
-make TARGET=sparc64 buildworld
-make TARGET=sparc64 DESTDIR=/clients/sparc64 installworld
+make TARGET_ARCH=armv6 buildworld buildkernel
+make TARGET_ARCH=armv6 DESTDIR=/clients/arm64 installworld installkernel
 .Ed
 .Sh SEE ALSO
 .Xr cc 1 ,
@@ -702,6 +705,7 @@ make TARGET=sparc64 DESTDIR=/clients/spa
 .Xr svn 1 ,
 .Xr make.conf 5 ,
 .Xr src.conf 5 ,
+.Xr arch 7 ,
 .Xr ports 7 ,
 .Xr release 7 ,
 .Xr tests 7 ,
___
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: r318181 - head/contrib/libarchive/cpio/test

2017-05-11 Thread Ngie Cooper
Author: ngie
Date: Thu May 11 08:22:01 2017
New Revision: 318181
URL: https://svnweb.freebsd.org/changeset/base/318181

Log:
  cpio/tests/test_option_lz4: fix a use after free in the failure case
  
  This change will be upstreamed to the libarchive project.
  
  MFC after:6 days
  MFC with: r317782
  Reported by:  Coverity
  Sponsored by: Dell EMC Isilon

Modified:
  head/contrib/libarchive/cpio/test/test_option_lz4.c

Modified: head/contrib/libarchive/cpio/test/test_option_lz4.c
==
--- head/contrib/libarchive/cpio/test/test_option_lz4.c Thu May 11 08:06:46 
2017(r318180)
+++ head/contrib/libarchive/cpio/test/test_option_lz4.c Thu May 11 08:22:01 
2017(r318181)
@@ -74,8 +74,8 @@ DEFINE_TEST(test_option_lz4)
free(p);
return;
}
-   free(p);
failure("--lz4 option is broken: %s", p);
+   free(p);
assertEqualInt(r, 0);
return;
}
___
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: r318180 - head/tests/sys/aio

2017-05-11 Thread Ngie Cooper
Author: ngie
Date: Thu May 11 08:06:46 2017
New Revision: 318180
URL: https://svnweb.freebsd.org/changeset/base/318180

Log:
  Mark all md tests as requiring unsafe AIO in order to function
  
  These tests have been flapping (failing<->passing) on Jenkins for months.
  It passes reliably for me if unsafe AIO is permitted, but it doesn't
  pass on Jenkins reliably if unsafe AIO is disabled (the current default).
  
  Mark the tests as requiring unsafe AIO to mitigate the intermittent
  failures when unsafe AIO isn't permitted. If the kernel code is changed
  to reliably function with md(4) devices using unsafe AIO, this commit can
  be reverted.
  
  MFC after:2 months
  PR:   217261
  Reported by:  Jenkins
  Sponsored by: Dell EMC Isilon

Modified:
  head/tests/sys/aio/aio_test.c

Modified: head/tests/sys/aio/aio_test.c
==
--- head/tests/sys/aio/aio_test.c   Thu May 11 07:58:04 2017
(r318179)
+++ head/tests/sys/aio/aio_test.c   Thu May 11 08:06:46 2017
(r318180)
@@ -735,6 +735,7 @@ aio_md_test(completion comp)
struct md_ioctl mdio;
 
ATF_REQUIRE_KERNEL_MODULE("aio");
+   ATF_REQUIRE_UNSAFE_AIO();
 
mdctl_fd = open("/dev/" MDCTL_NAME, O_RDWR, 0);
ATF_REQUIRE_MSG(mdctl_fd != -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: r318179 - head/usr.bin/procstat

2017-05-11 Thread Ngie Cooper
Author: ngie
Date: Thu May 11 07:58:04 2017
New Revision: 318179
URL: https://svnweb.freebsd.org/changeset/base/318179

Log:
  procstat(1): also reference icmp(4) and sctp(4)
  
  This was missed in the previous commit by accident.
  
  MFC after:3 weeks
  MFC with: r318178
  Sponsored by: Dell EMC Isilon

Modified:
  head/usr.bin/procstat/procstat.1

Modified: head/usr.bin/procstat/procstat.1
==
--- head/usr.bin/procstat/procstat.1Thu May 11 07:55:38 2017
(r318178)
+++ head/usr.bin/procstat/procstat.1Thu May 11 07:58:04 2017
(r318179)
@@ -602,7 +602,9 @@ auxiliary vector value
 .Xr xo_parse_args 3 ,
 .Xr ddb 4 ,
 .Xr divert 4 ,
+.Xr icmp 4 ,
 .Xr ip 4 ,
+.Xr sctp 4 ,
 .Xr tcp 4 ,
 .Xr udp 4 ,
 .Xr stack 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: r318178 - head/usr.bin/procstat

2017-05-11 Thread Ngie Cooper
Author: ngie
Date: Thu May 11 07:55:38 2017
New Revision: 318178
URL: https://svnweb.freebsd.org/changeset/base/318178

Log:
  procstat(1): document all possible `PRO` (network protocol) values
  
  Reference the appropriate section 4 manpages for networking
  protocols.
  
  MFC after:3 weeks
  Sponsored by: Dell EMC Isilon

Modified:
  head/usr.bin/procstat/procstat.1

Modified: head/usr.bin/procstat/procstat.1
==
--- head/usr.bin/procstat/procstat.1Thu May 11 06:57:20 2017
(r318177)
+++ head/usr.bin/procstat/procstat.1Thu May 11 07:55:38 2017
(r318178)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 10, 2017
+.Dd May 11, 2017
 .Dt PROCSTAT 1
 .Os
 .Sh NAME
@@ -271,6 +271,60 @@ omitted, and a new capabilities field wi
 as described in
 .Xr cap_rights_limit 2 ,
 present for each capability descriptor.
+.Pp
+The following network protocols may be displayed (grouped by address family):
+.Pp
+.Dv AF_INET ,
+.Dv AF_INET6
+.Pp
+.Bl -tag -width indent -compact
+.It ICM
+.Dv IPPROTO_ICMP ;
+see
+.Xr icmp 4 .
+.It IPD
+.Dv IPPROTO_DIVERT ;
+see
+.Xr divert 4 .
+.It IP\?
+unknown protocol.
+.It RAW
+.Dv IPPROTO_RAW ;
+see
+.Xr ip 4 .
+.It SCT
+.Dv IPPROTO_SCTP ;
+see
+.Xr sctp 4 .
+.It TCP
+.Dv IPPROTO_TCP ;
+see
+.Xr tcp 4 .
+.It UDP
+.Dv IPPROTO_UDP ;
+see
+.Xr udp 4 .
+.El
+.Pp
+.Dv AF_LOCAL
+.Pp
+.Bl -tag -width indent -compact
+.It UDD
+.Dv IPPROTO_UDP ;
+see
+.Xr udp 4 .
+.It UDS
+.Dv IPPROTO_TCP ;
+see
+.Xr tcp 4 .
+.It UD\?
+unknown protocol.
+.El
+.Pp
+.Bl -tag -width indent -compact
+.It \?
+unknown address family.
+.El
 .Ss Signal Disposition Information
 Display signal pending and disposition for a process:
 .Pp
@@ -547,6 +601,10 @@ auxiliary vector value
 .Xr signal 3 ,
 .Xr xo_parse_args 3 ,
 .Xr ddb 4 ,
+.Xr divert 4 ,
+.Xr ip 4 ,
+.Xr tcp 4 ,
+.Xr udp 4 ,
 .Xr stack 9
 .Sh AUTHORS
 .An Robert N M Watson Aq Mt rwat...@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"