svn commit: r298316 - stable/9/lib/libgssapi
Author: pfg Date: Wed Apr 20 00:50:17 2016 New Revision: 298316 URL: https://svnweb.freebsd.org/changeset/base/298316 Log: MFC 297942: libgssapi: avoid NULL pointer dereferences. While here also use NULL instead of zero for pointers. Modified: stable/9/lib/libgssapi/gss_add_cred.c stable/9/lib/libgssapi/gss_encapsulate_token.c stable/9/lib/libgssapi/gss_get_mic.c stable/9/lib/libgssapi/gss_inquire_context.c stable/9/lib/libgssapi/gss_mech_switch.c stable/9/lib/libgssapi/gss_pseudo_random.c stable/9/lib/libgssapi/gss_verify_mic.c stable/9/lib/libgssapi/gss_wrap.c stable/9/lib/libgssapi/gss_wrap_size_limit.c Directory Properties: stable/9/lib/libgssapi/ (props changed) Modified: stable/9/lib/libgssapi/gss_add_cred.c == --- stable/9/lib/libgssapi/gss_add_cred.c Wed Apr 20 00:49:49 2016 (r298315) +++ stable/9/lib/libgssapi/gss_add_cred.c Wed Apr 20 00:50:17 2016 (r298316) @@ -121,7 +121,7 @@ gss_add_cred(OM_uint32 *minor_status, * gss_add_cred for that mechanism, otherwise we copy the mc * to new_cred. */ - target_mc = 0; + target_mc = NULL; if (cred) { SLIST_FOREACH(mc, >gc_mc, gmc_link) { if (gss_oid_equal(mc->gmc_mech_oid, desired_mech)) { @@ -151,7 +151,7 @@ gss_add_cred(OM_uint32 *minor_status, return (major_status); } } else { - mn = 0; + mn = NULL; } m = _gss_find_mech_switch(desired_mech); Modified: stable/9/lib/libgssapi/gss_encapsulate_token.c == --- stable/9/lib/libgssapi/gss_encapsulate_token.c Wed Apr 20 00:49:49 2016(r298315) +++ stable/9/lib/libgssapi/gss_encapsulate_token.c Wed Apr 20 00:50:17 2016(r298316) @@ -47,7 +47,7 @@ gss_encapsulate_token(const gss_buffer_t * First time around, we calculate the size, second time, we * encode the token. */ - p = 0; + p = NULL; for (i = 0; i < 2; i++) { len = 0; Modified: stable/9/lib/libgssapi/gss_get_mic.c == --- stable/9/lib/libgssapi/gss_get_mic.cWed Apr 20 00:49:49 2016 (r298315) +++ stable/9/lib/libgssapi/gss_get_mic.cWed Apr 20 00:50:17 2016 (r298316) @@ -40,13 +40,14 @@ gss_get_mic(OM_uint32 *minor_status, gss_buffer_t message_token) { struct _gss_context *ctx = (struct _gss_context *) context_handle; - struct _gss_mech_switch *m = ctx->gc_mech; + struct _gss_mech_switch *m; _gss_buffer_zero(message_token); if (ctx == NULL) { *minor_status = 0; return (GSS_S_NO_CONTEXT); } + m = ctx->gc_mech; return (m->gm_get_mic(minor_status, ctx->gc_ctx, qop_req, message_buffer, message_token)); Modified: stable/9/lib/libgssapi/gss_inquire_context.c == --- stable/9/lib/libgssapi/gss_inquire_context.cWed Apr 20 00:49:49 2016(r298315) +++ stable/9/lib/libgssapi/gss_inquire_context.cWed Apr 20 00:50:17 2016(r298316) @@ -99,7 +99,7 @@ gss_inquire_context(OM_uint32 *minor_sta if (src_name) gss_release_name(minor_status, src_name); m->gm_release_name(minor_status, _mn); - minor_status = 0; + minor_status = NULL; return (GSS_S_FAILURE); } *targ_name = (gss_name_t) name; Modified: stable/9/lib/libgssapi/gss_mech_switch.c == --- stable/9/lib/libgssapi/gss_mech_switch.cWed Apr 20 00:49:49 2016 (r298315) +++ stable/9/lib/libgssapi/gss_mech_switch.cWed Apr 20 00:50:17 2016 (r298316) @@ -83,7 +83,7 @@ _gss_string_to_oid(const char* s, gss_OI * out the size. Second time around, we actually encode the * number. */ - res = 0; + res = NULL; for (i = 0; i < 2; i++) { byte_count = 0; for (p = s, j = 0; p; p = q, j++) { Modified: stable/9/lib/libgssapi/gss_pseudo_random.c == --- stable/9/lib/libgssapi/gss_pseudo_random.c Wed Apr 20 00:49:49 2016 (r298315) +++ stable/9/lib/libgssapi/gss_pseudo_random.c Wed Apr 20 00:50:17 2016 (r298316) @@ -48,7 +48,7 @@ gss_pseudo_random(OM_uint32 *minor_statu gss_buffer_t prf_out) { struct _gss_context *ctx = (struct _gss_context *) context; -struct
svn commit: r298284 - stable/9/sys/dev/bxe
Author: davidcs Date: Tue Apr 19 19:03:06 2016 New Revision: 298284 URL: https://svnweb.freebsd.org/changeset/base/298284 Log: MFC r297884 Add support for Flash Update Submitted by:nrapendra.si...@qlogic.com;vaishali.kulka...@qlogic.com;davi...@freebsd.org Modified: stable/9/sys/dev/bxe/bxe.c stable/9/sys/dev/bxe/bxe.h stable/9/sys/dev/bxe/bxe_ioctl.h Directory Properties: stable/9/ (props changed) stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/bxe/bxe.c == --- stable/9/sys/dev/bxe/bxe.c Tue Apr 19 18:57:31 2016(r298283) +++ stable/9/sys/dev/bxe/bxe.c Tue Apr 19 19:03:06 2016(r298284) @@ -13693,49 +13693,60 @@ bxe_get_tunable_params(struct bxe_softc sc->udp_rss); } -static void +static int bxe_media_detect(struct bxe_softc *sc) { +int port_type; uint32_t phy_idx = bxe_get_cur_phy_idx(sc); + switch (sc->link_params.phy[phy_idx].media_type) { case ELINK_ETH_PHY_SFPP_10G_FIBER: case ELINK_ETH_PHY_XFP_FIBER: BLOGI(sc, "Found 10Gb Fiber media.\n"); sc->media = IFM_10G_SR; +port_type = PORT_FIBRE; break; case ELINK_ETH_PHY_SFP_1G_FIBER: BLOGI(sc, "Found 1Gb Fiber media.\n"); sc->media = IFM_1000_SX; +port_type = PORT_FIBRE; break; case ELINK_ETH_PHY_KR: case ELINK_ETH_PHY_CX4: BLOGI(sc, "Found 10GBase-CX4 media.\n"); sc->media = IFM_10G_CX4; +port_type = PORT_FIBRE; break; case ELINK_ETH_PHY_DA_TWINAX: BLOGI(sc, "Found 10Gb Twinax media.\n"); sc->media = IFM_10G_TWINAX; +port_type = PORT_DA; break; case ELINK_ETH_PHY_BASE_T: if (sc->link_params.speed_cap_mask[0] & PORT_HW_CFG_SPEED_CAPABILITY_D0_10G) { BLOGI(sc, "Found 10GBase-T media.\n"); sc->media = IFM_10G_T; +port_type = PORT_TP; } else { BLOGI(sc, "Found 1000Base-T media.\n"); sc->media = IFM_1000_T; +port_type = PORT_TP; } break; case ELINK_ETH_PHY_NOT_PRESENT: BLOGI(sc, "Media not present.\n"); sc->media = 0; +port_type = PORT_OTHER; break; case ELINK_ETH_PHY_UNSPECIFIED: default: BLOGI(sc, "Unknown media!\n"); sc->media = 0; +port_type = PORT_OTHER; break; } +return port_type; } #define GET_FIELD(value, fname) \ @@ -18754,6 +18765,14 @@ bxe_add_cdev(struct bxe_softc *sc) if (sc->grc_dump == NULL) return (-1); +sc->eeprom = malloc(BXE_EEPROM_MAX_DATA_LEN, M_DEVBUF, M_NOWAIT); + +if (sc->eeprom == NULL) { +BLOGW(sc, "Unable to alloc for eeprom size buffer\n"); +free(sc->grc_dump, M_DEVBUF); sc->grc_dump = NULL; +return (-1); +} + sc->ioctl_dev = make_dev(_cdevsw, sc->ifnet->if_dunit, UID_ROOT, @@ -18765,6 +18784,8 @@ bxe_add_cdev(struct bxe_softc *sc) if (sc->ioctl_dev == NULL) { free(sc->grc_dump, M_DEVBUF); +free(sc->eeprom, M_DEVBUF); +sc->eeprom = NULL; return (-1); } @@ -18780,12 +18801,152 @@ bxe_del_cdev(struct bxe_softc *sc) if (sc->ioctl_dev != NULL) destroy_dev(sc->ioctl_dev); -if (sc->grc_dump == NULL) +if (sc->grc_dump != NULL) free(sc->grc_dump, M_DEVBUF); +if (sc->eeprom != NULL) { +free(sc->eeprom, M_DEVBUF); +sc->eeprom = NULL; +} + return; } +static bool bxe_is_nvram_accessible(struct bxe_softc *sc) +{ + +if ((sc->ifnet->if_drv_flags & IFF_DRV_RUNNING) == 0) +return FALSE; + +return TRUE; +} + + +static int +bxe_wr_eeprom(struct bxe_softc *sc, void *data, uint32_t offset, uint32_t len) +{ +int rval = 0; + +if(!bxe_is_nvram_accessible(sc)) { +BLOGW(sc, "Cannot access eeprom when interface is down\n"); +return (-EAGAIN); +} +rval = bxe_nvram_write(sc, offset, (uint8_t *)data, len); + + + return (rval); +} + +static int +bxe_rd_eeprom(struct bxe_softc *sc, void *data, uint32_t offset, uint32_t len) +{ +int rval = 0; + +if(!bxe_is_nvram_accessible(sc)) { +BLOGW(sc, "Cannot access eeprom when interface is down\n"); +return (-EAGAIN); +} +rval = bxe_nvram_read(sc, offset, (uint8_t *)data, len); + + return (rval); +} + +static int +bxe_eeprom_rd_wr(struct bxe_softc *sc, bxe_eeprom_t *eeprom) +{ +int rval = 0; + +switch (eeprom->eeprom_cmd) { + +case BXE_EEPROM_CMD_SET_EEPROM: + +rval = copyin(eeprom->eeprom_data, sc->eeprom, + eeprom->eeprom_data_len); + +if (rval) +break; + +rval = bxe_wr_eeprom(sc, sc->eeprom, eeprom->eeprom_offset, +
svn commit: r298283 - stable/9/sys/dev/bxe
Author: davidcs Date: Tue Apr 19 18:57:31 2016 New Revision: 298283 URL: https://svnweb.freebsd.org/changeset/base/298283 Log: MFC r297873 1. Process tx completions in bxe_periodic_callout_func() and restart transmissions if possible. 2. For SIOCSIFFLAGS call bxe_init_locked() only if !BXE_STATE_DISABLED 3. remove code not needed in bxe_init_internal_common() Submitted by:vaishali.kulka...@qlogic.com;venkata.bhavar...@qlogic.com Modified: stable/9/sys/dev/bxe/bxe.c stable/9/sys/dev/bxe/bxe_stats.h Directory Properties: stable/9/ (props changed) stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/bxe/bxe.c == --- stable/9/sys/dev/bxe/bxe.c Tue Apr 19 18:47:34 2016(r298282) +++ stable/9/sys/dev/bxe/bxe.c Tue Apr 19 18:57:31 2016(r298283) @@ -498,7 +498,9 @@ static const struct { { STATS_OFFSET32(mbuf_alloc_sge), 4, STATS_FLAGS_FUNC, "mbuf_alloc_sge"}, { STATS_OFFSET32(mbuf_alloc_tpa), -4, STATS_FLAGS_FUNC, "mbuf_alloc_tpa"} +4, STATS_FLAGS_FUNC, "mbuf_alloc_tpa"}, +{ STATS_OFFSET32(tx_queue_full_return), +4, STATS_FLAGS_FUNC, "tx_queue_full_return"} }; static const struct { @@ -609,7 +611,9 @@ static const struct { { Q_STATS_OFFSET32(mbuf_alloc_sge), 4, "mbuf_alloc_sge"}, { Q_STATS_OFFSET32(mbuf_alloc_tpa), -4, "mbuf_alloc_tpa"} +4, "mbuf_alloc_tpa"}, +{ Q_STATS_OFFSET32(tx_queue_full_return), +4, "tx_queue_full_return"} }; #define BXE_NUM_ETH_STATS ARRAY_SIZE(bxe_eth_stats_arr) @@ -4626,7 +4630,7 @@ bxe_ioctl(struct ifnet *ifp, if (ifp->if_drv_flags & IFF_DRV_RUNNING) { /* set the receive mode flags */ bxe_set_rx_mode(sc); -} else { +} else if(sc->state != BXE_STATE_DISABLED) { bxe_init_locked(sc); } } else { @@ -5737,11 +5741,6 @@ bxe_tx_start(struct ifnet *ifp) return; } -if (ifp->if_drv_flags & IFF_DRV_OACTIVE) { -BLOGW(sc, "Interface TX queue is full, ignoring transmit request\n"); -return; -} - if (!sc->link_vars.link_up) { BLOGW(sc, "Interface link is down, ignoring transmit request\n"); return; @@ -5749,6 +5748,11 @@ bxe_tx_start(struct ifnet *ifp) fp = >fp[0]; +if (ifp->if_drv_flags & IFF_DRV_OACTIVE) { +fp->eth_q_stats.tx_queue_full_return++; +return; +} + BXE_FP_TX_LOCK(fp); bxe_tx_start_locked(sc, ifp, fp); BXE_FP_TX_UNLOCK(fp); @@ -9950,21 +9954,6 @@ bxe_init_internal_common(struct bxe_soft { int i; -if (IS_MF_SI(sc)) { -/* - * In switch independent mode, the TSTORM needs to accept - * packets that failed classification, since approximate match - * mac addresses aren't written to NIG LLH. - */ -REG_WR8(sc, -(BAR_TSTRORM_INTMEM + TSTORM_ACCEPT_CLASSIFY_FAILED_OFFSET), -2); -} else if (!CHIP_IS_E1(sc)) { /* 57710 doesn't support MF */ -REG_WR8(sc, -(BAR_TSTRORM_INTMEM + TSTORM_ACCEPT_CLASSIFY_FAILED_OFFSET), -0); -} - /* * Zero this manually as its initialization is currently missing * in the initTool. @@ -12307,6 +12296,8 @@ static void bxe_periodic_callout_func(void *xsc) { struct bxe_softc *sc = (struct bxe_softc *)xsc; +struct bxe_fastpath *fp; +uint16_t tx_bd_avail; int i; if (!BXE_CORE_TRYLOCK(sc)) { @@ -12329,6 +12320,48 @@ bxe_periodic_callout_func(void *xsc) return; } +#if __FreeBSD_version >= 80 + +FOR_EACH_QUEUE(sc, i) { +fp = >fp[i]; + +if (BXE_FP_TX_TRYLOCK(fp)) { +struct ifnet *ifp = sc->ifnet; +/* + * If interface was stopped due to unavailable + * bds, try to process some tx completions + */ +(void) bxe_txeof(sc, fp); + +tx_bd_avail = bxe_tx_avail(sc, fp); +if (tx_bd_avail >= BXE_TX_CLEANUP_THRESHOLD) { +bxe_tx_mq_start_locked(sc, ifp, fp, NULL); +} +BXE_FP_TX_UNLOCK(fp); +} +} + +#else + +fp = >fp[0]; +if (BXE_FP_TX_TRYLOCK(fp)) { +struct ifnet *ifp = sc->ifnet; +/* + * If interface was stopped due to unavailable + * bds, try to process some tx completions + */ +(void) bxe_txeof(sc, fp); + +tx_bd_avail = bxe_tx_avail(sc, fp); +if (tx_bd_avail >= BXE_TX_CLEANUP_THRESHOLD) { +bxe_tx_start_locked(sc, ifp, fp); +} + +BXE_FP_TX_UNLOCK(fp); +} + +#endif /* #if __FreeBSD_version >= 80 */ + /* Check for TX timeouts on any fastpath. */
svn commit: r298265 - stable/9/cddl/contrib/opensolaris/lib/libzfs/common
Author: avg Date: Tue Apr 19 12:14:52 2016 New Revision: 298265 URL: https://svnweb.freebsd.org/changeset/base/298265 Log: MFC r297520: zfs receive: -u can be ignored sometimes PR: 204705 Modified: stable/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Directory Properties: stable/9/cddl/contrib/opensolaris/lib/libzfs/ (props changed) Modified: stable/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c == --- stable/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Tue Apr 19 12:14:15 2016(r298264) +++ stable/9/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Tue Apr 19 12:14:52 2016(r298265) @@ -3105,7 +3105,8 @@ zfs_receive_one(libzfs_handle_t *hdl, in } if (clp) { - err |= changelist_postfix(clp); + if (!flags->nomount) + err |= changelist_postfix(clp); changelist_free(clp); } ___ svn-src-stable-9@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-stable-9 To unsubscribe, send any mail to "svn-src-stable-9-unsubscr...@freebsd.org"